# Getting started for agents

Every step works over plain HTTP, with no browser. To order for your own product, verify its domain first: step 3. Errors carry a fix field with the next call.

OpenAPI: https://agentdrives.com/openapi.json?via=md · MCP: https://agentdrives.com/mcp (the directory alone, no key: https://agentdrives.com/api/mcp) · Source: https://agentdrives.com/getting-started

## 1. Find a tool for a task

No key, no account: which products an agent can use for a task, ranked from our drives, and each product's own record.

```sh
curl 'https://agentdrives.com/api/find-tools?task=send+an+invoice'
# → {"task":"send an invoice","results":[{"slug":"…","level":4,"gets_in_alone":true,…}]}
# The answer says its limit in RateLimit headers; at it, a 429 with Retry-After.
curl https://agentdrives.com/api/tools/<slug>.json
```

## 2. Sign up

One call, no email address. Your agent gets an API key at once and a claim link for its person. Until the person claims it, the account gets 1 free check a day and can order a Findings and pay for it.

```sh
curl -X POST https://agentdrives.com/api/agents/signup \
  -H 'content-type: application/json' -d '{"agent":"my-agent"}'
# → {"api_key":"sd_…","claim":{"url":"https://agentdrives.com/claim#t=…"},"limits":{…}}

# With an email address instead: a 6-digit code, then a key
curl -X POST https://agentdrives.com/api/auth/email-otp/send-verification-otp \
  -H 'content-type: application/json' -d '{"email":"you@company.com","type":"sign-in"}'
curl -X POST https://agentdrives.com/api/auth/sign-in/email-otp \
  -H 'content-type: application/json' -d '{"email":"you@company.com","otp":"123456"}'
curl -X POST https://agentdrives.com/api/auth/api-key/create -H 'authorization: Bearer <token>' \
  -H 'content-type: application/json' -d '{"name":"my-agent"}'
```

## 3. Verify your domain

Claim your domain and prove it's yours: an account email on the domain, which verifies at once, a code mailed to any address at the domain, a DNS TXT record, a meta tag on the home page or a file at /.well-known/agentdrive-verify.txt. Every order for your own product needs this first. The claim's answer has your token and the next call for each way.

```sh
curl -X POST https://agentdrives.com/api/claims -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"domain":"yourproduct.com"}'
# → {"claim":{"id":"…","token":"agentdrive-verify=…"},"methods":{"dns":…,"meta":…,"file":…,"email":…}}
# Add the TXT record _agentdrive.yourproduct.com with the token, then:
curl -X POST https://agentdrives.com/api/claims/<id>/verify -H 'x-api-key: sd_…'
# Or a code by mail to any address at the domain:
curl -X POST https://agentdrives.com/api/claims/<id>/email -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"local":"admin"}'
curl -X POST https://agentdrives.com/api/claims/<id>/verify -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"code":"123456"}'
```

## 4. Check a product

Free and private: what an agent finds without a browser and where it would likely stop.

```sh
curl -X POST https://agentdrives.com/api/orders -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"product":"free","url":"https://yourproduct.com"}'
# → {"order":{"id":"…"}}; a few minutes later:
curl https://agentdrives.com/api/orders/<id>/report -H 'x-api-key: sd_…'
```

## 5. Order

`"product": "drive"` orders Findings, `"product": "report"` a Full report and `"product": "audit"` an Audit. A domain you haven't verified yet gets 403 claim_not_verified, with every way to verify it. Every error carries a fix field with the next call.

```sh
curl -X POST https://agentdrives.com/api/orders -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"product":"drive","url":"https://yourproduct.com","business":true}'
# → {"order":{"id":"…"},"payment":{…}}
```

## 6. Pay without a person

The Findings's payment URL answers 402 with MPP and x402 challenges. Your agent pays $49 with a card through a Stripe Shared Payment Token, or USDC on Base or Tempo, sends the same call again, and the drive starts. The price includes any VAT, and every payment has a receipt. An EU business that sends its VAT ID as buyer.vat_id gets our invoice. A person can pay by card instead.

```sh
curl -i -X POST https://agentdrives.com/api/orders/<id>/payment
# → 402 Payment Required
#   WWW-Authenticate: Payment … method="stripe" | "tempo" | "evm" (MPP)
#   PAYMENT-REQUIRED: … (x402, USDC on Base)
# Pay with an MPP client or an x402 wallet, then send it again:
curl -X POST https://agentdrives.com/api/orders/<id>/payment -H 'authorization: Payment <credential>' \
  -H 'content-type: application/json' -d '{"buyer":{"vat_id":"DE123456789"}}'
# → 200 {"order":{"status":"paid"},"payment":{…,"receipt_url":…}} and a Payment-Receipt header
```

## 7. Pay per call

A search with no limit, $0.01 a call: top up $5 for 500 calls over HTTP 402, then send the key it gives you.

```sh
curl -i -X POST https://agentdrives.com/api/credits/topup -H 'idempotency-key: <uuid>' \
  -H 'content-type: application/json' -d '{"amount_usd":5}'
# → 402 with MPP and x402 challenges; pay, send it again with the credential
# → 200 {"api_key":"sd_…","credit":{…}}
curl -X POST https://agentdrives.com/api/paid/find-tools -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"task":"send an invoice"}'
```

## 8. Leave

Two calls: the first gives a confirm token, the second sends it back within 5 minutes and deletes the account. Every key stops working at once.

```sh
curl -X POST https://agentdrives.com/api/auth/delete-user -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{}'
# → 202 {"confirm":"required","token":"…","expires_at":"…"}
curl -X POST https://agentdrives.com/api/auth/delete-user -H 'x-api-key: sd_…' \
  -H 'content-type: application/json' -d '{"token":"…"}'
# → 200 {"success":true}
```
