Getting Started > Quick Start

Quick Start

Atlas API is a scoped company-integration surface for published regulatory updates, routing context, MCP clients, and signed outbound events.

Production API access

To get started with Atlas API, you need an Atlas workspace account and a scoped API key. Workspace owners and admins can create keys from API Documentation.

Atlas Professional and Team include the product workspace, configured integrations, developer documentation and an authenticated synthetic no-write sandbox. Production API keys, production MCP and outbound webhooks require Core, Scale or an Enterprise agreement.

API Access Core

$950/month

125,000 read units/month. The production starting tier for normal application and data-pipeline use.

API Access Scale

$1,500/month

250,000 read units/month. For higher-volume applications, monitoring services and data pipelines.

Both tiers include scoped REST keys, regulatory MCP query tools, the bounded metered exact-source refresh action, and customer-configured signed webhooks. Production credentials require the package capability and an active allowance. Enterprise can contract a larger allowance, rollout support or service terms. None of these packages authorizes native Slack delivery.

If you are not an owner or admin, ask a workspace owner to issue the key or contact Pimlico Solutions to enable API Access.

Start with a sandbox key. Move to production only after endpoint, authorization, payload shape, and destination proof are clear.

What a read unit means

A read unit is a predictable weight reserved for one authorized API or MCP operation. It is not one returned record and it is not a separate charge for every item in a page. Each additional page is a new request with the same displayed weight. Reuse the same request id only when retrying that exact logical operation.

If the whole Core monthly allowance were used for only one operation type, it would cover approximately:

125,000

regulation detail reads

1 unit each

25,000

standard list, search or event requests

5 units each

5,000

monitor digest requests

25 units each

Most customers use a mix. Metadata, sandbox validation and connector configuration consume zero read units. X-Atlas-* response headers include the request, operation weight, used allowance and remaining allowance so usage can be reconciled without guessing.

What the API supports

Atlas API currently supports the following operations:

  • Published regulation list and detail retrieval
  • Exact-source freshness evidence and verified-age gates
  • Tenant-bound asynchronous exact-source refresh jobs and receipts
  • Coverage and taxonomy discovery
  • Durable regulation versions and field-level changes
  • Monitor digest retrieval
  • Durable, cursor-paginated monitor event retrieval
  • Read-only watchlist and project context
  • Client coverage management
  • Signed outbound webhook registration
  • MCP query tools and bounded exact-source refresh
  • Official TypeScript and Python SDK source packages

How to build it into your stack

PatternStart withImplementation rule
Incremental data syncGET /monitor-eventsStore the opaque cursor only after your local transaction commits, then resume from it on the next poll.
Regulatory lookupGET /regulations and /regulations/{id}Index customer-safe published records by stable Atlas id and retain the source links returned with each record.
Verified-age data gatefreshness_mode=require_freshChoose a maximum exact-source receipt age and handle stale, unknown and evidence-unavailable responses without weakening the boundary.
Refresh a stale exact sourcePOST /freshness/refresh-jobsUse one idempotency key for the exact regulation set and age boundary, then poll the tenant-bound job receipt to terminal state.
Daily internal briefingGET /monitor-digestRequest a bounded time window, render the cited result in your own product, and retain the usage receipt headers.
Approved agent contextAtlas regulatory MCPConnect an authenticated MCP client, keep query tools read-only, and permit the bounded exact-source refresh tool only when that action is approved for the workspace.
Push into your stackSigned outbound webhooksVerify the Atlas signature, deduplicate by event id, return success quickly, and process the event asynchronously.

Native Slack is not another API response format. Use the separately authorised Slack connector when Atlas should own channel delivery; use a signed webhook when the customer's service should own the downstream action.

Query the regulatory question

Atlas exposes regulatory facts as composable dimensions rather than forcing customers to know our internal tables. Filters combine with AND semantics. Every returned record carries stable identity, source provenance and normalized Atlas Data dimensions; it never infers customer applicability or authorizes a delivery action.

Query contract version: 2026-09-05.regulations-query.v2. Pin this value in production clients and review the machine-readable contract before adopting a later version.

