AXIOM Exchange API — Overview
What the API does, how to call it, and where the full reference lives. The complete reference — every route, request and response — is in the Developer Portal, behind your sign-in, along with the interactive Swagger UI and ReDoc.
Base URL: https://api.veritrisaxiom.energy/api/v1
What you can build with it
| Area | What it answers |
|---|---|
| Catalog and tariffs | Which utilities serve where, their plans, and how rates have moved |
| Serviceability | Which utility serves a point or an address, and the status of utilities across an area |
| Properties and geography | Your sites and assets, with map-ready geometry for ArcGIS and GeoJSON clients |
| Customers and enrollment | Accounts, enrollments and attribution, for partners who manage customers |
| Usage and forecasting | Metered usage per premise, and forecasts from it |
| Usage wallet | A prepaid balance for API usage: top-ups through billing, warnings as it runs low, monthly statements |
| County land records | Oklahoma land records and the PLSS survey grid — see PLSS & Counties |
| Trading | Order execution and settlement, for contracted partners |
Which of these your account can reach depends on its plan — see Pricing and Licensing.
Authenticating
Every call except the health checks carries a credential, in one of two headers:
| Header | |
|---|---|
| API key | X-API-Key: <your key> |
| Bearer token | Authorization: Bearer <token>, from POST /auth/token with your key |
A key beginning sk_test_ works against sandbox data; sk_live_ is
production. Keys are issued in the Developer Portal, or with the service you
ordered through billing, and are shown once. Keep them server-side: never in a
browser, a mobile app or a repository. Revoke and rotate them from the portal.
Being authenticated is not the same as being allowed. Each operation needs a permission your credential was granted, and some need a production credential and a contract as well. The portal shows what your credentials can do.
Conventions
- JSON in and out. Timestamps are ISO 8601 UTC; ids are UUIDs.
- Geometry is WGS84 (longitude, latitude). Spatial routes answer GeoJSON by
default and Esri JSON with
?format=esri. - You see only your own organization's data. Another organization's records are refused, however they are asked for.
Usage and limits
Billable calls are metered and drawn from your usage wallet. You are warned
by email at 80% and 90% of what you funded, and when it runs out. A refund is
not counted as usage. What happens
at zero depends on your plan: by default new billable calls are refused with
402 until usage is added, and nothing is charged for a refused call.
Errors
| Status | Meaning |
|---|---|
401 |
No credential, or one that is not valid |
403 |
The credential is valid but may not do this |
404 |
Not found |
402 |
usage_limit_reached: add usage to continue. No work was done |
402 |
usage_wallet_missing: no usage wallet exists for this subscription. No work was done; contact support |
422 |
The request did not validate; detail lists each field |
503 |
usage_check_unavailable: your balance could not be checked. Nothing was done or charged; retry |
Errors carry {"detail": ...}; the usage errors carry a stable error code
and a message.
SDKs
Thin clients for Python, JavaScript/TypeScript and PHP. They hold no business logic and grant no access of their own: every call is the same authenticated, metered request.
from axiom_exchange import AxiomExchangeClient
client = AxiomExchangeClient(api_key="<your key>")
plans = client.plans.list()
Health
GET /healthz (the process is up) and GET /readyz (it can reach its
database) need no credential. The status page shows both.
The full reference
Sign in to the Developer Portal for:
- the complete API reference, route by route;
- Swagger UI, ReDoc and the OpenAPI document;
- the access tiers, and what each plan's credentials may call.
No account yet? Sign up.