Import guide
Import a REST API into monday.com on a schedule
When the data you need sits behind an API, the usual answer is a developer and a cron job. That works until the developer leaves, the token rotates, or the endpoint starts paginating differently.
Boardfeed calls an HTTP endpoint, reads the JSON it returns, and writes the records into a monday.com board on a schedule — with the auth, the JSON path and the pagination rule configured once in the wizard.
Last checked : the auth and pagination options, the 1,000-page stop and what it does to a run, the request limits and the retry rules, read off the connector
Doing it by hand, every time
- Write a script that calls the endpoint and handles the API’s own pagination.
- Normalise the JSON into one row per record, flattening whatever nesting the payload uses.
- Post the rows to monday.com in batches, inside the account’s rate limits.
- Run it on a timer somewhere, and find out it broke when someone notices the board is stale.
The scheduled route
- Enter the endpoint and the authentication: none, HTTP basic, a bearer token, an API key in a header, or an API key in a query parameter.
- Give the path to the array of records (for example data.items) and pick the fields to map. Leave the path empty when the response is the array itself.
- Choose how the API pages: a page number, an offset and limit, a cursor read from a path in the previous response, or a next link — taken from a path in the body, or from the Link header when you name no path.
- Map the columns, pick the key to match rows on, and set the schedule. A run reads at most 1,000 pages by default and gives each request 30 seconds; a source with more pages than that is stopped at the limit — recorded as failed, not announced as a complete import.
- Save and run it. Every run is listed with its counts, and a run that left rows out e-mails you those rows as a CSV.
Field mapping notes for REST API
This is the part that decides whether an import works on the first try. Everything below is handled in the mapping step, before the first run.
- Requests: GET, or POST with a body when the endpoint wants its query in one. Every URL — the one you configure and every redirect it leads to — is checked before a request goes out, so an endpoint cannot be pointed at a private address on the network Boardfeed runs in.
- Credentials are encrypted at rest (AES-256-GCM) and never written to logs. Header names and value prefixes are yours to set, because every API spells "Bearer" its own way.
- Nested objects are addressed by path (customer.name) rather than flattened for you, so you map the field you want and nothing else. Arrays of values suit a dropdown or a text column.
- Types: an ISO-8601 timestamp maps straight to a date column. A Unix timestamp does not — convert it at the source, or map it to a text or number column, because the mapping step has no conversions of its own.
- Amounts in minor units stay in minor units: 1000 means £10.00 and arrives as 1000. There is no divide-by-100 in the mapping, so either have the API return a decimal, or keep the column in cents and convert it on the board.
- Failures: a 429 or a 5xx is retried up to three times, honouring Retry-After when the response sends one. A run that still cannot read the source is recorded as failed with the status, and you get an e-mail.
REST API import questions
Do I need to write code?
No. The endpoint, the auth, the JSON path, the field mapping and the schedule are all configured in the wizard. The only things you need from the API’s own documentation are which URL returns the records and how it pages.
What happens when the API is down during a scheduled run?
Retryable failures — 429 and 5xx — are retried with backoff, up to three attempts, and Retry-After is honoured where the API sends it. If it still fails, the run is recorded as failed with the HTTP status and an e-mail goes to the report address, so a board that stopped updating is not something you find out about by chance.
Can one API feed several boards?
Yes — as one import per board, each with its own mapping, its own key and its own schedule.
What if the API has more pages than one run reads?
A run reads at most 1,000 pages by default; raise the page limit on the import if the endpoint returns small pages. Reaching the limit is a stop, not a silent truncation: the run is recorded as failed and its record says how many rows it had already written. Those rows stay on the board, so re-run it in update mode once the source is narrower, or a create-mode re-run adds them a second time. An API that ends on the limit by its own signal — no next cursor or link, or an empty page — is read as complete.