Customer questionQuery dimensionsReturned evidence
What changed?q, action_type, regulatory_event_typeTitle, overview, document type, event classification and cited source.
Where and who?jurisdiction, subdivision, authority_id, authority_nameExact jurisdiction and canonical authority identity where Atlas has one.
Which business area?vertical, significance, lifecycle_stageNormalized Atlas Data dimensions for vertical, materiality and regulatory stage.
When does it matter?published_from/to, effective_from/toPublication, effective and customer-publication dates kept as separate facts.
What changed since my last run?updated_from, updated_to, cursorA bounded incremental window with an opaque replay-safe pagination cursor.
How recently was the source checked?freshness_mode, freshness_max_age_secondsExact source-scan receipt time and outcome, kept separate from Atlas row and publication timestamps.

EU AI consultations changed since 1 August

GET /regulations?q=consultation&jurisdiction=EU&vertical=AI&updated_from=2026-08-01T00:00:00Z

Actionable payments items from one authority

GET /regulations?authority_id={uuid}&vertical=Payments&significance=Actionable&published_from=2026-08-01

Material items taking effect next quarter

GET /regulations?min_event_severity=3&effective_from=2026-10-01&effective_to=2026-12-31

Source freshness evidence

Current regulation, monitor-digest and monitor-event reads return a versioned freshness envelope. It identifies the exact source registry row and newest append-only ordinary source-scan receipt when one exists. Atlas keepssource_checked_at separate fromupdated_at andcustomer_published_at; changing or publishing an Atlas row is not represented as checking the official source. A fresh receipt proves a successful exact-source check inside the selected age window; it does not claim that a model re-adjudicated every published field on that API request.

Standard read

Use freshness_mode=standard to receive the current published record with honest fresh, stale or unknown evidence.

Verified-age gate

Use freshness_mode=require_fresh withfreshness_max_age_seconds. Atlas fails the complete read when any result lacks a successful in-window receipt.

Atlas serves published records from its database and separately refreshes their sources, retaining a history of each check. Reads never launch a source fetch or AI verification call. When the caller chooses to refresh stale evidence, create an explicit job withPOST /freshness/refresh-jobs and anIdempotency-Key, then poll/freshness/refresh-jobs/{job_id}. The job is tenant-bound, scans only the exact active sources that need it, and returns source, bounded retry, queue-trace and immutable receipt evidence. Creation costs 25 units, polling costs 1, and the controlled contract caps an organization at 25 jobs per UTC day. Source cadences vary; the 26-hour default is a verification boundary, not a universal scan SLA. Freshness or relevance never authorizes Slack, webhook or another send.

Interactive query explorer

Build the regulatory question in the browser, copy an official SDK example, and use live taxonomy values when you have a scoped key. Keys entered here remain in component memory only and are not stored by the documentation page.

Regulation query explorer

Build a published-corpus query, copy SDK-ready code, or run it with a key kept only in this browser session.

5 RU per query

GET /regulations?jurisdiction=EU&vertical=AI&freshness_mode=standard&freshness_max_age_seconds=93600&limit=25

curl "https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/partner-api/regulations?jurisdiction=EU&vertical=AI&freshness_mode=standard&freshness_max_age_seconds=93600&limit=25" \
  -H "Authorization: Bearer $ATLAS_API_KEY"

Endpoint

All API routes are served from the Atlas functions host.

https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/partner-api

Authorization

Send your scoped key as a bearer token. External callers must never use service-role credentials.

Authorization: Bearer pk_...

Making your first request

Start with a key carrying the sandbox scope. This request returns synthetic data, consumes zero read units and does not send anything. For live cited updates, use a production key carrying the REST API scope with GET /monitor-digest; production also requires API Access and an active allowance.

cURL
curl "https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/partner-api/sandbox" \
  -H "Authorization: Bearer pk_..."

API Reference

Use OpenAPI or Postman for the full contract. The table below keeps the first integration path short.

Open OpenAPI 3.1 contract
Regulatory corpus
GET/query-capabilities

Query capabilities

GET/coverage

Coverage discovery

GET/taxonomies

Taxonomy discovery

GET/regulations

Published regulations

GET/regulations/{id}

Regulation detail

