Adalo API Integrations

Adalo can talk to REST APIs in two ways, and the difference decides how much work an integration is. This page covers both, the response format Adalo needs, and the mistakes that produce an empty list or a collection with no properties.

Custom actions vs external collections

A custom action is a single request tied to a user action. It is ideal for writes and one-shot operations, and the response is available to the actions that follow it.

An external collection is a persistent data source. Adalo calls your list endpoint to fill lists, your detail endpoint for single records, and expects create, update and delete endpoints if users will change data.

The response shape Adalo expects

For a list endpoint, return a flat JSON array of objects with consistent keys. Adalo infers properties from the first object, so optional properties should be present with a null value rather than omitted.

  • Avoid envelopes such as { "data": [...] } unless you configure the path Adalo should read.
  • Flatten nested objects into top-level keys.
  • Keep types stable, a property that is a number in one record and a string in another causes problems.
  • Return an accurate total so pagination and counts behave.

Authentication

Most APIs authenticate with a header, a bearer token or an API key. Set it on the collection so every request carries it. Keys placed in query strings end up in logs and are easier to leak.

A shortcut for the whole layer

If you do not have an API yet, External Collections gives you a hosted database whose endpoints already return Adalo-compatible responses, including pagination and exact counts.

Related tools

Questions

Can I use an API with Adalo?

Yes. Use a custom action for individual requests and an external collection for data users browse.

Why is my Adalo list empty even though the API returns data?

Usually the response is not a flat array, the authentication header is missing on that specific endpoint, or a filter on the list excludes every record.

Does Adalo support GraphQL?

External collections are built around REST. A GraphQL API normally needs a small REST wrapper in front of it.