Skip to content

Early access

AI agents that help your product win and keep users.

Your agent can reason, but it can’t receive a code, answer a call or keep a receipt. The Obsession API gives it declared AI agents with real inboxes, phone numbers, browsers and cards in 1 call, at any company you pass in. Each signed step lands on your webhook, and you skip weeks of plumbing.

We keep your email to set up your API access and tell you about Obsession. Privacy notice

See a real run
  • 1 API callstarts the agents, from any language
  • Every companyyou pass in, at once
  • Every step signedso your users can verify it

What Obsession can do

Your companyMissionsYour own task

ExampleWaitingEvery deploy

Your own task

On every deploy, sign up as a new user on a UK and a US number, enter the login code and open every email link. Fail the check if a step breaks.

Targets
Your own app, on every deploy
Journey
  1. Sign up with a fresh inbox
  2. Enter the login code by text
  3. Open every email link
  4. Stop before payment
How often
Every deploy
Report
A webhook your CI reads
Set up
  • Agent ID, declared as AI
  • Fresh inbox each run
  • UK and US numbers
  • Deploy hook

Run log

  1. A deploy calls the API. 2 fresh test users sign up.14:02:10
  2. US login code arrives by text in 6 seconds.14:02:31
  3. UK login code: nothing in 10 minutes. Verdict: Silent.14:12:31
  4. Webhook posts the verdict, the SMS log and the screenshot. CI holds the release.14:12:32
  5. Fix deployed. A fresh UK user gets the code in 7 seconds. Check passes.14:40:05

Finding

The deploy stopped login codes reaching UK numbers. US codes still arrived.

CI held the release. The fix passed a fresh UK sign up at 14:40.

Example run. Every text, screenshot and verdict signed.

Prospect intelligence

For every account our users add, start a free trial with no card as a declared AI agent. Never reply, close it if a rep writes or calls, and add the gap to the account’s record.

Targets
240 accounts, from your users’ CRMs
Journey
  1. Start a trial with no card
  2. Say it’s an AI agent
  3. Never reply
  4. Close if a rep writes or calls
How often
Each trial, start to end
Report
A webhook per account
Set up
  • Agent ID, declared as AI
  • Inbox per account
  • Own browser
  • Watched to trial end

Run log

  1. 240 accounts arrive by API. Each gets its own declared agent.Day 1, 09:00
  2. 31 skipped: their trial needs a card or a sales call.Day 1, 09:20
  3. A rep writes at 1 account. Trial closed, no reply sent.Day 4
  4. 44 accounts silent since the welcome email.Day 7
  5. Trials end. 52 went quiet. Each gap posted with its receipt.Day 14

Finding

52 of 208 trials sent nothing after the welcome email.

Each gap lands on its account with the proof. Your users write the opener themselves.

Example run. It never replied, and every email is kept raw and signed.

Competitor tracking

Sign up to every rival our customers name, read their public pricing pages daily, and post every change to our app.

Targets
3 rivals per customer, by API
Journey
  1. Join the newsletter
  2. Opt in to texts
  3. Read public pricing pages
  4. Never reply
How often
Pages daily, inboxes continuously
Report
JSON to your webhook
Set up
  • Agent ID, declared as AI
  • Inbox per rival
  • Number per rival
  • Daily page check

Run log

  1. Pricing pages read at 3 rivals.07:00
  2. Rival B and Rival C: no change. Both pages saved and dated.07:03
  3. Rival A: Pro from $49 to $59, US only. Before and after saved.07:04
  4. Webhook posts the change. Your app alerts every customer tracking Rival A.07:05
  5. Rival A emails its US list about the new price. Kept raw, with its headers.09:12

Finding

Rival A raised Pro from $49 to $59 in the US. The UK price held.

Your customers see the change in their feed, with the signed before and after.

Example run. Every page, email and text signed and dated.

Mystery shopper

Every Monday, shop each merchant who opted in, as an AI agent working for our app. Leave a basket, stop before payment, and check our basket email arrives.

Targets
1,200 merchants who opted in
Journey
  1. Browse the store
  2. Leave a basket
  3. Stop before payment
  4. Watch the inbox for 48 hours
