An API (application program interface) is a set of routines, protocols, and tools that specify how software components should interact. The purpose of the FileMaker Data API is to allow web services to access data in hosted databases. The FileMaker Data API conforms to Representational State Transfer (REST) architecture, so you may hear it referred to as a REST API.

Your web service or application can make calls to the FileMaker Data API in order to get a token that authenticates the connection and grants access to the hosted database. This token needs to be included in the header of all subsequent calls to the hosted. The token will be valid until you log out of the database session, or for 15 minutes. This connection is referred to as a session.

The calls to the FileMaker Data API can be used to create, update, delete, and find records, view data of specific records, perform scripts and more. The FileMaker Data API returns data in JSON, which is a notation designed to be easily read by humans. 

Preparing your database for data API access

In order to prepare your database for Data API access, it needs to be hosted. The server name is essential in writing calls to the FileMaker Data API, as you will see in a later section. 

Along with all the standard techniques for protecting a hosted database, a requirement for using the FileMaker Data API is to have a password protected account. It is recommended to designate a specific account solely for the purpose of interacting with the FileMaker Data API.  When creating that account, you can satisfy the last requirement of prepping your FileMaker which is enabling the fmrest extended privilege.

To assign this extended privilege to a privilege set, Click File > Manage > Security…, then click advanced settings in the bottom left corner, go the Extended Privileges tab, double click the desired keyword, then assign it to the privilege sets that you want to grant FileMaker Data API access to.

Something to keep in mind when prepping your databases for FileMaker Data API access is that, when retrieving data, the FileMaker Data API will grab every field on a specific LAYOUT. So, if you want the API to have access to more fields than the layouts do, you will need to make specific layouts, that include all of the desired fields, to direct the API calls to.

Write FileMaker data API calls

            A FileMaker Data API calls consist of the following components:

  • An HTTP Method (HTTP verb)
  • HTTP Headers
  • A call URL
  • Parameter data in JSON format

These components should look familiar to developers experienced in using the Insert From URL script steps. You can dive deeper into the capabilities and uses of each of these components inside the FileMaker 18 Data API Guide. To demonstrate FileMaker Data API calls in this blog I will be using an API development application called Postman. One of the features of Postman is that it allows you to create and manage “collections” which are organized groups of “requests”, which will FileMaker Data API calls in this example.

FileMaker Data API Calls can be used to:

  • Connect/Disconnect from a Database
  • Get metadata (pertaining to host and hosted databases)
  • Create/Edit/Delete records
  • Duplicate records
  • Get a single record
  • Get a range of records
  • Upload container data
  • Perform a find request
  • Set global field values
  • Run FileMaker Scripts

Authenticate a database session

No matter what your end goal in using the FileMaker Data API is, your first call will remain the same: authenticate. As you will see in the guide, you use an  HTTP POST method with the sessions API endpoint specifying the name of the desired hosted database. The password protected account credentials must be specified in the header Authorization string. If the account name and password are valid & have the necessary extended privilege enabled, the generated response will contain the previously mentioned token, and the session is opened. This token will be needed in all subsequent calls. Below is a screenshot of my Postman app, after completing an Authentication call. The URL is near the top, between the HTTP method dropdown and the blue Send button. It will take the format of: /fmi/data/version/databases/database-name/sessions. It is completely essential to make sure the HTTP method dropdown is set to POST for authentication. 

The guide will tell you the necessary data needed in each component of the call. For example, to login to a database session requires 2 pieces of data in the HTTP header. To edit the components Params, Authorization Headers, Headers, Body, Pre-request Script, or Tests with Postman, use the tab control, below the URL bar.

Once all the components are set, clicking the blue Send button will generate a response, which in the case of authentication, contains the token needed for all other calls.

Getting records

Once you have the authentication, your session is open and you can use that token to make calls that allow you to get or send information to your database, through the FileMaker Data API. Let’s break down a simple GET record API call. The URL structure for getting a record is: /fmi/data/version/databases/database-name/layouts/layout-name/records/record-id 

When setting up a call like this, remember that when getting record data using the FileMaker Data API, the API can only retrieve data from fields that are on the layout you point it to. Also, keep in mind that there is an additional format for GET, for when you need to retrieve portal data.

As you can see in the guide’s info to get a single record, the HTTP heard requires Authorization, of the type: Bearer session-token.  So, go to the authorization portion of the tab control, and select Bearer Token as the TYPE. Once you do that, you are provided a textbox for the token, shown below, where you can enter the token you were given in the response of your authentication call.

Along with the authorization, an additional header is required, and that is setting the Content-Type. To do that, click the headers section of the tab control, begin typing in the empty KEY field and select the keyword, Content-Type. Go to the corresponding VALUE field and enter the keyword application/json.

Once you have both the Authorization & the Content-Type set, click send, and you will receive all of the data on the specified layout for the record you specified in the URL. My example GET single record call is posted below.

Creating records

