Stratis Public API

Scenes, objects, and aerial reality data as a developer product.

Stratis is not just an app backend. It is a paid spatial-data platform with public discovery surfaces, signed-in user onboarding, and API-key machine workflows that consume API credits when they use processing capacity or create premium dataset exports.

Free

Public

Discovery endpoints are open for browsing captures, map coverage, listings, and share links.

Account Setup

Signed-In User

Signed-in users can enable developer tools, then create, list, and revoke API keys using a Firebase bearer token.

Paid

API Key Runtime

Machine calls use `x-api-key`. Paid operations require enough available API credits and deduct or hold credits during use.

Current Product Lanes

What third parties can actually do with Stratis now

The current public v1 is intentionally split between what is already live and what is still roadmap. These are the strongest live lanes today.

Paid Machine Lane

Scenes

Upload walkthrough or street-level video, commit a job, and retrieve processed outputs, viewer links, and quality metrics.

  • Managed scene processing
  • Signed upload and result URLs
  • Viewer and metric retrieval
Machine + Retrieval Lane

Objects

Search object captures and pull isolated outputs that already exist in Stratis, including splats, OBJ meshes, labels, and object metadata.

  • Dedicated object search
  • Object splat retrieval
  • OBJ and labeling outputs
  • Useful for robotics, simulation, and catalog pipelines
Machine + Discovery Lane

Aerial

Search drone captures, inspect aerial outputs, and still use public map discovery for site-scale coverage and claims.

  • Dedicated aerial search
  • Aerial detail retrieval
  • Aerial map-layer queries
  • Claim and listing visibility
Billing Model

API access is open to signed-in users. API usage still has to pay.

The current policy is simple: developer accounts can mint keys, but paid machine calls must have enough available API credits to proceed. Public browsing remains free, and some API-key retrieval endpoints are currently non-charged.

Denominations
1 Ecko = 1,000 Pulse = 1,000,000 Voxel

API credits are service credits. ECKO is the funding source used to buy them; the long-term purchase path moves through an on-chain wallet flow.

Current Live Rules
  • Public discovery endpoints are currently free.
  • `POST /apiSearchClaims` deducts `1 API credit` per request.
  • `POST /apiCreateJob` checks that the caller can afford processing before it issues an upload URL.
  • `POST /apiCommitJob` and `POST /apiFinalizeUpload` hold `1 API credit` for public captures that allow training, or `3 API credits` for private captures / captures that do not allow training.
  • `POST /apiCreateDatasetExport` deducts the quoted export amount for premium data bundles.
  • Some API-key retrieval endpoints, including object and aerial inventory reads, are currently non-charged.
  • `GET /apiGetBalance` and `GET /apiGetUsage` expose current billing state without adding a new charge.
  • Available API credits are `creditBalance - creditHeld` on the API account.
Start Here

The shortest path to a working integration

  1. 1Sign in, enable a developer account, and create a key from the Developer dashboard.
  2. 2Use public discovery endpoints for broad browsing and map coverage.
  3. 3Use API-key retrieval endpoints if you want a cleaner object or aerial integration contract.
  4. 4Use dataset manifest and export endpoints when you want reusable bundles instead of one asset at a time.
  5. 5Use API-key machine endpoints if you want Stratis to process new scenes.
  6. 6Keep the reference open for exact schemas, examples, and error responses.
Example Flow
# 1. Create a key from the Developer dashboard
POST /createApiKey
Authorization: Bearer <firebase-id-token>

# 2. Search nearby claims with a Stratis API key
POST /apiSearchClaims
x-api-key: <your-api-key>

# 3. Create a paid processing job
POST /apiCreateJob
x-api-key: <your-api-key>

# 4. Upload a video to the signed upload URL
PUT <signed-upload-url>

# 5. Commit the job for processing
POST /apiCommitJob
x-api-key: <your-api-key>
{ "jobId": "<job-id>", "durationSeconds": 42, "capturePolicy": { "visibility": "public", "trainingConsent": true } }

# 6. Poll for result URLs and viewer link
GET /apiGetJob?jobId=<job-id>