The Tables API is available on paid plans: an active subscription (including one carried over from Airscale V1) or a custom plan. Other workspaces receive
403 with code: "subscription_required". Access returns within a minute of a plan becoming active.https://api.airscale.io. Send your workspace API key as Authorization: Bearer $AIRSCALE_API_KEY on every request. See Authentication to get your key.
Browse Tables to manage tables, Row API to insert and read records, and Column API to manage their fields.
How it fits together
- Create a table with its columns, or list tables to find an existing one.
- Read the column IDs from the response, or from Get table. Row values are always keyed by column ID, so renaming a column never breaks your integration.
- Insert rows in batches of up to 1,000, then list rows to read them back.
- Update or delete rows by row ID.
Endpoints
Column types and values
Enrichment, formula, date and email-deliverability columns are read-only through the API. Their values appear when you read rows. Enrichment results that are stored separately because of their size are returned as
null.
In updates, only the cells you send change, and null clears a cell. An invalid value or a read-only column rejects the whole request, and nothing changes.
Limits
Limits are shared by all API keys of a workspace.
Daily limits reset at 00:00 UTC. A request that would go over a daily limit returns
429 with code: "daily_quota_exceeded" and uses up nothing, so a smaller batch can still succeed; the message says how much is left today. Allowance is counted when a request is received, so a batch later rejected as invalid still counts.
Every 429 and 503 response includes Retry-After in seconds. Wait at least that long before retrying.
Retries
For Create table, Insert rows, Add column and Delete rows (batch), send an optionalIdempotency-Key header. Use the same key and identical body when retrying the same operation: the API returns the original response without repeating the mutation. Reusing the key for a different body returns 409 idempotency_conflict. Use a new key for each new operation.
PATCH and single-resource DELETE endpoints do not support this header. After an uncertain response, read the current state before retrying so you do not overwrite a later edit. A repeated single-resource delete returns 404 once the resource is gone. Without an idempotency key, retrying Insert rows can create duplicates.
Deletes
Deleted tables and rows disappear from the API and from the app. They are not in any member’s Undo history; contact support to restore them. Deleting a column is permanent: its values are removed from every row and cannot be restored.Errors
Errors use one shape:code in your code and treat message as an explanation.