Base URL: https://api.hermios.app/rest. Objects use their plural API name (companies, people, opportunities, dealReviews, …).

Routes

DELETE permanently destroys the record unless you add ?soft_delete=true. Soft-deleted records go to the trash and can be restored.

Filtering

filter=field[operator]:value
Operators: eq, neq, in, containsAny, is (NULL / NOT_NULL), gt, gte, lt, lte, startsWith, endsWith, like, ilike. Combine with and(...), or(...) and not(...). Several comma-separated conditions without a wrapper are combined with and. Composite fields use a dot path, for example name.firstName[ilike]:"%ada%" or emails.primaryEmail[eq]:"ada@acme.com".

Sorting

order_by=field[Direction],otherField[Direction], with AscNullsFirst (default), AscNullsLast, DescNullsFirst or DescNullsLast. id is always added as a final tiebreaker so pages are stable.

Pagination

depth=0 (default) returns the record’s own fields and relation ids. depth=1 also returns related records one level deep (up to 60 per relation). There is no field-selection parameter: use GraphQL when you need specific fields.

Responses

OpenAPI

Every workspace has its own OpenAPI 3 document:
  • GET https://api.hermios.app/rest/open-api/core (records)
  • GET https://api.hermios.app/rest/open-api/metadata (data model)
Send your API key to get your workspace’s objects and fields. Without a token you get the base schema. Import the document into Postman, Insomnia or a code generator.

Data model over REST

GET /rest/metadata/objects lists objects and fields, including custom ones. Creating or changing objects and fields needs a role with data model permission.