AxisIQ API
Call the AxisIQ API from scripts and integrations: base URL, access keys, a quickstart and a map of every reference page.
The AxisIQ API lets scripts, integrations and your own apps work with the same data you see in the product: records, flows, queues, files, calendars, documents and more. Every call runs with the permissions of the access key you use, so a key can never do more than the role you gave it.
Base URL
https://axisiq.co/api/v1
Everything is JSON over HTTPS. Send Content-Type: application/json on requests with a body and read {"data": …} from successful responses. Details are in Conventions.
Quickstart
- In AxisIQ open Team & Permissions › Access keys, create a service account, give it a role, and create a key. Copy the key (it starts with
axk_). It is shown once. See Authentication. - Open Settings and copy the Organization ID. In the examples below it is
{orgId}. - Call the API.
export AXIS_KEY="axk_…"
export ORG="0190f0aa-…"
# Which record types does this workspace have?
curl -s https://axisiq.co/api/v1/orgs/$ORG/types \
-H "Authorization: Bearer $AXIS_KEY"
{
"data": [
{ "key": "invoices", "label": "Invoice", "icon": "billing", "system": true, "app": "invoicing", "record_count": 42 }
]
}
Create a record:
curl -s -X POST https://axisiq.co/api/v1/orgs/$ORG/records/invoices \
-H "Authorization: Bearer $AXIS_KEY" \
-H "Content-Type: application/json" \
-d '{"values": {"number": "INV-1001", "status": "open", "amount": {"amount": "12500.00", "code": "INR"}}}'
{
"data": {
"id": "0190f0aa-7c1e-7a3b-9d52-4f0e6c1b2a10",
"object_type": "invoices",
"created_by": "0190f0a0-…",
"created_at": "2026-10-04T09:30:00Z",
"updated_at": "2026-10-04T09:30:00Z",
"values": { "number": "INV-1001", "status": "open", "amount": { "amount": 12500, "code": "INR" } }
}
}
Search records:
curl -s -G https://axisiq.co/api/v1/orgs/$ORG/records/invoices \
-H "Authorization: Bearer $AXIS_KEY" \
--data-urlencode 'q=INV-10' \
--data-urlencode 'filter=[{"field":"status","op":"eq","value":"open"}]'
Tip: If a call answers
403 FORBIDDEN, the key's role lacks that permission. Add it on the role in Team & Permissions › Roles. The full list is in Permissions reference.
Where to go next
| You want to | Read |
|---|---|
| Understand responses, ids, dates, money and paging | Conventions |
| Handle errors | Errors |
| Read and write records | Records, Record types and fields |
| Run flows and functions | Flows, Functions, Functions SDK |
| Work a queue | Work Queues |
| Post journal entries | Accounting |
| Create payment links | Payments |
| Collect form submissions | Forms |
| Manage and deliver website content | Content authoring, Content delivery |
| Schedule events | Calendar |
| Store files | Drive |
| Run read-only SQL | Analytics queries |
| Search your knowledge base | Knowledge search |
| Notifications, messages, PDFs, spreadsheets | Notifications, Messaging, PDF documents, Sheets |
| Expose something to the public web | Public endpoints |
| Write permission rules | Permissions reference, Policy format |
What keys can and cannot do
- A key works on one workspace only: the one its service account belongs to. Another workspace's id answers
404 NOT_FOUND. - A key works on workspace routes (
/orgs/{orgId}/…). Account-level routes, such as signing in, creating a workspace or your personal security settings, need a signed-in person and are not available to keys. - Billing routes are also for signed-in people only.
- If an app is switched off in Settings › Apps, its routes answer
404 NOT_FOUNDuntil you switch it back on.