Skip to content

Examples and CLI

Practical recipes for integrating with the Data API. Full curl set also lives in rda_back/docs/integration-examples.md.

Environment

export RDA_API_BASE_URL=http://localhost:9006/api   # include /api prefix
export RDA_API_KEY=rda_live_…                       # from create_api_key.py

If your deployment uses API_V1_PREFIX=/api/v1:

export RDA_API_BASE_URL=http://localhost:9006/api/v1

Discover assets

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/assets" | jq .

Paginate with cursor (location _id from the previous response).

List tracks (cursor pagination)

First page:

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/tracks?limit=1000" | jq .

Next page:

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/tracks?limit=1000&cursor=2025-01-01T10:15:00|abc123…"

Incremental sync

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/tracks?since=2025-01-01T10:00:00&since_id=last-uuid"

Track detail

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/tracks/{trackUuid}" | jq .

Metrics

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/metrics?metric=density.avg&series_kind=total&limit=1000" | jq .

List available metrics:

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/metrics/definitions" | jq .

Streaming export

curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/tracks/export?format=csv" \
  -o tracks.csv

Async export job

# Create
curl -s -X POST -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/scans/{scanId}/exports/tracks?format=ndjson"

# Poll
curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/exports/{jobId}"

# Download
curl -s -H "Authorization: Bearer $RDA_API_KEY" \
  "$RDA_API_BASE_URL/data/exports/{jobId}/download" \
  -o tracks.ndjson

Reference CLI (fetch_integration_data.py)

From the rda_back repository:

python scripts/fetch_integration_data.py --api-key rda_live_…              # smoke: GET /data/assets
python scripts/fetch_integration_data.py --api-key rda_live_… assets
python scripts/fetch_integration_data.py --api-key rda_live_… tracks <scanId> --output tracks.ndjson
python scripts/fetch_integration_data.py --api-key rda_live_… metrics <scanId> --metric density.avg
python scripts/fetch_integration_data.py --api-key rda_live_… export <scanId> --format csv --output tracks.csv
python scripts/fetch_integration_data.py --api-key rda_live_… export-job <scanId> --format ndjson --output tracks.ndjson

JWT fallback (when RDA_API_KEY is not set):

export RDA_API_EMAIL=admin@localhost
export RDA_API_PASSWORD=admin
python scripts/fetch_integration_data.py assets