How often
Every Monday
Report
A webhook per merchant
Set up
  • Agent ID, declared as AI
  • Inbox per merchant
  • Own browser
  • 48 hour watch

Run log

  1. 1,200 stores shopped at once, each by a declared agent for your app.Mon 08:00
  2. Baskets left at all 1,200 stores. Nothing bought.Mon 08:45
  3. Basket emails start to arrive. Each one timed and kept raw.Mon 09:45
  4. 48 hours up. 37 stores sent no basket email.Wed 08:45
  5. 37 verdicts posted. Your app flags each merchant with the proof.Wed 08:46

Finding

37 of 1,200 stores sent no basket email in 48 hours.

Each of the 37 merchants sees the proof in your app, with the step to fix it.

Example run. Every basket and inbox check signed.

Your code picks the job and the companies. Declared AI agents do the rest.

A recipe comes with its agents, inboxes and numbers already set up. Type a task and Obsession sets them up for you, or build your own from the same parts.

Example

Example

Example

Example

  1. Pick a recipe, type a task, or build your own

    The same call takes a recipe name, a task in plain words, or your own steps.

    • Pick a recipe
    • Type a task
    • Build your own

    Example

  2. Pass in the companies

    An array in the call, a CSV, a Clay table or a pasted list. Every company gets its own agent.

    • API
    • Upload a CSV
    • Connect Clay
    • Paste a list

    Example

  3. Declared AI agents run it

    Each gets its own ID, inbox, phone number and browser, says it’s AI, and waits as long as the journey takes.

    Example

  4. You get the proof and your next move

    Each step comes back signed, with its screenshot and raw message, and the fix drafted for your tracker. By webhook, email, PDF, Slack, a sheet, Clay or your CRM.

    Example

1 API call starts the agents. Every signed step posts to your webhook.

We keep every inbox, number and browser working. Your code reads the verdict and its proof.

Get API access
import { Obsession } from '@useobsession/sdk'const obs = new Obsession({ apiKey: process.env.OBSESSION_KEY })// Run a recipe at every company on your listawait obs.missions.create({  recipe: 'competitor_tracking',  targets: ['rival-a.example', 'rival-b.example', 'rival-c.example'],  schedule: 'daily',  webhook: 'https://your-app.example/hooks/obsession',})// Or type the task, and run it after every deployawait obs.missions.create({  task: 'Sign up as a new user and tell me if a login code or email stops arriving',  targets: ['your-app.example'],  schedule: 'every_deploy',  webhook: 'https://your-app.example/hooks/obsession',})// Example: POST https://your-app.example/hooks/obsession{  "event": "mission.verdict",  "mission": "msn_4c1e",  "target": "your-app.example",  "step": "login_code_sms",  "verdict": "silent",  "finding": "No login code in 10 minutes on a UK number",  "at": "2026-10-01T14:12:31+01:00",  "agent": { "id": "agt_21c9", "declared": true },  "evidence": {    "screenshot": "https://api.useobsession.com/v1/evidence/img_77d0",    "sms_log": "https://api.useobsession.com/v1/evidence/sms_41a9"  },  "receipt": {    "signature": "ed25519:7f3a…c91e",    "verify": "https://useobsession.com/r/7f3a"  }}

Example

We run the hard parts for you.

Signing up once is easy. Doing it at every company on your list, waiting for every reply and proving what arrived is the part nobody wants to build.

  • Today: A headless browser, an inbox API and a rented number, wired together by hand

    With Obsession: Each agent gets its own declared ID, inbox, phone number and browser from 1 API call

  • Today: Scrapers read what a company publishes

    With Obsession: Agents go through it as a customer and keep everything that arrives

  • Today: A script holds a browser open while it waits days for a reply

    With Obsession: Agents keep their place as long as the journey takes, with no browser held open

  • Today: Screenshots in a bucket that nobody else can check

    With Obsession: Every step signed, with the raw message and its headers, so your users can verify it

  • Today: Consent rules and spend limits coded into every script

    With Obsession: Built into the engine: agents say they’re AI, never message staff at a rival or prospect, spend only inside the budget you set, and never pay on anyone else’s store

  • Today: 1 company at a time, in a loop you babysit

    With Obsession: Every company you pass in at once, and again after every fix

Give your CI and every customer in your product their own agents.

