Claris FileMaker Data API (1.0.0)

The FileMaker Data API

metadata

Product info

Retrieves information about the Claris FileMaker Server or Claris FileMaker Cloud host

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

Responses

200

Successful request

get /fmi/data/{version}/productInfo
/fmi/data/{version}/productInfo

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Database Names

Retrieve a list of hosted FileMaker databases.

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

header Parameters
Authorization
string

Provide the FileMaker authentication credentials via HTTP Basic Authentication of the form "Authorization: Basic ABCDEFGHIJK" where ABCDEFGHIJK is the base 64 encoding of the string 'username:password'

X-FM-Data-OAuth-Request-Id
string

Provide the OAuth login Request ID

X-FM-Data-OAuth-Identifier
string

Provide the OAuth login Identifier

Responses

200

Successful request

get /fmi/data/{version}/databases
/fmi/data/{version}/databases

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Layout Names

Retrieves a list of layouts for a FileMaker database

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

X-FM-Data-OAuth-Request-Id
string

Provide the OAuth login Request ID

X-FM-Data-OAuth-Identifier
string

Provide the OAuth login Identifier

Responses

200

Successful request

get /fmi/data/{version}/databases/{database}/layouts
/fmi/data/{version}/databases/{database}/layouts

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Script Names

Retrieves a list of scripts for a FileMaker database

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

X-FM-Data-OAuth-Request-Id
string

Provide the OAuth login Request ID

X-FM-Data-OAuth-Identifier
string

Provide the OAuth login Identifier

Responses

200

Successful request

get /fmi/data/{version}/databases/{database}/scripts
/fmi/data/{version}/databases/{database}/scripts

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Layout Metadata

Retrieves layout metadata for a FileMaker database.

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

query Parameters
recordId
string

Record ID to retrieve related value list data

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Successful request

get /fmi/data/{version}/databases/{database}/layouts/{layout}
/fmi/data/{version}/databases/{database}/layouts/{layout}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Old Layout Metadata

Retrieve layout metadata (old version)

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Successful request

get /fmi/data/{version}/databases/{database}/layouts/{layout}/metadata
/fmi/data/{version}/databases/{database}/layouts/{layout}/metadata

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

auth

Login

Login to a FileMaker database.
Provide either an 'Authorization' header parameter OR BOTH 'X-FM-Data-OAuth-Request-Id' and 'X-FM-Data-OAuth-Identifier' header parameters.

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

header Parameters
Authorization
string

Provide the FileMaker authentication credentials via HTTP Basic Authentication of the form "Authorization: Basic ABCDEFGHIJK" where ABCDEFGHIJK is the base 64 encoding of the string 'username:password'

X-FM-Data-OAuth-Request-Id
string

Provide the OAuth login Request ID

X-FM-Data-OAuth-Identifier
string

Provide the OAuth login Identifier

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

Parameters for a login request.

fmDataSource
Array of objects

External FileMaker Data Source Authentication:

{"fmDataSource": [ { "database": "<databaseName>", "username" : "<username>", "password" : "<password>", "oAuthRequestId" : "", "oAuthIdentifier" : ""} ] }

"database": is a string with the name of the external database file.

"username": is a string with the username to login to solution.

"password": is a string with the password to login to solution.

"oAuthRequestId": is the X-FMS-Request-ID header value returned from '/oauth/getoauthurl' in FileMaker Server OAuth workflow.

"oAuthIdentifier": is the URL query value for "identifier" in FileMaker Server OAuth workflow.

(NOTE: If both "oAuthRequestId" and "oAuthIdentifier" are supplied, FileMaker Data API will perform an OAuth login.)

(NOTE: This feature only supports databases hosted on the same FileMaker Server.)

Responses

200

Successful login

post /fmi/data/{version}/databases/{database}/sessions
/fmi/data/{version}/databases/{database}/sessions

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "fmDataSource":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

Log out

Log out of a FileMaker database

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

sessionToken
required
string

Session Token

Responses

200

Successful logout

delete /fmi/data/{version}/databases/{database}/sessions/{sessionToken}
/fmi/data/{version}/databases/{database}/sessions/{sessionToken}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

Validate Session

Validate session token

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Successful request

get /fmi/data/{version}/validateSession
/fmi/data/{version}/validateSession

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

records

Get Records

Get records

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

query Parameters
script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

A parameter for the FileMaker script named by script.

script.presort
string

The name of the FileMaker script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

A parameter for the FileMaker script named by script.presort.