The last example call I will cover in this blog is creating records. To create a record use an HTTP POST call with the structure provided by the guide: /fmi/data/version/databases/database-name/layouts/layout-name/records
            As always, make sure you have a designated layout in mind, or create one if necessary. The layout specified in the end point must contain every field you want to put data in. As far as headers, you need the typical Authorization data, as well as the same Content-Type header as the previous Get Records example.
            What is new with this call is the essential Body section, where you will store the data of the record you want to create. The Body is expecting data in JSON format containing field-and-value pairs that specify values for fields that are in the target layout.  The JSON object must be named “fieldData”. To create an empty record, send in the following “empty” JSON object:

But for records where you know the data you would like to enter, compose key-value pairs based on the fields on your layout. I’ve included a very simple example JSON below, with the corresponding layout. I think it’s important to notice the use of commas instead of semicolons.

When you send the call with these correct headers, you will generate a “response” that includes the recordId of your newly created record. The response also includes a message, which will say “OK” if all goes well, and it will provide details of the error, if the record is not created.

In conclusion…

It is important to recognize that the examples in this blog just scratch the surface of the capabilities and uses of the FileMaker Data API. We did not even touch running scripts or creating or getting portal data. The purpose of this blog was to learn to prepare your databases for access through the Data API, as well as learn how the Postman app can help you save time, stay organized and understand the pieces of a call.

