https://api.iformbuilder.com/exzact/api/v80/%5Bservername%5D
The main advantage in this version (v80) is the ability to let users define the response. By only requesting key information, you can more efficiently use resources instead of retrieving a full API feed, and parsing out unused fields.
This approach can be used with any resource that doesn't specify an ID, such as a list of elements or users.
The documentation is broken down into resource categories and you can see formatted code samples for various languages in the console on the right.
Checkout our API Changelog and other documentation.
Base URL to Make Requests
To make a request, the base URL will look something like https://[region].iformbuilder.com/exzact/api/v80/[servername]
The region is where your server is located. The table below shows what the subdomain would be for each region.
| Region | Subdomain |
|---|---|
| United States | api |
| Australia | au-api |
| United Kingdom | uk-api |
For servername, you would use the subdomain used to access iFormBuilder. For example, if you want to use the API for app.iformbuilder.com, the URL would like https://api.iformbuilder.com/exzact/api/v80/app
General Notes
- Most list based requests will return a maximum of 100 objects per request (Users, Assignments, Pages, Localizations, etc...) where as records and options will return up to 1000.
- Default response will be returned when invalid grammar is passed into the request.
- Field grammar can include filters (single or multiple conditions) and sort order.
Using Parameters
- Parameters will allow you to refine the request and consist of the following:
- fields: Allow you to specify which attributes are returned. Filter and sort priority can be assigned to each field.
- limit: Allow you to specify how many results are returned.
- offset: Allow you to specify number of results to skip.
- query_type=match: Allow you to validate if there is an index, otherwise, throw an error.
For example, this url would only provide the record ids.
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/recordsThis example demonstrates returning first name, last name, age, and state. This will also skip the first record only display 2 after that.
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/records?fields=first_name,last_name,residing_state,age&offset=1&limit=2You can also specify which subform fields you want. In this example, we will have a subform called 'children_subform' with some fields in it.
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/records?fields=first_name,last_name,residing_state,age,children_subform[child_name,child_age,child_height]&offset=1&limit=2
Rate Limiting
- To help protect the integrity of our system, we implemented rate limiting. When reaching our limit, the status code will be a 429 and the body will be
{"error_message": "API rate limit exceeded"} - The limit is set to 100 calls per minute per endpoint. This means that you can send 100 requests a minute to both pages and user endpoints. However, making multiple calls to different resources in the same endpoint will be added to same total. Meaning, if you make 50 calls for
/pages/12345/recordsand 50 calls to/pages/98765/recordsin a minute, you have reached the limit. - Feel free to contact us if the limits are affecting your workflow.
Sorting Fields
- To sort by column(s), there are three components:
- Column: The field you want to sort by
- Operator: These consist of < (ascending) and > (descending)
- Sort Priority: When sorting by multiple columns, you set priority by designating a number after the operator.
- In this example, age has first priority in ascending order followed by first name in descending order.
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/records?fields=first_name:>2,age:<1
Filtering Fields
Adding filters will narrow down your request output or input. This can be used with both GET and PUT requests.
GET: Will return any data that meets your filter’s rules.
PUT: Instead of updating a specific record, update many records that match the filter. For example, changing everyone who is now over 18 from child to an adult.
- Three Components of Filtering
- Column: The field you want to filter
- Operator: These consist of <, <=, >, >=, =, != and ~
- Value:The value you are basing your filter on. Boolean values can be passed in either as true and false, or 0 and 1.
Examples
- Get everyone who is between 18 AND 65 (Note: the '&' symbol may need to be url encoded which is '%26')
age((>="18")&(<="65"))
or encodedage((>="18")%26(<="65")) - Get everyone that is younger than 18 OR older than 65
age((>="18")|(<="65")) - Get all first names that start with 'K'
first_name(~"K%") - Get all last names that end with 'son'
last_name(~"%son") - Get all middle names that contain 'mit'
middle_name(~"%mit%") Now combining 4 examples above in a URL.
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/records?fields=age((>="18")|(<="65")),first_name(~"K%"),last_name(~"%son"),middle_name(~"%mit%")Note: If trying to filter a field that is like a certain value that starts with a number, you have url encode the '%' symbol, otherwise the api will fail. If you wanted to search for a value that starts with 12 for exmaple:
https://api.iformbuilder.com/exzact/api/v80/[servername]/profiles/10978/pages/290749032/records?fields=length(~"%2512")Filter Multiple Fields with
To search a value inside multiple fields, you can use dashes to search multiple columns of the same value. For example,
Get all first names OR last names that start with 'K'
first_name-last_name(~"K%")Searching Multiple Specific Values
This will allow you to pass in multiple specifc values you want the query to return. Form example,
Get both records for ids 12345 AND 98765
id(="12345"|="98765")
Request Access Token for Using API
- To make requests to the API, you must obtain an access token. To obtain an a valid access token, click on the link below to get started.
- Generating Access Token
Last update on Jun 23, 2026.