Most organization fields don't appear to be modelled in OpenAPI

Looking at the addOrganization and updateOrganization entries in the OpenAPI YAML file, I see a few fields as part of BasicOrganization but it’s missing most organization fields and any sense of custom organization fields.

I’m working in Go and the OpenAPI SDK generators (which I’m using because Pipedrive does not have a Go SDK) discard unknown JSON fields. I’d really prefer not to have to write an entire SDK for my purposes but it looks like if these things aren’t in the OpenAPI file then they are completely inaccessible. Modifying the generated code is possible, I suppose, but that seems messy and difficult to maintain.

Is there a recommended Go SDK? The only public ones I’ve found generally focus on the particular subset of functionality used by whichever person created it (usually just searching for deals or organizations, maybe updating a couple specific fields) and have no OAuth support. Failing that, is it possible to include these in the OpenAPI file?

My use case (for now) is updating an assortment of custom organization fields, creating new leads, adding notes to leads, creating new organizations, and more as time goes on.

Hi @AdrianDewhurst
Thanks for pointing this out. Let me get back on this.

We do not have an official GO SDK at the moment. As of now, Node.js SDK and PHP SDKs are the only ones maintained officially

I’ve proceeded with building the start of a Go SDK (implementing just the parts I need) but I’m discovering that the OpenAPI file seems to be mostly fine for documentation purposes but has some inconsistencies that make it not great for code generation. One thing in particular that jumped out at me so far is that the pagination attributes in additional_data are individually specified in each API response and thus it doesn’t use a common type across all instances.

This opens the door to mix-ups, such as fieldsResponse200 that appears to have forgotten to name the pagination object. Sometimes a pagination next_start is included with the other attributes, sometimes it’s on its own separate object (combined with the others in an allOf), and sometimes it’s missing. None of this is too difficult to overcome, but it does mean I’m now anticipating a lot more trial-and-error than I originally planned on, since I’m not sure how precise the documentation is.

Hi @AdrianDewhurst
Thanks for the details. I have noted this and will work with our API team to figure this out. We are gradually improving our API experience, starting with the Postman collection → Postman. SDK generation is also one of the areas of focus. Feel free to share any findings in this thread.