55 comments

  1. I am a FileMaker developer in South Africa.
    One of my projects with an existing client, requires a custom website linking to my FMPserver application.

    It will be quite sophisticated and I want to investigate doing this with FMP data API for a web solution.

    Its for a customer who deals in freight.

    It will need following aspects;

    Shippers/ consignees etc (could be anyone)
    Needs to be able to load documents Documents/images
    Needs to connect to my developed database, to upload Quotes/invoices for a client to see
    Needs to be able to handle Banking details – payment methods
    Needs Waybill track and trace
    Lodging – claims
    Requesting quotes
    Allow clients not currently on our database to access the web app to start loading information on forthcoming shipments
    Clients based all around the world

    The client has requested me to get an example website where they can see some of the above in action, then i’d be interested in going further, whether it be me involved with development, or partly your company and myself in development.

    Posted by Joseph Ancer on February 17, 2020.

  2. Kyler Mitchell

    Hey, Joseph! Thanks for reaching out to us. I am going to find the right person to reach back out to you to discuss your needs a little further. Someone should get in contact with you shortly! Thanks again!

    Posted by Kyler Mitchell on February 18, 2020.

  3. Thanks for that, will be liaising with Maria in a few minutes.

    Posted by Joseph on March 3, 2020.

  4. Hi Kyler,
    I’m using Filemaker since 2005, starting to use FMS CWP and Bootstrap.
    I’m trying to find out ways accessing, viewing, editing, adding, and deleting large amount of data table from FMS uwing Web ( bootstrap ).

    Posted by Penman on May 26, 2021.

  5. Hi there, I’ve successfuly used this guide to set up Postman and connect to my database. However, I found it necessary to include a custom header ‘content-type’ with value ‘application/json’ which Postman didn’t seem to set for me.

    Posted by Thomas on June 12, 2022.

  6. penny slots free
    play free bonus slots
    machines Г  sous free slot

    Posted by AurlieOaot on July 8, 2022.

  7. writing a phd dissertation
    paper help
    disertation

    Posted by ShaynaOaot on July 14, 2022.

  8. Hi there to all, for the reason that I am genuinely eager of reading this weblog’s post to be updated on a regular basis.
    It includes nice information.

    Look at my website … https://konkurent.ru/article/48832

    Posted by https://konkurent.ru/article/48832 on July 15, 2022.

  9. writing a phd dissertation
    dissertation meaning
    writing methodology for dissertation

    Posted by JoeteOaot on July 15, 2022.

  10. writing your dissertation in
    dissertation introduction
    uk dissertation writing service

    Posted by JoeteOaot on July 18, 2022.

  11. writing a doctoral dissertation
    research writing services
    writing help

    Posted by ChandaOaot on July 20, 2022.

  12. language editing phd thesis
    help with dissertations
    best dissertation help services

    Posted by AvivaOaot on July 21, 2022.

  13. dissertation writing guide
    online edd no dissertation
    dissertation format

    Posted by DortheaOaot on July 22, 2022.

  14. writing methodology for dissertation
    dissertation abstract
    writing a dissertation introduction

    Posted by VerieeOaot on July 22, 2022.

  15. dissertation writing assistance
    dissertation handbook
    dissertation abstract example

    Posted by SuzannOaot on July 23, 2022.

  16. custom dissertation writing help
    order a dissertation
    help with masters dissertation

    Posted by SalliOaot on July 24, 2022.

  17. writing editing services
    dissertation writing service online
    best dissertation writing service review

    Posted by DarsieOaot on July 25, 2022.

  18. best casino welcome bonus
    top online casinos usa
    online us casinos

    Posted by TandiOaot on July 25, 2022.

  19. buy art online berlin
    dissertation writing assistance
    dissertation defense presentation

    Posted by MabelleOaot on July 26, 2022.

  20. win real money casino
    no deposit welcome bonus
    no deposit online casino real money

    Posted by TandiOaot on July 26, 2022.

  21. phd without dissertation
    dissertation abstract
    what is dissertation

    Posted by JenneeOaot on July 27, 2022.

  22. top us online casino
    gambling bonuses
    online casinos real money

    Posted by AbagaelOaot on July 27, 2022.

  23. rfp writing services
    doctoral dissertation
    thesis defense

    Posted by HerminaOaot on July 27, 2022.

  24. best online casino real money
    casino no deposit sign up bonus
    online american casinos

    Posted by ShaylaOaot on July 28, 2022.

  25. dissertation presentation
    edd dissertation topics
    dissertation help scam

    Posted by AudreOaot on July 28, 2022.

  26. american online casinos
    gambling bonuses
    online mobile casino

    Posted by VerenaOaot on July 29, 2022.

  27. writing dissertation abstract
    dissertation consulting
    dissertation proposal sample

    Posted by HestiaOaot on July 29, 2022.

  28. best casino site
    deposit casino bonus
    bingo casino online

    Posted by DixieOaot on July 30, 2022.

  29. casino signup bonus
    free welcome bonus no deposit
    casino welcome bonus no deposit

    Posted by LaureenOaot on July 31, 2022.

  30. what is the best online casino for real money
    free casino money
    usa casinos on line

    Posted by FranniOaot on August 1, 2022.

  31. online casinos for usa players
    best online blackjack
    live online casino usa

    Posted by PearlOaot on August 2, 2022.

  32. 2018 Bu Pin, Okul Öncesi Etkinlikler tarafından keşfedildi.
    Kendi Pinlerinizi keşfedin ve Pinterest’e kaydedin!

    Posted by Does levothyroxine cure nausea on August 3, 2022.

  33. casino usa online
    no deposit casino bonuses
    real money casino games

    Posted by BobbieOaot on August 3, 2022.

  34. blackjack online real money
    online casinos for real money
    casino bonuser

    Posted by LeslieOaot on August 4, 2022.

  35. Miadı geçmiş ilaçların imhası EK-1’deki dilekçe 3
    (üç) nüsha olarak doldurulup yine 3 (üç) nüsha olarak eczane programından alınan ilaç listesi ve düzgünce kolilenmiş imha edilecek ilaçlar
    İl Sağlık Müdürlüğü’nün onayı için eczanelerinizde
    hazır olarak bekletilecekt ir.

    Posted by {5 on August 4, 2022.

  36. online casino games real money
    no deposit casino bonuses
    best online casino bonus

    Posted by TrudieOaot on August 7, 2022.

  37. top 10 vpn services
    best vpn for home network
    avast vpn review

    Posted by HonorOaot on August 7, 2022.

  38. vpn review
    how to get a free vpn
    free vpn for laptop

    Posted by TeddieOaot on August 8, 2022.

  39. online casino usa real money no deposit bonus
    free online casino no deposit
    real money casino online

    Posted by JaynellOaot on August 8, 2022.

  40. best vpn for price
    free vpn for firefox
    best vpn for pc free download

    Posted by MarrileeOaot on August 9, 2022.

  41. avast secureline vpn
    buy residential vpn
    vpn definition

    Posted by JenneeOaot on August 9, 2022.

  42. online casino with free signup bonus real money usa
    casino sign up bonus
    mobile casino

    Posted by DulceaOaot on August 9, 2022.

  43. the best free vpn
    best vpn deals
    where to buy a vpn

    Posted by JenneeOaot on August 10, 2022.

  44. online casino win real money
    no deposit online casino bonus
    no deposit free bonus casino

    Posted by CarolanOaot on August 10, 2022.

  45. buy strong vpn
    free vpn india
    tunnelbear vpn free

    Posted by AshleighOaot on August 11, 2022.

  46. free bonus slots
    online casinos
    real online casino

    Posted by FanyaOaot on August 11, 2022.

  47. best anonymous vpn service
    best vpn for pubg
    best anonymous vpn service

    Posted by KelseyOaot on August 12, 2022.

  48. online casino with free signup bonus real money usa no deposit
    online casino games that pay
    mobile casino games

    Posted by CarolinOaot on August 12, 2022.

  49. best vpn for ios
    free vpn for linux
    top vpn services

    Posted by LaurellaOaot on August 13, 2022.

  50. real money casino
    casino mobile
    online real money casinos

    Posted by FifineOaot on August 13, 2022.

  51. setupvpn – lifetime free vpn
    best free vpn for roobet
    free vpn germany

    Posted by SheelaghOaot on August 13, 2022.

  52. free vpn for firestick
    vpn for windows free
    free vpn browser

    Posted by SheelaghOaot on August 14, 2022.

  53. casino games for real money
    best mobile casino
    casino real money

    Posted by FifineOaot on August 14, 2022.

  54. best affordable vpn
    what does vpn mean
    best vpn protocols

    Posted by SheelaghOaot on August 15, 2022.

  55. bingo online for money
    casino deposit bonus
    free casino bonus no deposit

    Posted by FifineOaot on August 15, 2022.

Leave a comment

Your email address will not be published.