Public reference

Exports

Every endpoint in this group. Open one for its parameters and a worked example.

7 Endpoints

View as Markdown

Exports

7
GET /api/v1/exports List export jobs prm_exports_index

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_index View 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.
Response 200 OK
{
  "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 prm_exports_create

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_create Create / 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.
Response 202 Accepted
{
  "data": { "id": 3312 }
}
POST /api/v1/exports/bulk-delete Create / delete export jobs prm_exports_create
Authentication
Staff token or session
Requires permission
prm_exports_create Create / 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 prm_exports_index

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_index View export jobs
DELETE /api/v1/exports/{id} Delete an export job prm_exports_create

Removes the job and its artifact.

Authentication
Staff token or session
Requires permission
prm_exports_create Create / delete export jobs
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Job id.
GET /api/v1/exports/{id} Poll one export job prm_exports_index

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_index View 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 prm_exports_download

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_download Download 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.

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.
Hand this to your assistant
Read https://x-radius.com/llms.txt, then fetch the endpoint you need as Markdown by appending .md to its URL.

Try it on your own network.

50 subscribers for 7 days. You pay nothing.