canonical: https://jentic.com/apis/help.claris.com/filemaker-data-api

# Help Claris Claris FileMaker Data API

Jentic publishes the only available OpenAPI specification for Claris FileMaker Data API, keeping it validated and agent-ready. The FileMaker Data API exposes records hosted by FileMaker Server and FileMaker Cloud through a JSON REST interface. It supports session authentication, full record CRUD, find requests, global field updates, container uploads for image and file fields, and FileMaker script execution. This is the integration entry point for sending data into and pulling data out of a FileMaker solution from another system.

## For AI agents

Read, create, edit, delete, and find FileMaker records, upload to container fields, and run FileMaker scripts via a JSON REST API.

## Scope

Does not administer FileMaker Server, manage hosted databases, or schedule backups - use the FileMaker Admin API for those, and this Data API for record CRUD, find requests, container uploads, and script execution only.

## Capabilities

- Open a database session and obtain a session token via POST `/databases/{database}/sessions`
- Create new records on a specific layout with field values supplied as JSON
- Edit and delete records by record ID without writing custom FileMaker scripts
- Run find requests with multi-criteria queries against a layout
- Upload images, PDFs, and other binary content to container fields
- Execute FileMaker scripts on demand and retrieve script results

## Use cases

### Web Form to FileMaker Record Sync

When a public web form submits, an integration can authenticate to the Data API, POST a new record on the appropriate layout, and log out cleanly. This replaces brittle ODBC or SOAP gateways with a JSON workflow that fits modern serverless functions. FileMaker validation rules still apply, so bad input is rejected at the layout level.

Example prompt: POST `/databases/{db}/sessions` to log in, POST `/databases/{db}/layouts/Contacts/records` with the form payload, then DELETE the session.

### Reporting Pull into a Data Warehouse

ETL jobs can run scheduled find requests against FileMaker layouts and stream the JSON results into a warehouse such as BigQuery or Snowflake. The Data API supports paged record retrieval with offset and limit, so even large datasets can be moved without timing out. Container data can be skipped or downloaded separately depending on warehouse needs.

Example prompt: POST `/databases/{db}/layouts/Invoices/_find` with date and status criteria, paginate via offset and limit, and write each batch to the warehouse.

### Document Attachment Upload

Field staff can submit photos and signed PDFs from a mobile app, and the integration uploads each file into the matching container field on the FileMaker record. The container endpoint accepts multipart uploads referencing the record ID and field name, so attachments stay coupled to the record they belong to. This keeps mobile capture flows aligned with the desktop FileMaker solution.

Example prompt: POST `/databases/{db}/layouts/{layout}/records/{recordId}/containers/{fieldName}` with the multipart file payload.

### AI Agent Reading FileMaker Data

An AI agent answering internal questions can search FileMaker layouts through Jentic, returning customer histories or invoice statuses without direct database access. Jentic isolates the FileMaker session token in its vault and only exposes the find and read operations, so the agent cannot accidentally edit production data. This is a safe pattern for read-only knowledge agents over FileMaker solutions.

Example prompt: Search Jentic for 'find filemaker records by criteria', load POST `/databases/{db}/layouts/{layout}/_find`, and execute with the natural-language query translated into FileMaker query JSON.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/databases/{database}/sessions` | Open a session and get a session token |
| GET | `/databases/{database}/layouts/{layout}/records` | Get a range of records |
| POST | `/databases/{database}/layouts/{layout}/records` | Create a record |
| PATCH | `/databases/{database}/layouts/{layout}/records/{recordId}` | Edit a record |
| POST | `/databases/{database}/layouts/{layout}/_find` | Run a find request |
| POST | `/databases/{database}/layouts/{layout}/records/{recordId}/containers/{fieldName}` | Upload container data |
| GET | `/databases/{database}/layouts/{layout}/script/{scriptName}` | Run a FileMaker script |

## Key resources

- **Authentication** — Open and close database sessions
- **Records** — Create, read, edit, delete, and duplicate records
- **Find** — Run multi-criteria find requests against a layout
- **Globals** — Set global field values for the session
- **Metadata** — Inspect layouts and field schemas
- **Containers** — Upload binary content to container fields
- **Scripts** — Run FileMaker scripts and retrieve their result

## Why Jentic

- **Setup:** Wiring the FileMaker Data API by hand means logging in with basic auth to open a session, carrying the session token it returns on every record call, and pointing requests at your own FileMaker Server host. Through Jentic you install once, import the FileMaker Data API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Data API puts the database, layout, and record id in the URL path (`/databases/{database}/layouts/{layout}/records/{recordId}`), so a rule can pin your agent to one database and layout. You choose the operations it may call, so deleting or editing records is only included if you add it, while reads and find requests stay separate.
- **Credential handling:** Your FileMaker database username and password and the live session token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find FileMaker records' or 'create a record on a layout', and Jentic returns the matching Data API operation with its input schema so the agent builds the request without reading the FileMaker Data API guide.

## Related APIs

- **Claris FileMaker Admin API** — Server-level admin counterpart to record-level data access
- **Claris FileMaker OData API** — OData 4.01 query interface over FileMaker data
- **Airtable API** — Hosted database with REST API and rich field types

## FAQ

### Why is there no official OpenAPI spec for Claris FileMaker Data API?

Claris does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Claris FileMaker Data API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the FileMaker Data API use?

The Data API supports HTTP Basic authentication and Claris ID (FMID) token authentication. Calling POST `/databases/{database}/sessions` with Basic returns a session token that is then sent as Authorization: Bearer {sessionToken} on subsequent record calls. Sessions must be closed via DELETE on the same path. Jentic holds the credentials in its vault and never exposes them to the agent.

### Can I run a find request through the Data API?

Yes. POST `/databases/{database}/layouts/{layout}/_find` accepts a query body with one or more find criteria objects, plus optional sort, offset, and limit. The response returns matching records as JSON, the same shape as a regular record fetch.

### What are the rate limits for the FileMaker Data API?

Claris does not publish a public rate limit table. Practical throughput is bounded by the FileMaker Server's CPU and the open session count, which is licensed. Reuse a session token across many record calls instead of logging in for each request.

### How do I upload a file into a container field?

POST `/databases/{database}/layouts/{layout}/records/{recordId}/containers/{fieldName}` with a multipart file payload. The recordId must already exist; create the record first with POST .../records and then attach the file in a second call.

### Can the Data API run a FileMaker script?

Yes. GET `/databases/{database}/layouts/{layout}/script/{scriptName}` executes the named script and returns the script result and last error code. This is useful when the desired logic already lives in FileMaker and should not be reimplemented in the integration.

### Can I limit what my agent is allowed to do with the Claris FileMaker Data API?

Yes. Because you run Jentic One yourself, your own rules decide which Data API operations the agent may call and which credentials it may use. The database, layout, and record ID all sit in the URL path, so a rule can pin the agent to a single database and layout, and you can grant read and find requests while withholding record edits, deletes, container uploads, or script execution. Only the operations you add are exposed, so the agent cannot touch anything you have not explicitly allowed.
