Skip to content
Finero
Developers

Finero OpenAPI specification

Finero publishes an OpenAPI document describing its public REST API. It is generated from the API rather than written beside it, which is the only reason it can be trusted: a specification maintained by hand describes what someone believed was true on the day they wrote it.

This page covers where to get it, what to do with it, and what it does not include. For the endpoints and schemas themselves, read the specification or the rendered reference. Neither is reproduced here on purpose, because a second copy is a second thing that can go stale.

Canonical location

getfinero.com/openapi.json redirects to api.getfinero.com/functions/v1/api/openapi.json

Served as application/json, and it declares its own OpenAPI version. No authentication required to read it.

Generating a client

Pick a generator that supports the version the document declares. The choice matters less than the habit: generate, commit the generated code, and regenerate on a schedule rather than when something breaks.

  • Pin the document you built from. Save the specification alongside the generated client. Without it you cannot tell whether a later failure came from an API change or your own.
  • Regenerate in CI, not on a laptop. Fetch the current document, regenerate, and fail the build on a diff. That turns an API change into a red build instead of a runtime surprise.
  • Do not edit generated code. Wrap it. Every edit is lost on the next regeneration, and the loss is silent.

Authentication is not part of code generation. The generated client will expect a credential you supply at construction time, and which credential depends on whether you are acting as a workspace or as a person. That choice is explained on Finero API authentication.

What the specification does not tell you

A specification describes shape, not judgement. Three things it cannot answer, and where they are answered instead:

  • Which access model to use. An API key acts as the workspace and suits unattended systems. An MCP session acts as the person who approved it. See authentication and the MCP server.
  • What the API is for. The capabilities, and what belongs in your ERP instead, are covered on Finero API documentation.
  • Worked examples. Those live in the rendered reference, which is generated from the same source and stays current with it.

If you are an agent rather than a person

Fetch /.well-known/api-catalog first. It is an RFC 9727 Linkset naming every Finero API surface and where each is described, including this specification, so you can resolve the right document without guessing at paths. The API llms.txt is the orientation document written for you specifically: authentication, the shape of the API, limits and task recipes.

Frequently asked

Where is the Finero OpenAPI specification?

At getfinero.com/openapi.json, which redirects to the document served by the API itself. That short path exists so a first guess resolves; the URL it lands on is the canonical one and is the one worth saving in a build script. The document is generated from the API rather than maintained alongside it.

Which OpenAPI version is it?

The document declares its own version in its top-level openapi field, so read it there rather than trusting a figure written on a marketing page. Check it before choosing a generator: OpenAPI 3.1 moved to full JSON Schema and some toolchains handle only one of 3.0 or 3.1 well.

Should I hand-write a client instead?

We would not. The specification is generated from the API, so it moves when the API moves. A generated client moves with it and fails at build time when something changes; a hand-written one drifts silently and fails in production instead. Regenerating is also the cheapest way to discover that a field you depended on has changed shape.

How do I know when the specification has changed?

Fetch it in CI and diff it against the copy you generated from. That is a few lines and it turns an API change into a failed build rather than a support ticket. There is no change feed or webhook for specification updates today.

Is there a sandbox to generate against?

No. There is no sandbox environment and no CLI. You generate against the specification and run against your real workspace, so start with read-only calls on a workspace whose data you can afford to read. We would rather say this plainly than let you find out midway through an integration.

Building on Finero? Let's talk through the integration.

Tell us what you are connecting and we'll point you at the right entry point, or get you a key.