script.prerequest
string

The name of the FileMaker script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

A parameter for the FileMaker script named by script.prerequest.

layout.response
string

The layout to switch to when processing response.

portal
Array of strings

The portal result set to return. Use the portal object name or portal table name. If this parameter is omitted, the API will return all portal objects and records in the layout. For best performance, pass the portal object name or portal table name.

_offset
string

The record number of the first record in the range of records.

_limit
string

The maximum number of records that should be returned. If not specified, the default value is 100.

_sort
string

Field name and sort order of the result set. The order in which the criteria are specified determines the precedence. Records are returned in the original creation order if a sort order is not provided. The default sort order is "ascend".

dateformats
string

The date format. Use 0 for US, 1 for file locale, or 2 for ISO8601. If not specified, the default value is 0.

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Record results

get /fmi/data/{version}/databases/{database}/layouts/{layout}/records
/fmi/data/{version}/databases/{database}/layouts/{layout}/records

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Create Record

Create a new record

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

Parameters for a create record request.

fieldData
required
object

A JSON object that contains field-value pairs for fields in the target layout. If "{}" is provided as a data value, an empty record is created with any auto enter values defined in the current table’s schema.

portalData
object

A JSON object that contains portal row values in the target layout. The format mirrors the portalData format from Get Records.

script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

The text string to use as a parameter for the script that was named by script.

script.prerequest
string

The name of the script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

The text string to use as a parameter for the script that was named by script.prerequest.

script.presort
string

The name of the script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

The text string to use as a parameter for the script that was named by script.presort.

Responses

200

Successful record creation

post /fmi/data/{version}/databases/{database}/layouts/{layout}/records
/fmi/data/{version}/databases/{database}/layouts/{layout}/records

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "fieldData": { },
  • "portalData": { },
  • "script": "string",
  • "script.param": "string",
  • "script.prerequest": "string",
  • "script.prerequest.param": "string",
  • "script.presort": "string",
  • "script.presort.param": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Get Single Record By Id

Get a record by recordId

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

query Parameters
script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

A parameter for the FileMaker script named by script.

script.presort
string

The name of the FileMaker script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

A parameter for the FileMaker script named by script.presort.

script.prerequest
string

The name of the FileMaker script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

A parameter for the FileMaker script named by script.prerequest.

layout.response
string

The layout to switch to when processing response.

portal
Array of strings

The portal result set to return. Use the portal object name or portal table name. If this parameter is omitted, the API will return all portal objects and records in the layout. For best performance, pass the portal object name or portal table name.

dateformats
string

The date format. Use 0 for US, 1 for file locale, or 2 for ISO8601. If not specified, the default value is 0.

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

single record

get /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Edit Record

Edit a record by recordId

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

Parameters for an edit record request.

fieldData
object

A JSON object that contains field-value pairs for fields in the target layout. If "{}" is provided as a data value, an empty record is created with any auto enter values defined in the current table’s schema.

portalData
object

A JSON object that contains portal row values in the target layout. The format mirrors the portalData format from Get Records.

modId
string

The last modification ID. When you use modId, a record is edited only when the modId matches.

script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

The text string to use as a parameter for the script that was named by script.

script.prerequest
string

The name of the script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

The text string to use as a parameter for the script that was named by script.prerequest.

script.presort
string

The name of the script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

The text string to use as a parameter for the script that was named by script.presort.

Responses

200

Successful result

patch /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "fieldData": { },
  • "portalData": { },
  • "modId": "string",
  • "script": "string",
  • "script.param": "string",
  • "script.prerequest": "string",
  • "script.prerequest.param": "string",
  • "script.presort": "string",
  • "script.presort.param": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

Delete Record

Delete a record by recordId

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

query Parameters
script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

A parameter for the FileMaker script named by script.

script.presort
string

The name of the FileMaker script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

A parameter for the FileMaker script named by script.presort.

script.prerequest
string

The name of the FileMaker script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

A parameter for the FileMaker script named by script.prerequest.

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Successful result

delete /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

Duplicate Record

Duplicate a record by recordId

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

Parameters for a duplicate record request.

script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

The text string to use as a parameter for the script that was named by script.

script.prerequest
string

The name of the script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

The text string to use as a parameter for the script that was named by script.prerequest.

script.presort
string

The name of the script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

The text string to use as a parameter for the script that was named by script.presort.

Responses

200

Successful result

