How does one know which fields are read only?

I’m trying to update persons programmatically by using the fields given in the peopleFields end point. The endpoint doesn’t tell me which fields are read only and which can be updated. It appears that it only tells if the field definition is editable or not. How do I find this out?

Hey Clinton,

All of the Fields should be able to be updated as we don’t offer ‘read only’ Fields.

Did you encounter something where you’re unable to update a field? Perhaps you could share some details so I can examine it further?

Ohh maybe it’s a field that came from the original GET of the person and we didn’t remove it.

1 Like

Hi, I just got into this same issue. I’m working on a little integration with the pipedrive API and I’m having a hard time with the API. It seems that i can send any fields to the update (PUT) but it will only update the fields listed under the API docs for each endpoint (which its weird given that @David mentioned there are not ‘read only’ fields in pipedrive, so everything should be updateable).
If this is the case, it would be convenient to inform of the updateable fields of each object at the ${object}Fields endpoints, as right now there’s no programatic way to know it, only if you go through the docs forcing you to have static content in your code that tells you whats updateable or not (ugly).

But a bigger problem is, that any create (POST) fails if I pass any non listed-in-the-docs field in the body, worse is that, the oAuth API returns a 404 when I do it, and the apiToken API returns a 500.

So, question is, is there any limitation on the fields that are writable/updateable for each object? Do I need to stick to the listed-in-the-docs fields for this operations? Or is there a way to update every field informed in the GET responses?

Hey Roberto,

When I say Fields, I’m referring to those that you would find from Settings > Customize Fields.

There are other data fields that are specifically populated via other information that can’t be updated through API (directly), but if you have an example of what you’re trying to update I should be able to give you some more details on it so you don’t need to guess on this.

Cool, this is what i guessed from using the api. It would be nice to inform in the *Fields methods of every object which fields are updateable so one does not need to inspect the APIDocs by eye and figure out which ones are updateable and mandatory.

The problem is, it appears that not all fields are readonly when updating a person, org, deal, etc.

I’m talking about updating of field values in each entity. For example, I can’t update ID right? For some fields I get 400 Bad Request, which doesn’t give me any extra details.

Here’s a direct example. So we get a field in our UI like followers_count, obviosuly that should me marked as read only so we don’t run into this:

$ curl -d '{"followers_count": 2}' -H 'Content-type: application/json' -X PUT
$ {"success":false,"error":"Bad request","error_info":"Please check for more information about Pipedrive API.","data":null,"additional_data":null}

Because when I do the same request on another editable field(like “name”) I get the actual data back with a success: true.

1 Like

That is correct, ID Fields can’t be updated (or customized/added at all)

This is exactly what I’m trying to bring to attention.

For example, we grab the peopleFields first, this shows us all fields (system ones and custom fields).

Then, we want to do an update on an existing person using those fields. How we filter out the fields that are going to cause the 400 error?

In the end I had to make a quick hack for this. Any fields ending in _date or _time or _count I register as readonly in my app since these are obvious.

1 Like

@clintonskakun is that really accurate? Because expected_close_date and add_time are allowed to be edited via API