Connect your accounts. Configure the brief. Ship it before lunch.
Everything you need to wire Spectra into your stack — from a fresh OAuth handshake to a self-hosted webhook receiver. If you can read a YAML file, you can be in production by 2 PM.
From zero to your first daily brief.
OAuth your ad & analytics accounts
Workspace admins click through Google Ads, Meta, GA4, and your CRM. Most workspaces are wired up in under four minutes. No code yet.
# or use the CLI
spectra accounts:add
--platform google_ads
--id 123-456-7890 → Read the OAuth guidePick the metrics that matter to you
Set your house thresholds for ROAS, CPA, pacing. Tell Spectra what counts as a “break”, a “watch”, and a “win” — these become the brief’s vocabulary.
# thresholds.yml
roas: { break: 1.0, watch: 2.0 }
pacing: { break: 25, watch: 12 } → Configure thresholdsPick a delivery channel
Email, Slack, PDF, or all three. Brief is generated at 7:30 AM in your workspace timezone. Add teammates with one click; client-share lives in the account view.
# subscribe via API or UI
POST /v1/briefs/subscribe
{ "channel": "slack", "time": "07:30" } → Delivery optionsWhere most people start.
Ten percent of the docs covers eighty percent of the questions. These are the pages new workspaces read first — and the ones we keep most polished.
Workspaces & teams
Structure your workspace by client, by pod, or by brand. Role-based access, client-share links, multi-region.
- Pod-by-client setup
- Inviting collaborators & clients
- SSO via Okta or Google Workspace
Customizing the daily brief
Add your house voice, set the thresholds that flag a row, schedule per-account briefs, and white-label deliveries.
- House voice & tone
- Per-account threshold overrides
- Slack & email templates
Co-Pilot prompts & safety
How Co-Pilot grounds answers in your data, when it refuses to act, and how to extend it with custom prompts and named queries.
- Grounded answer model
- Custom system prompts
- Named-query library
REST API & SDKs
Programmatic access to briefs, accounts, actions, and Co-Pilot. SDKs in TypeScript, Python, Go, and Ruby — all openapi-generated.
- Auth: API keys vs. OAuth
- Pagination & filters
- Idempotency keys on mutations
Webhooks & events
Subscribe to events from Spectra’s diagnostic engine: brief.generated, anomaly.detected, action.applied. Replayable for 30 days.
- Subscribing to events
- Verifying signatures
- Replay & backfill
Security & compliance
SOC 2 Type II, GDPR/UK-GDPR, CCPA, ISO 27001 in flight. Data residency in US, EU, UK. SSO mandatory on Scale tier.
- SOC 2 report request
- DPA & sub-processor list
- Customer-managed encryption keys
Twenty-eight sources. Joined to the same row.
Spectra pulls from any combination of these and joins on session, customer, and order. New connectors take 6–10 weeks; vote with the in-app upvote on the ones you want next.
SUPPORTED · 28 SOURCES · UPDATED 12 MAY
JSON in. Diagnostic out. Idempotent on mutations.
Authenticate with an API key in the Authorization header. Every endpoint returns paginated results capped at 200 rows. Mutating endpoints accept an Idempotency-Key header — safe to retry for 24 hours.
# Fetch today's brief for one account curl "https://api.spectra.io/v1/briefs/today?account_id=acc_8nL2" -H "Authorization: Bearer sk_live_XF92..." -H "Idempotency-Key: brief-2026-05-14-acc_8nL2" # → 200 OK { "account_id": "acc_8nL2", "date": "2026-05-14", "health": "alert", "summary": "Spend pacing 12% above plan. ROAS held at 3.8×...", "actions": [ { "id": "act_4xb1", "impact": 1200.00, "urgency": "break" }, { "id": "act_4xb2", "impact": 820.00, "urgency": "watch" } ], "generated_at": "2026-05-14T07:31:08Z" }
Twelve events. Signed payloads. At-least-once delivery.
Spectra posts JSON to your endpoint within ~500ms of the engine emitting an event. Every payload is signed with HMAC-SHA256; the signature header is X-Spectra-Signature: t=…,v1=…. Failed deliveries are retried with exponential backoff for 24 hours, then queued for replay.
What shipped this month.
Spectra ships weekly. Breaking changes are announced 60 days in advance; deprecated endpoints are kept warm for two minor versions before removal.
features.margin_pmax = true. v3.4/v0 brief endpoint sunset. Removed 90 days after the v1 launch announcement. Migration guide linked below. v0 → v1impact is now a structured object with amount, currency, and timeframe. Coexists with v1 for 60 days. v3.3Stuck? Talk to a human.
Solutions engineering is staffed weekdays 7 AM–7 PM Pacific. SLA-bound on Scale; same-day on Studio; 24h on Starter. Or drop a question in our community — the answer is usually already there.