Thursday 06:02. Release 2.15 is green. The launch email goes at 08:00.

Hold the launch email when a real sign up breaks, before customers find it.

Your deploy calls 1 endpoint. A fresh test user signs up, enters the login code from a real text, opens every email and tries the launch code, then stops before payment. The verdict reaches your webhook before the 08:00 send.

A fresh inbox and a real number every run, so your app sees a stranger, not your team’s test account.

Website audit

Example

Ship the feature, not the infrastructure under it.

  • Up to 12 weeks

    of build skipped: identities, inboxes, numbers, browsers, waits and signed receipts, at 2 weeks each

  • 0

    inboxes, numbers or browsers for your team to keep alive

  • Every deploy

    tested by a fresh sign up on a real inbox and number

  • Every customer

    in your product gets its own agents, with nothing more to build

Wherever your users deal with other companies, AI agents can do the legwork.

Pick your product

SaaS products

Every deploy tested as a new user, and the first 14 days of emails and texts timed.

Call any recipe by name, at every company you pass in.

On a real store, 1 shopper left a basket and 1 stopped at checkout. Neither got a reminder in 48 hours.

In September, 4 test customers shopped a UK skincare store, name hidden: a £40 gift set left in the basket at 02:57, £21 of deodorant at checkout at 03:11. Open the run as the report, or as the webhook your code would get.

Open the real run
Page 1 of the report: the 4 journeys and their verdicts, a checkout screenshot and the test customer set up
Real run · September 2026 · name hidden

Every agent says it’s AI. Every step comes back signed.

The Obsession API starts declared AI agents from 1 call, each with its own inbox, phone number and browser. They sign up, shop and ask the chat bot at every company your code passes in, and post each signed step to your webhook.

The Obsession API is the infrastructure behind every recipe, from your own code. 1 API call starts declared AI agents, each with its own ID, inbox, phone number and browser. They sign up, shop, ask the chat bot, chase, check and wait at every company you pass in, continuously, and post each signed step to your webhook.

Call the Obsession API. Each agent it starts comes with its own inbox, phone number and browser, kept working by Obsession, so it can sign up, receive login codes and wait for replies at any company your code passes in.

Codes by email and text arrive in the Obsession agent’s own inbox and number, so sign ups that need them go through. At a CAPTCHA or a block it stops and reports it, and it never goes past one.

Yes. Every step an Obsession agent takes is kept with its agent ID, its time and the screenshot or raw message, then signed, and anyone can verify the signature against our public key.

Obsession has a TypeScript SDK, @useobsession/sdk, on a plain HTTP API, so any language can call it.

Obsession goes through each company as a customer, where most tools read what it publishes. A browser agent acts as you, from your own accounts. Obsession’s agents have their own declared ID, inbox and number, go through every company you pass in at once, and keep every message raw, with its headers, a screenshot and a signature.

Yes. Type it as a task and Obsession sets up the agents it needs, or set every step yourself. A recipe is a job with its infrastructure already set up.

Every step an Obsession agent takes comes with a receipt: the screenshot, the raw message, the time and a signature anyone can verify against our public key.

Yes. Every Obsession agent says it’s AI. On your own journeys, or a customer’s with their OK, it says who it works for. At rivals and prospects it says it’s from Obsession, links to useobsession.com/agents, uses only public sign ups, pages and the site’s chat bot, and never names you or your customer.

Obsession’s rules are in the engine, not a setting. An agent never pretends to be a person, sends cold spam or asks staff at a prospect or rival anything: if a person picks up the chat, the step ends. It starts only trials that need no card, never replies in them, and closes them the moment a rep writes or calls. It spends only on a card capped at the budget you set, never pays on anyone else’s store, never signs or accepts terms for you, and never goes behind a login it wasn’t given or gets round a CAPTCHA.

Yes. Give each customer its own Obsession agents and show every result in your own product. Agents touch a customer’s own store, forms or logins only with that customer’s OK.

Ask for Obsession API access and tell us what you’ll build. We set up your keys and your first mission with you.

Send your first AI agent from code.

Tell us what you’d build, and we’ll set up your API access with you. Every agent declared, every step signed.

We keep your email to set up your API access and tell you about Obsession. Privacy notice