Note: This is one of multiple posts about issues I’ve discovered while working depth with the Pipedrive API. A description of the use case and collection of all issues can be found at pipedrive-api-notes.md · GitHub.
I think for an API it’s vital that it not only behaves according to its spec (that is the mandatory part), but also that it behaves intuitively and has a certain flow to it. When it comes to relations, this is IMO not always the case for the Pipedrive API:
- Several fields that are called
*_id
counterintuitively return full objects (including the ID) instead of only the ID (as the name would suggest)
- Lack of naming conventions:
user_id
given as a parameter references entries of theusers
resource, but fororganizations
it’sorg_id
- Lack of naming conventions: a reference to the
users
resource has field typeuser
(e.g.creator_user_id
inactivities
), but one topersons
has typepeople
(e.g.person_id
inactivities
)