Skip to content

API v2 (beta)

Filemonk API v2 is an action-based API that describes itself. Manage orders and their downloads, files, digital products, licence keys, customers and settings, from code or from an AI assistant.

Last updated

API v2 is the newer version of the Filemonk API. It covers everything v1 does (files, digital products, orders and their downloads) and a lot more: download emails, licence keys, customers, download logs, email delivery, settings, imports and exports, and a troubleshooting call that tells you why an order did not deliver.

It is built so that a person, a script and an AI assistant can all use it the same way. Every action has a plain-English description, the phrases people use for it, a JSON schema for what it accepts, and a request and response example. The same actions are available over REST and through an MCP server for AI assistants such as Claude, ChatGPT and Cursor.

https://app.filemonk.io/api/v2/external

Every path in this reference is relative to that URL. JSON in, JSON out, over HTTPS.

  1. Create an API key

    In the Filemonk app, open Settings > Other, click Create API key in the API section and copy the key (it is shown once). API v1 takes the same keys. See Authentication.

  2. Make your first call

    Terminal window
    curl 'https://app.filemonk.io/api/v2/external/account' \
    -H 'X-Auth-Token: fm_api_key_your_key_here'

    GET /account shows which store the key belongs to.

  3. Look up an order

    Terminal window
    curl 'https://app.filemonk.io/api/v2/external/orders?per_page=1' \
    -H 'X-Auth-Token: fm_api_key_your_key_here'

    The newest order is first, and meta.total_count is the number of orders.

Authentication
Errors and rate limits
Previews and confirm
Pagination and sorting

Both versions take the same API keys and share one rate-limit budget per store. v1 keeps working exactly as it does today; it is not being switched off. v2 adds actions v1 never had and uses a different, more consistent shape. If you have a v1 integration, Coming from v1 maps every v1 endpoint to its v2 action, so you can move at your own pace, one call at a time.

  • Reads return the resource; writes return what they did. 200 for a change that finished in the request, 201 for a create, and 202 when the change is saved and the rest (emails, a Shopify sync, a bulk job) continues in the background.
  • Named actions carry side effects, PATCH carries state. Sending an email or resetting downloads is a POST action; revoking an order or changing a download limit is a PATCH with only the fields you want to change.
  • Only declared fields. Each action takes exactly the fields in its schema. An unknown field is a 422 with code: "unknown_parameters" that lists what the action does accept.
  • Ids. Filemonk ids are UUIDs. Shopify ids are accepted as gid://shopify/Product/123 or the plain number in fields named shopify_*_id, and are always returned as gids. An order id can also be the order name (#1042, written %231042 in a URL).
Was this page helpful?

Still stuck? Ask Quinn or chat with support