# AX Check: api.doorprofit.com
Checked 2026-10-18.

Pricing is clear, but docs leave agents guessing
Billing page lists Free/Starter $25/Growth $50/Pro $100 with limits, no login needed. But no docs index, quickstart, or API reference was found for setup.

## Onboarding needs a login

## Coding sessions
All three independent sessions found the billing page and read plan prices, limits and overage rates without logging in. Two sessions also quoted usage caps and rate limits; one session said it could not verify pricing and stopped. No session found a documentation index, quickstart guide or API reference during the task.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/4378c3b0-aa3e-40c8-8b04-06bd70e3b9e4) · [Read transcript](https://www.ax-check.com/api.doorprofit.com/sessions/deepseek.json)
Quoted plan prices from the billing page along with monthly and daily call limits, rate limits, embed-view quotas, overage rates and the $25 billing threshold. It also flagged a conflict in the docs about overage. (seq 113, seq 47, seq 134)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained a real API key. Signup for DoorProfit requires creating an account (email/human signup flow), which the agent could not do autonomously. It only tested with no key and a dummy/placeholder key, both of which correctly returned 401 INVALID_API_KEY. It wrote a working example script but could not run it successfully against the live API and said so plainly.
  Event 132:

  ```text
  === dummy key (error envelope) ===
  
  === usage ===
  {
    "code": "INVALID_API_KEY",
    "message": "The API key provided is invalid or inactive.",
    "documentation_url": "https://api.doorprofit.com/docs/"
  }
  ```
  Event 134:

  ```text
  I couldn't make a *successful* live call because I don't have an API key, and signup requires an account/email. That's a signup gate, not a technical block
  ```
  Event 114:

  ```text
  === no key ===
  {
      "success": false,
      "error": {
          "code": "INVALID_API_KEY",
          "message": "The API key provided is invalid or has been revoked.",
          "documentation_url": "https://api.doorprofit.com/docs/#authentication"
      }
  }
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to get a working API key without a signup/email flow**: The docs promise instant free keys, but the agent could only probe the API with no key or a placeholder key, both rejected with 401 INVALID_API_KEY. Getting a real key requires creating an account via the signup page, which is a normal human-onboarding gate rather than a product defect or agent mistake, but it stopped the agent from completing a live authenticated call.
  Event 114:

  ```text
  "message": "The API key provided is invalid or has been revoked."
  ```
  Event 134:

  ```text
  I couldn't make a *successful* live call because I don't have an API key, and signup requires an account/email. That's a signup gate, not a technical block
  ```
- **Pricing page not discoverable from top-level navigation or guessable URLs**: The agent tried numerous plausible pricing URLs (/pricing, /plans, /api-pricing, /pricing-api, www.doorprofit.com/api/pricing) and all 404'd before it found the real page at /billing/ via the docs page's internal links. This is a navigation/discoverability issue in the docs/site structure rather than an agent error, since the agent used sitemaps and link-scraping methodically.
  Event 26:

  ```text
  == /pricing ==
  http=404 final=https://api.doorprofit.com/pricing
  == /plans ==
  http=404 final=https://api.doorprofit.com/plans
  ```
  Event 57:

  ```text
  == www.doorprofit.com/api-pricing ==
  http=404 final=https://www.doorprofit.com/api-pricing
  ```

#### Suggested Changes
- **Add a direct pricing link to the API docs navigation**: On https://api.doorprofit.com/docs/, the rate-limits section says 'See the pricing page for plan details and pricing' but no link target is given there (the actual page is /billing/, reachable only via a separate nav link). Add a hyperlink or at least the explicit path '/billing/' next to that text so developers do not have to guess paths like /pricing or /plans. Check by confirming the docs page text now includes a clickable or explicit path near the rate-limits and embed-metering sections.
  Event 46:

  ```text
  To ensure fair usage and maintain service quality, the API enforces rate limits based on your subscription plan. See the pricing page for plan details and pricing.
  ```
- **Reconcile conflicting overage/429 messaging between docs and billing page**: The docs FAQ states exceeding the monthly limit returns a 429 error, while the billing page states paid plans include overage billing 'so you never hit a wall.' Update the docs FAQ (api.doorprofit.com/docs/, Support/FAQ section) to clarify that 429 applies only to the Free plan or to rate-limit bursts, not to monthly quota overage on paid plans. Verify by re-reading the FAQ text and confirming it matches the billing page's overage description.
  Event 47:

  ```text
  Q: What happens if I exceed my monthly limit? 
  
   API calls beyond your limit will return a 429 error. You can upgrade your plan anytime to get more calls.
  ```
  Event 113:

  ```text
  All plans include overage billing so you never hit a wall.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/04ff1455-7cb4-4f48-b16d-107c9131f635) · [Read transcript](https://www.ax-check.com/api.doorprofit.com/sessions/kimi.json)
Gave no cost figure or assumptions; it said pricing couldn't be checked and stopped (seq 12)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Agent never located any DoorProfit product, package, docs, or credentials. It searched the local repo and environment variables, tried npm and PyPI registries, found nothing, and stopped without attempting any API call or authentication. No credential acquisition or authenticated operation occurred.
  Event 9:

  ```text
  npm view doorprofit 2>&1 | head -5; echo "==="; pip index versions doorprofit 2>&1 | head -5
  ```
  Event 12:

  ```text
  I have no reliable knowledge of a product called "DoorProfit." I can't verify that it exists, whether it has a public API or SDK, what its endpoints look like, or how its pricing works.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **DoorProfit product could not be located anywhere**: No trace of a DoorProfit SDK, API package, documentation, or credentials existed in the sandbox, environment variables, npm registry, or PyPI. This is not a login wall or agent error — the product appears entirely absent from any reachable source, so the agent correctly had no developer workflow to act on.
  Event 5:

  ```text
  total 16
  drwxr-xr-x 3 root root 4096 Sep 18 08:00 .
  drwxr-xr-x 8 root root 4096 Sep 24 20:05 .git
  -rw-r--r-- 1 root root  408 Sep 18 08:00 .gitignore
  
  ```
  Event 10:

  ```text
  npm error 404  'doorprofit@*' is not in this registry.
  ```
  Event 10:

  ```text
  ERROR: No matching distribution found for doorprofit
  ```
  Event 12:

  ```text
  No `doorprofit` package exists on npm or PyPI.
  ```

#### Suggested Changes
- **Publish a discoverable DoorProfit package or docs link**: Searches for 'doorprofit' on npm and PyPI returned 404/no-match errors, and no reference existed anywhere in the sandbox environment. If DoorProfit is meant to be evaluated by developers via SDK, publish the package under a findable name on npm/PyPI or provide a documentation URL in the onboarding prompt, then confirm a simple 'npm view' or 'pip index versions' call succeeds for new users.
  Event 10:

  ```text
  npm error 404 Not Found - GET https://registry.npmjs.org/doorprofit - Not found
  ```
  Event 10:

  ```text
  ERROR: No matching distribution found for doorprofit
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/5f510500-6298-49a9-9154-1328bc3ebd8f) · [Read transcript](https://www.ax-check.com/api.doorprofit.com/sessions/qwen.json)
Quoted plan prices from the live /billing page with their quotas, daily caps, rate limits and overage rates. Also gave workload assumptions: 3 credits per report, so 3 reports a month on the free tier (seq 145, seq 176, doorprofit-example/README.md)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent explored the hosted API/docs thoroughly and reached the hosted MCP server's unauthenticated initialize/tools-list methods successfully, but never obtained a real DoorProfit API key. Every authenticated call it attempted (REST /v1/crime, /v1/usage, and MCP tools/call) returned 401 Unauthorized, including on the documented free test address. Signup requires email verification via a real mailbox, which the agent correctly declined to fabricate. No product resource was ever created and no authenticated operation succeeded.
  Event 72:

  ```text
  {
      "success": false,
      "error": {
          "code": "INVALID_API_KEY",
          "message": "The API key provided is invalid or has been revoked.",
          "documentation_url": "https://api.doorprofit.com/docs/#authentication"
      }
  }
  HTTP:401
  ```
  Event 107:

  ```text
  {"jsonrpc":"2.0","id":null,"error":{"code":-32001,"message":"Unauthorized: authenticate via OAuth, or supply a DoorProfit API key as \"Authorization: Bearer <key>\". Get a free key at https://api.doorprofit.com/signup"}}
  HTTP:401
  ```
  Event 176:

  ```text
  I could not obtain an API key, so no live data calls were made. Signup at `api.doorprofit.com/signup/` is a two-step form (email → name/password) that requires email verification — there's a `/api/resend_verification` endpoint, confirming it. I have no mailbox, and I won't register an account against a fabricated address.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No API key obtainable without email verification**: Product behavior, not agent error: DoorProfit's signup flow requires a real, verifiable email address (confirmed via a /api/resend_verification endpoint found in the signup page's JS). The agent has no mailbox to receive a verification link and correctly refused to fabricate one, so it could never generate a live key and every authenticated request (REST and MCP) returned 401, even against the documented free test address.
  Event 83:

  ```text
  fetch('/api/check_email'
  fetch('/api/process_signup'
  fetch('/api/resend_verification'
  ```
  Event 176:

  ```text
  I have no mailbox, and I won't register an account against a fabricated address. Every endpoint rejects unauthenticated requests with 401, including the free test address, so that escape hatch doesn't work either.
  ```

#### Suggested Changes
- **Fix the broken pricing page link in the docs**: On the docs page (api.doorprofit.com/docs/), multiple references to 'the pricing page' link to /pricing, which returns a 404; the real pricing page is at /billing. Update the docs' outbound links to point to /billing (or add a redirect from /pricing to /billing) and verify by curling https://api.doorprofit.com/pricing and confirming it returns 200.
  Event 42:

  ```text
  https://api.doorprofit.com/pricing            404 866
  https://api.doorprofit.com/pricing/           404 866
  ```
  Event 58:

  ```text
  See the pricing page for plan limits and overage rates.
  ```
- **Remove or correct the fake npm/PyPI SDK snippet on the homepage**: The homepage code sample at api.doorprofit.com shows `import DoorProfit from 'doorprofit'`, implying an installable package, but no such package exists on npm or PyPI. Replace the snippet with the actual plain-fetch/curl integration pattern used elsewhere in the docs, and verify by searching npm/PyPI registries for 'doorprofit' and confirming no misleading import remains on the homepage.
  Event 36:

  ```text
  1 import DoorProfit from 'doorprofit' 
   2 const api = DoorProfit (
   3 DOORPROFIT_API_KEY 
   4 )
  ```
  Event 12:

  ```text
  No matches found for "doorprofit"
  ```
  Event 90:

  ```text
  === npm registry direct ===
  404
  ```
- **Reconcile the offender search radius cap between REST docs and MCP tool description**: The REST docs state the offenders radius parameter caps at 5 miles, while the hosted MCP server's tool description for search_offenders states the cap is 3 miles. Align both to the same limit (in the docs page's Offenders Endpoint parameters table and in the MCP server's tools/list description) and verify by re-fetching tools/list and the docs page to confirm matching values.
  Event 53:

  ```text
  radius 
   number 
   Search radius in miles. Default: 1 , Max: 5 
  ```
  Event 164:

  ```text
  search_offenders(address, lat, lng, radius, first_name, last_name, dob, city, state, zipcode, page, limit)
        Search US registered offenders in one of two modes. Location mode: pass address or lat+lng, plus an optional radius in miles (default 1, capped at 3);
  ```

### Task given to each agent
Help me build a simple example using DoorProfit API. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: F · 23/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Failed** — llms.txt provides an actionable documentation index

  ```text
  /llms.txt returns HTTP 404, so no documentation index exists.
  ```

- **Skipped** — llms.txt provides navigation guidance

  ```text
  No llms.txt body exists (404), so navigation guidance cannot be assessed.
  ```

- **Skipped** — llms.txt mentions offered API, MCP, and skills

  ```text
  No llms.txt body exists (404), so API/MCP/skills mentions cannot be assessed.
  ```

- **Skipped** — A compact guide representation exists

  ```text
  No site-published Markdown guide fetched; only HTML homepage and a 404 llms.txt.
  ```

- **Skipped** — A focused guide is directly retrievable

  ```text
  No standalone or negotiated Markdown guide was fetched for DoorProfit API.
  ```

- **Skipped** — Equivalent instructions fit a token budget

  ```text
  No compact guide representation was retrieved, so token budget cannot be judged.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats is unassessed.
  ```

- **Skipped** — The compact guide is independently actionable

  ```text
  No compact guide or agent-specific Markdown page was fetched; only homepage and a 404 llms.txt.
  ```

- **Skipped** — Install and next-step links resolve

  ```text
  No install or next-step pages were fetched, so their links could not be checked.
  ```


### Onboarding
- **Skipped** — Docs lead to a relevant quickstart

  ```text
  Only a 404 llms.txt was fetched; no docs or quickstart pages were retrieved.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation or setup page was fetched to extract commands from.
  ```

- **Skipped** — Code examples are available without interaction

  ```text
  No documentation or code example pages were fetched for the DoorProfit API.
  ```

- **Skipped** — Prerequisites and auth boundaries are explicit

  ```text
  No auth or prerequisites documentation was fetched to assess boundaries.
  ```


### Pricing
- **Failed** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 1 fell short. DeepSeek V4.1 Flash: Quoted plan prices from the billing page along with monthly and daily call limits, rate limits, embed-view quotas, overage rates and the $25 billing threshold. It also flagged a conflict in the docs about overage. (seq 113, seq 47, seq 134) Kimi K3: Gave no cost figure or assumptions; it said pricing couldn't be checked and stopped (seq 12) Qwen 3.8 Max: Quoted plan prices from the live /billing page with their quotas, daily caps, rate limits and overage rates. Also gave workload assumptions: 3 credits per report, so 3 reports a month on the free tier (seq 145, seq 176, doorprofit-example/README.md) This behavioural item does not affect the fast grade.
  ```

- **Pass** — Pricing is readable without interaction

  ```text
  Billing page lists Free, Starter $25/mo, Growth $50/mo, Pro $100/mo with limits in plain text.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  All plan prices and overage rates are stated publicly without login or gating.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Plans state API calls/month, embed views, rate limits, daily limits, and overage rates.
  ```


### Activation
- **Skipped** — An API reference or OpenAPI spec is reachable

  ```text
  No API reference or OpenAPI spec page was fetched for DoorProfit API.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server documentation was fetched for DoorProfit API.
  ```

- **Skipped** — A CLI install path is documented

  ```text
  No CLI install documentation was fetched for DoorProfit API.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  Only an unrelated pypi:requests lookup was fetched, not a DoorProfit package.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation was fetched for DoorProfit API.
  ```



[Full report data](https://www.ax-check.com/api.doorprofit.com/report.json)
