API Reference · Applications

List Applications

List my verifications

GET/v1/applications
Free (guest token or account)MCP:list_applications, get_account

Guest drafts for a guest credential, or the current organization + environment for accounts.

cURL example

cURL request
curl "https://api.verifiedinbox.ai/v1/applications" \
  -H "VI-Guest-Token: vi_guest_YOUR_TOKEN"

Parameters

ParameterTypeDescription
VI-Environmentheader
string`live` (default) or `test`. Used for anonymous callers and OAuth access tokens; API keys and web sessions carry their own environment.

Response

200 OKApplications.
application/json
FieldTypeDescription
datarequired
Application[]—
Nested fields (22)
  • background (BackgroundWork[]): Active long-running work plus anything finished in the last 10 minutes.
  • brand_name (string): Display-name guess (website title or domain label).
  • contact_email (string)
  • created_at (string (date-time))
  • current_step (string): Where to work now: the first step needing attention, else the first step the user hasn't completed.
  • domain (string): Normalized ASCII (punycode) domain.
  • domain_display (string): Unicode form of the domain.
  • domain_status (string): Whether the domain is registered and can have its own logo (`unknown` while checking).
  • email_usage (string): How email is used on the domain, as told by the customer (null until answered).
  • environment (string)
  • id (string (uuid))
  • next_actions (NextAction[]): What to do next (for people and agents).
  • organizational_domain (string): Registrable domain (e.g. `acme.com` for `news.acme.com`).
  • outcomes (Outcomes): Separate outcomes — never collapsed into one "verified" flag.
  • owner (ApplicationOwner)
  • product (string): Chosen product, else the recommended one.
  • product_selected (string): Product explicitly chosen by the customer.
  • recommended_product (string): From eligibility; null until assessed.
  • steps (Step[]): The 11 wizard steps, in order.
  • updated_at (string (date-time))
  • version (integer): Optimistic-concurrency version; send as `If-Match`.
  • web_url (string): Deep link to the current step in the web app.
next_cursorrequired
string | null

Cursor for the next page, or null.

Example 200 response (ApplicationList)
{
  "data": [
    {
      "background": [],
      "brand_name": "string",
      "contact_email": "string",
      "created_at": "2026-10-31T12:00:00Z",
      "current_step": "domain",
      "domain": "acme.com",
      "domain_display": "string",
      "domain_status": "unknown",
      "email_usage": "none",
      "environment": "live",
      "id": "0192a5e0-1234-7000-8000-000000000001",
      "next_actions": [],
      "organizational_domain": "string",
      "outcomes": {
        "bimi": "not_published",
        "business": "not_started",
        "certificate": "not_ordered",
        "dmarc_rollout": "missing",
        "eligibility": "unknown",
        "inbox_display": "not_observed",
        "logo": "missing",
        "ownership": "pending",
        "payment": "unpaid",
        "trademark": "not_started"
      },
      "owner": {
        "type": "guest"
      },
      "product": "vmc",
      "product_selected": "vmc",
      "recommended_product": "vmc",
      "steps": [],
      "updated_at": "2026-10-31T12:00:00Z",
      "version": 1,
      "web_url": "https://verifiedinbox.ai/verify/0192a5e0-1234-7000-8000-000000000001/domain"
    }
  ],
  "next_cursor": "string"
}

Other responses & possible errors

Expand a status code below to see the error code, description, and example error payload.

401 (unauthenticated)`unauthenticated` — sign in / send a valid credential. `next_action.kind = sign_in`.

`unauthenticated` — sign in / send a valid credential. `next_action.kind = sign_in`.

Example 401 error response
{
  "error": {
    "code": "unauthenticated",
    "message": "Sign in or provide an API key to continue.",
    "next_action": {
      "kind": "sign_in",
      "title": "Sign in or create an account",
      "url": "/login"
    }
  }
}
429 (rate_limited)`rate_limited` — retry after `Retry-After` seconds (`details.retry_after_seconds`). `limit_reached` — a quota is used up; `details.limit` names it and `next_action` offers support.

`rate_limited` — retry after `Retry-After` seconds (`details.retry_after_seconds`). `limit_reached` — a quota is used up; `details.limit` names it and `next_action` offers support.

Example 429 error response
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Please wait a moment and try again."
  }
}
Was it helpful?