post /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "script": "string",
  • "script.param": "string",
  • "script.prerequest": "string",
  • "script.prerequest.param": "string",
  • "script.presort": "string",
  • "script.presort.param": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

Find Records

Find Records in a Layout

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

Parameters for a find request.

query
required
Array of objects

Fields and Find criteria in the following query schema: [ { "<fieldName>": "<fieldValue>", "omit" : "true" ... }, ...]

sort
Array of objects

The sort field specification. Example: [ { "fieldName": "LastName", "sortOrder": "ascend" }, { "fieldName": "FirstName", "sortOrder": "ascend" } ]

script
string

The name of the FileMaker script to be run after the action specified by the API call and after the subsequent sort.

script.param
string

The text string to use as a parameter for the script that was named by script.

script.prerequest
string

The name of the script to be run before the action specified by the API call and the subsequent sort.

script.prerequest.param
string

The text string to use as a parameter for the script that was named by script.prerequest.

script.presort
string

The name of the script to be run after the action specified by the API call but before the subsequent sort.

script.presort.param
string

The text string to use as a parameter for the script that was named by script.presort.

offset
integer or string

The record number of the first record in the range of records.

limit
integer or string

The maximum number of records that should be returned. If not specified, the default value is 100.

layout.response
string

The layout to switch to when processing response.

portal
Array of strings

The portal result set to return. Use portal object name or portal table name. If this parameter is omitted, the API will return all portal objects and records in the layout. For best performance, pass the portal object name or portal table name.

dateformats
integer or string

The date format. Use 0 for US, 1 for file locale, or 2 for ISO8601. If not specified, the default value is 0.

Responses

200

search results matching criteria

post /fmi/data/{version}/databases/{database}/layouts/{layout}/_find
/fmi/data/{version}/databases/{database}/layouts/{layout}/_find

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "query":
    [
    ],
  • "sort":
    [
    ],
  • "script": "string",
  • "script.param": "string",
  • "script.prerequest": "string",
  • "script.prerequest.param": "string",
  • "script.presort": "string",
  • "script.presort.param": "string",
  • "offset": 0,
  • "limit": 0,
  • "layout.response": "string",
  • "portal":
    [
    ],
  • "dateformats": 0
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response":
    {
    },
  • "messages":
    [
    ]
}

scripts

Execute Script

Execute Script

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

scriptName
required
string

The name of the FileMaker script to be run.

query Parameters
script.param
string

A parameter for the FileMaker script.

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Responses

200

Successful request

get /fmi/data/{version}/databases/{database}/layouts/{layout}/script/{scriptName}
/fmi/data/{version}/databases/{database}/layouts/{layout}/script/{scriptName}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

container

Upload to Container Field

Upload a single file into a container field (default repetition number)

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

containerFieldName
required
string

Container Field Name

query Parameters
modId
string

Modification ID of record

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Request Body schema: multipart/form-data
upload
required
string <binary>

File to upload into container field

Responses

200

search results matching criteria

post /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}/containers/{containerFieldName}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}/containers/{containerFieldName}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

Upload to Container Field (specific repetition)

Upload a single file into the specified repetition of a container field

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

layout
required
string

Layout

recordId
required
string

Record ID

containerFieldName
required
string

Container Field Name

containerFieldRepetition
required
string

Container Field Repetition

query Parameters
modId
string

Modification ID of record

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Request Body schema: multipart/form-data
upload
required
string <binary>

File to upload into container field

Responses

200

search results matching criteria

post /fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}/containers/{containerFieldName}/{containerFieldRepetition}
/fmi/data/{version}/databases/{database}/layouts/{layout}/records/{recordId}/containers/{containerFieldName}/{containerFieldRepetition}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}

globals

Set Global Fields

Set Global Fields

path Parameters
version
required
string
Enum: "v1" "v2" "vLatest"

FileMaker Data API version requested, currently 'v1', 'v2' or 'vLatest'

database
required
string

Database

header Parameters
Authorization
required
string

Provide a session token as 'Bearer sessionToken'.

Content-Type
required
string
Value: "application/json"

HTTP Header Content-Type: application/json

Request Body schema: application/json

File to upload into container field

globalFields
object

A JSON object that contains field-value pairs to set global fields in a target database. Field names must be Fully Qualified.

Responses

200

set global fields response

patch /fmi/data/{version}/databases/{database}/globals
/fmi/data/{version}/databases/{database}/globals

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "globalFields": { }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "response": { },
  • "messages":
    [
    ]
}