Introduction

REST API overview

The Filmo REST API v1 is a JSON API over HTTPS at https://app.filmo.io/api/v1. You authenticate with an API key, and every response uses the same envelope.

Every path in this reference starts with /api/v1, on the origin https://app.filmo.io: for example, GET /api/v1/orders. Requests and successful responses are JSON (application/json); errors are application/problem+json.

A good first call is GET /api/v1/account. It needs the account:read scope and returns the account, the timezone in which bare days are read, and the scopes of the key you used. To create a key, an administrator opens the API and MCP section of the account settings in Filmo (*Ajustes → API y MCP*); see Authentication.

curl -sS --fail-with-body "${FILMO_BASE_URL:-https://app.filmo.io}/api/v1/account" \
  -H "Authorization: Bearer $FILMO_API_KEY"

For a guided walk from a new key to your first write, follow the quickstart. The OpenAPI file and the clients you can generate from it are covered in OpenAPI file and generated clients; the reference of every operation is in the OpenAPI reference.

Every response from the API has one of three shapes.

KindShapeUsed for
List{ "data": [ … ], "pagination": { "nextCursor", "hasMore", "total"? } }Collections such as orders or contacts.
Single resource{ "data": { … } }Detail reads, creates and updates.
ErrorAn RFC 9457 problem in application/problem+json: type, title, status, code, detail, requestIdAny 4xx or 5xx the API produces.

API responses carry an X-Request-Id header, and error bodies repeat it as requestId. Quote it when you contact support. The OAuth endpoints are the exception: they do not return it. The headers, the extra meta object some operations return and the statuses in use are in Responses; every error code is in Errors.

TopicRule
Base URLhttps://app.filmo.io/api/v1
AuthenticationAuthorization: Bearer <API key>. Only administrators create keys.
MoneyDecimal strings with two decimals ("1234.50"), never floating-point numbers.
DatesISO 8601. Writes take an instant with an offset; responses use UTC.
PaginationOpaque cursor. Page size limit: 50 by default, 500 at most.
Rate limits120 requests per minute per key, and 30 per minute shared by the three availability checks.
RetriesSend Idempotency-Key on writes. A key is remembered for 24 hours.
ConcurrencyDetail reads return an ETag; send it back as If-Match to avoid overwriting a newer change.
VersioningAdditive changes within v1; breaking changes follow the documented notice periods.
  • Ask an administrator of the rental company to create the key, and decide who owns it: Authentication.
  • Give the key only the permissions the integration uses: Scopes.
  • Read what v1 covers, and what it does not, in Capabilities and limits.
  • Check which add-ons your account has: the API and MCP are included in any paid plan and are not an add-on, but a resource that belongs to a module with an add-on you have not contracted answers 402 addon_required. See Plans and add-ons.
  • A key works on the live data of the account it belongs to. Read Testing before your first write.
  • Before you go to production, work through Going live.

Check the contract version returned by GET /api/v1/account or published in the OpenAPI file. The compatibility rules and notice periods are documented in Versioning.

v1 does not send webhooks. To keep another system in step with Filmo, poll incrementally: ask each list that has updated* filters for the records that changed since your last pass. Syncing data describes an algorithm that does not skip records and how to detect deletions.

Every operation is also an MCP tool at https://app.filmo.io/api/v1/mcp, with the same key and scopes. See the MCP overview.

  • Get started

    Quickstart

    Create an API key in the API and MCP section of the Filmo settings, then call GET /api/v1/account. The response tells you the timezone, currency, add-ons and scopes to build with.

  • Guides

    Authentication

    Every operation requires an API key sent as a bearer token. Only an administrator can create a key, and the key acts as that administrator, so decide who owns it before you create it.

  • Guides

    Responses

    Successful responses wrap their payload in data; lists add pagination; a few operations add meta; errors are RFC 9457 problems. API responses share one set of headers.

  • Guides

    Errors

    Errors are RFC 9457 problem documents. Branch on the stable code, never on the text, and use the retry table to decide whether to try again.

Was this page helpful?