Skip to main content
The Orgo API supports three response formats and two request formats. Most endpoints accept all of them — the format is chosen by the Accept and Content-Type headers. For 95% of integrations, plain application/json is the right choice. Use JSON-LD when you need pagination metadata or generic link discovery, and multipart only when you are uploading files.

Response formats

If you do not send an Accept header at all, JSON-LD is returned by default.

Example: the same resource, three ways

GET /api/v1/users/42 returns one of these depending on the Accept header:
The data is the same — JSON-LD just adds the @context, @id, @type wrapping that lets generic clients reason about the response without knowing the schema in advance.

The Hydra collection envelope

JSON-LD collections are wrapped in a Hydra envelope that carries totals and pagination links:
Plain JSON returns just the array:
You lose hydra:totalItems and the next-page links in plain JSON. If you need to display “showing 60 of 1,248” or iterate every page, use JSON-LD.
For ad-hoc scripting and one-off integrations, plain JSON is shorter and easier to consume. For data-pipeline integrations that need to paginate through everything, JSON-LD is usually worth the slightly noisier envelope.

Request formats

PATCH and merge-patch

Always send Content-Type: application/merge-patch+json for PATCH. The endpoint only updates the fields you include — missing fields are left untouched.
Sending null for a field explicitly clears it (where the field is nullable). Sending an empty string is treated as the literal empty string.

Referencing other resources

For relations, send the IRI (Internationalized Resource Identifier) of the target:
This works for both JSON and JSON-LD requests. Sending the full nested object instead of the IRI is also accepted but slower and more error-prone — prefer IRIs.

File uploads (multipart)

For endpoints that accept file uploads — ID documents, contract signatures, course media, drive files, profile pictures — use multipart/form-data:
The field name (idMedia above) is documented per endpoint. For endpoints that accept both metadata and files, include the metadata as additional form fields:

When in doubt

  • You’re a human writing a curl by hand: omit Accept (defaults to JSON-LD) for the metadata, or set Accept: application/json for cleaner output.
  • You’re writing an integration: Accept: application/json for reads, Content-Type: application/json for writes, Content-Type: application/merge-patch+json for partial updates, Content-Type: multipart/form-data for uploads.
  • You’re building a generic browser/client over the API: stay on JSON-LD throughout so you get the link relations.