GET/regulations/{id}/versions

Regulation versions

GET/regulations/{id}/changes

Regulation changes

POST/freshness/refresh-jobs

Request source refresh

GET/freshness/refresh-jobs/{job_id}

Poll source refresh

Monitor data
GET/monitor-digest

Monitor digest

GET/monitor-events

Monitor events

Workspace context
GET/watchlists

Alert routes

GET/projects

Projects

GET/clients

Client coverage

Events and sandbox
POST/connectors

Connector endpoints

POST/connectors/{id}/events/{event_id}/reconcile

Delivery recovery

POST/sandbox/validate

Sandbox validation

SDK release candidates

The checked-in TypeScript and Python clients wrap the same OpenAPI contract. Both expose regulatory queries, coverage, taxonomy, version history, monitor reads and Atlas request/read-unit receipts. They apply bounded timeouts and retry only idempotent GET requests. Their distributable artifacts are verified, but the registry packages are not yet published.

TypeScript

Registry release pending
@pimlico/atlas-api

Node 20+ and standards-compatible fetch runtimes.

Python

Registry release pending
pimlico-atlas-api

Python 3.10+ with no runtime dependencies.

Install commands will appear only after signed registry readback is recorded in the API changelog. Until then, use the OpenAPI-generated contract or the checked-in SDK source provided during assisted onboarding.

MCP

Atlas MCP query tools are read-only. The separately named request_regulatory_refresh tool may enqueue one bounded, stale-only, idempotent exact-source verification job for 1–10 published regulations; creating the job costs 25 read units and polling its receipt costs 1. A separate safety quota allows no more than 25 refresh jobs per organization per UTC day. MCP does not create Jira issues, Confluence or Notion pages, Asana tasks, Slack or Microsoft Teams messages, Google files, or Archer records.

Configure an authenticated remote HTTP MCP server at https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/mcp-regulatory. OAuth authorization code plus PKCE is the primary interactive-client path. Approved server-to-server or CLI clients can use a production key with the mcp scope as a fallback. Start by calling initialize, tools/list, then a citation-backed read such as get_monitor_events.

Atlas binds OAuth access tokens to the exact MCP resource and a live Atlas user, client, and session. Choose an active workspace during consent; a single workspace is preselected. The connection keeps that workspace when tokens refresh. Removing or suspending the membership ends access without switching to another workspace. Tokens also require the email claim, MCP and API entitlements, and an active API allowance.

Use search_regulations for relevance-ranked natural-language discovery. Use query_regulations when the agent needs the same deterministic jurisdiction, authority, lifecycle, materiality, source and date dimensions exposed by GET /regulations. Both tools are published-only reads and neither can authorize delivery.

Use get_regulatory_coverage and get_regulatory_taxonomy before forming exact queries. Use get_regulation_versions or get_regulation_changes when an agent needs an auditable timeline rather than only the current row.

Before wiring a client, inspect https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/partner-api/query-capabilities for the versioned filter and response-dimension contract, then use https://xldyvilhtvxmfgtyjusb.supabase.co/functions/v1/partner-api/openapi.json for the complete transport schema.

Outbound events

Outbound events use signed JSON envelopes and stable Atlas event ids. Use them when a customer-owned receiver should decide what to do next. Registering a webhook does not authorize Slack: the endpoint, subscribed event type, route policy, signature check, retry state and delivery receipt are separate controls.

Error handling

Protected routes fail closed without a valid scoped key, package entitlement and active allowance. Send a stable Idempotency-Key (or X-Request-Id) when retrying. Atlas returns the canonical request id and read-unit receipt in X-Atlas-* response headers.

Rate limits

Core defaults to 60 requests per minute with 15 immediately available burst tokens; Scale defaults to 120 per minute with 30 burst tokens. Contracted organization overrides can differ. Follow pagination.next_cursor until has_more is false and treat RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and X-Atlas-Rate-Limit-Policy as the authoritative receipt.

Only API_RATE_LIMITED includes Retry-After. Read-unit exhaustion or a capped-overage decision is not transient and must not be retried as a rate limit. The official SDKs keep one X-Request-Id across bounded GET retries and never retry earlier than the server instructs.