Public reference
Exports
Every endpoint in this group. Open one for its parameters and a worked example.
Exports
7GET /api/v1/exports List export jobs
Jobs the caller owns, with their progress. A non-admin sees only jobs from their own manager subtree.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
Parameters
| Parameter | Description |
|---|---|
filter[status]
query · string
|
Job status. |
filter[format]
query · enum
|
csv or xlsx. |
filter[target_table]
query · string
|
One dataset key. The special value "reports" expands to every report dataset rather than matching exactly. |
{
"data": [
{
"id": 3312,
"target_table": "users",
"format": "xlsx",
"status": "running",
"processed": 4200,
"total": 8120,
"row_count": 0,
"manager_id": 41,
"created_at": "2026-09-20 09:10:00",
"started_at": "2026-09-20 09:10:04"
}
],
"meta": { "page": 1, "page_size": 50, "total": 12, "has_next": false }
}
POST /api/v1/exports Queue an export
Creates the job and returns immediately; a separate worker produces the file. The caller's authority scope is stamped onto the job server-side, so an export contains exactly what that manager's list view would show and nothing more.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_heavy- Idempotency key
request_id
Exporting a table needs the permission to read it as well as the permission to export. The route's own gate is not enough, so a role with export rights but no subscriber-read right gets a 403 on target_table users. That is the check that stops an export from being a way around a list permission.
Parameters
| Parameter | Description |
|---|---|
target_tablerequired
body · string
|
A dataset key from the datasets endpoint. |
format
body · enum
|
csv or xlsx. Defaults to xlsx. |
params
body · object
|
Dataset-specific filters, in the same shape that dataset's list endpoint accepts. |
request_id
body · string
|
Optional idempotency key. Blank stays blank and means no deduplication at all — supply your own if a retry must not queue a second job. |
{
"data": { "id": 3312 }
}
POST /api/v1/exports/bulk-delete Create / delete export jobs
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/exports/datasets List exportable datasets
Every table this build can export, with its key. target_table on the enqueue call must be one of these, and an unknown value is a 400. Static for the life of the release, so fetch it once and cache it.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
DELETE /api/v1/exports/{id} Delete an export job
Removes the job and its artifact.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
GET /api/v1/exports/{id} Poll one export job
The job's current state and progress. Poll this until status reports the job is finished, then download.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
processed and total drive a progress bar; row_count is the final emitted count and stays 0 until the job finishes. A job that is not yours answers 404 rather than 403, so job ids are not enumerable across resellers.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
GET /api/v1/exports/{id}/download Download an export artifact
Streams the finished file. The ownership check runs again here, because the artifact itself can contain another reseller's card codes and balances.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_downloadDownload export files - Rate limit
t_heavy
404 until the job has actually produced an artifact, which is indistinguishable from "no such job". Poll the job first rather than treating a download 404 as a permanent failure. This route is on the per-tenant heavy budget.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
No endpoint matches that search.
Written to be read by machines too
The reference is public and needs no account, so a tool that has never seen X-Radius can reach a correct first call on its own.
- /llms.txt
- An index of every page, with one-line summaries.
- /llms-full.txt
- The whole reference as one Markdown file, with no navigation to crawl.
- /openapi.json
- OpenAPI 3.1, generated from the router that serves this instance.
- /skill.md
- A ready-made skill file for an assistant: authentication, the response envelope and the error codes in one page.
<page-url>.md- Append .md to any reference URL for the same page as Markdown.
Accept: text/markdown- Send this header on the ordinary URL and the answer comes back as Markdown instead.
Read https://x-radius.com/llms.txt, then fetch the endpoint you need as Markdown by appending .md to its URL.