{
  "name": "NextBid",
  "summary": "Federal, state and local government opportunities from multiple public procurement sites, organized for small businesses and their AI. One clean record per bid, with the posted documents converted to text, served over REST and MCP.",
  "audience": "Small businesses and set-aside firms, and the AI assistants they run.",
  "status": {
    "data_api": "available",
    "public_access": "open"
  },
  "coverage": {
    "statement": "Federal, state and local opportunities across the U.S., plus U.S. federal work abroad. State and local coverage is expanding, starting in California.",
    "provenance": "Every record links to its original listing and carries the time its source was last checked. The issuing agency's official notice always controls.",
    "set_aside_caveat": "A set-aside program match is set-aside language on the solicitation, not an eligibility determination. Results and counts distinguish designated (the source marked the set-aside) from mentioned (program language in the title only)."
  },
  "connect": {
    "mcp": {
      "url": "https://api.nextbid.us/mcp",
      "transport": "streamable-http",
      "auth": {
        "header": "X-API-Key"
      },
      "config": {
        "mcpServers": {
          "nextbid": {
            "url": "https://api.nextbid.us/mcp",
            "headers": {
              "X-API-Key": "YOUR_KEY"
            }
          }
        }
      }
    },
    "rest": {
      "base": "https://api.nextbid.us/v1",
      "auth": [
        "X-API-Key: <key>",
        "Authorization: Bearer <key>"
      ],
      "openapi": "https://nextbid.us/openapi.json",
      "docs": "https://nextbid.us/docs"
    },
    "trial_key": {
      "how": "Subscribe (see signup): verify the email, choose a plan, add a card at checkout, create the password, then create a key at https://data.nextbid.us/keys (no anonymous keys)",
      "allowance": "14 days, 100 calls and up to 250 unique opportunities delivered, whichever comes first; one active key",
      "card_required": true
    }
  },
  "signup": {
    "title": "Subscribe / sign up (people and AI agents)",
    "page": "https://nextbid.us/ai#signup",
    "agent_policy": "Authorized AI agents may assist with or complete NextBid signup and account setup. Payment and acceptance of terms must be authorized by the account owner or organization.",
    "verification_required": true,
    "verification": "email verification is required before checkout; the owner opens the link sent from admin@nextbid.us; the link works for 24 hours and a new request replaces it",
    "payment_required": true,
    "payment": "a payment method is required at Stripe Checkout; nothing is charged today and nothing is charged if the subscription is cancelled before the trial ends",
    "terms_acceptance": "by the account owner or organization",
    "request": {
      "method": "POST",
      "url": "https://data.nextbid.us/start/request",
      "content_type": "application/json",
      "body": {
        "name": "required, 2-120 characters",
        "email": "required, the owner's work email (the verification link goes here)",
        "business": "required, 2-160 characters, the company name",
        "plan": "optional: monthly | annual",
        "source": "optional: human_web | ai_assisted | agent | api (analytics only)"
      },
      "response": "200 {\"ok\":true} for any valid request (existing accounts are not revealed); 400 {\"ok\":false,\"error\":\"INVALID\",\"fields\":[...]} for invalid input; 429 or 503 means try again later"
    },
    "steps": [
      {
        "step": 1,
        "id": "signup",
        "who": "person or authorized AI agent",
        "do": "send name, email, business (and optionally plan and source) to the request URL, or use a Start now button on nextbid.us",
        "url": "https://data.nextbid.us/start/request"
      },
      {
        "step": 2,
        "id": "verify-email-sent",
        "who": "account owner",
        "do": "open the verification link in the email from admin@nextbid.us",
        "url": "https://nextbid.us/start?t=<signed token>&plan=<monthly|annual>"
      },
      {
        "step": 3,
        "id": "plan-selection",
        "who": "person or authorized AI agent",
        "do": "choose monthly or annual",
        "url": "https://nextbid.us/start?t=<signed token>&plan=<monthly|annual>"
      },
      {
        "step": 4,
        "id": "checkout",
        "who": "account owner or organization (payment must be authorized by them)",
        "do": "continue to Stripe Checkout and add a payment method; 14-day trial, nothing charged today"
      },
      {
        "step": 5,
        "id": "create-account",
        "who": "person or authorized AI agent",
        "do": "on the completion page create the password; this signs in to the dashboard",
        "url": "https://nextbid.us/start/complete?session_id=<checkout session>"
      },
      {
        "step": 6,
        "id": "keys",
        "who": "person or authorized AI agent",
        "do": "create an API key",
        "url": "https://data.nextbid.us/keys"
      },
      {
        "step": 7,
        "id": "connect",
        "who": "the agent",
        "do": "connect over REST or MCP with header X-API-Key",
        "url": "https://api.nextbid.us/mcp"
      }
    ],
    "page_markers": "the signup pages mark each step with a data-nextbid-step attribute using the step ids above (plus activate-now on the billing page); plan options carry data-plan=monthly|annual",
    "urls": {
      "start": "https://nextbid.us/pricing#trial",
      "request": "https://data.nextbid.us/start/request",
      "verify": "https://nextbid.us/start?t=<signed token>&plan=<monthly|annual>",
      "complete": "https://nextbid.us/start/complete?session_id=<checkout session>",
      "dashboard": "https://data.nextbid.us/dashboard",
      "keys": "https://data.nextbid.us/keys",
      "billing": "https://data.nextbid.us/billing",
      "rest": "https://api.nextbid.us/v1",
      "mcp": "https://api.nextbid.us/mcp"
    },
    "plans": [
      {
        "id": "monthly",
        "price_usd": 49.99,
        "interval": "month",
        "allowance": "6,000 calls each month after the trial"
      },
      {
        "id": "annual",
        "price_usd": 499,
        "interval": "year",
        "allowance": "6,000 calls each month after the trial"
      }
    ],
    "trial": {
      "days": 14,
      "max_calls": 100,
      "max_unique_opportunities": 250,
      "ends": "after 14 days or at either limit, whichever comes first",
      "card_required": true,
      "charged_if_cancelled_before_end": false,
      "activate_now": "Activate now on https://data.nextbid.us/billing ends the trial early and starts the paid plan (the plan price is charged then)"
    },
    "signup_source": {
      "field": "source",
      "also_accepted": "signup_source",
      "values": [
        "human_web",
        "ai_assisted",
        "agent",
        "api",
        "unknown"
      ],
      "meaning": {
        "human_web": "a person used the nextbid.us form (the website sends this by default)",
        "ai_assisted": "an AI assistant helped a person sign up",
        "agent": "an AI agent completed the request for a company",
        "api": "software called the request URL directly",
        "unknown": "not sent, or a value outside this list"
      },
      "purpose": "analytics only; no source is restricted or treated differently"
    }
  },
  "tools": [
    {
      "name": "search_opportunities",
      "does": "search by trade, keyword, agency, source, set-aside program and deadline window"
    },
    {
      "name": "get_opportunity",
      "does": "the full record: contacts, amendments, documents, source link"
    },
    {
      "name": "list_documents",
      "does": "filed documents and the portal's attachment list"
    },
    {
      "name": "list_files",
      "does": "the text artifacts stored for one bid"
    },
    {
      "name": "read_file",
      "does": "one artifact as text, Document 0 first"
    },
    {
      "name": "list_tradelines",
      "does": "21 trades with specialties, search aliases and open counts"
    },
    {
      "name": "list_set_asides",
      "does": "set-aside programs with official references, aliases and open counts"
    },
    {
      "name": "corpus_stats",
      "does": "what is open, by source, right now",
      "description": "The corpus numbers with their definitions: total_solicitations (distinct), open, due_30d (known deadline only), open_set_asides (distinct open solicitations designated under any supported program, each counted once; open competition excluded), open_set_aside_mentions (title language only), set_asides_by_program, unmapped_set_aside_values, open by source, documents, as_of, replica_as_of. Same numbers as GET /v1/public/corpus and GET /v1/stats."
    },
    {
      "name": "my_usage",
      "does": "plan, calls used, remaining allowance"
    },
    {
      "name": "my_account",
      "does": "The account's numbers: plan, allowance used and remaining, reset date, requests and errors, keys, what counts as a call, business profile, recorded pursuits. Free."
    },
    {
      "name": "mark_pursuit",
      "does": "Record watching, pursuing, submitted, won, lost or dropped for an opportunity, only when the customer says so. Reading a bid is never a pursuit. Free."
    }
  ],
  "filters": {
    "tradelines": {
      "accepts": "trade ids or aliases",
      "catalog": "https://api.nextbid.us/v1/tradelines",
      "page": "https://nextbid.us/trades",
      "example": "re-roof -> roofing"
    },
    "set_asides": {
      "accepts": "program ids or aliases",
      "catalog": "https://api.nextbid.us/v1/set-asides",
      "page": "https://nextbid.us/small-business",
      "ids": [
        "small_business",
        "8a",
        "hubzone",
        "sdvosb",
        "wosb",
        "isbee",
        "california_sb_dvbe",
        "open"
      ]
    },
    "agencies": "agency name fragments or source portal names",
    "due_within_days": "integer days",
    "deadline_from": "ISO 8601",
    "deadline_to": "ISO 8601",
    "q": "keywords over title and description",
    "sort": [
      "deadline",
      "relevance"
    ]
  },
  "pricing": {
    "page": "https://nextbid.us/pricing",
    "unit": "one call = one metered request or one MCP tool call; researching one opportunity takes about ten",
    "plans": [
      {
        "id": "trial",
        "price_usd_month": 0,
        "allowance": "14 days, 100 calls, up to 250 unique opportunities, whichever comes first; one active key; card required to start, not charged if cancelled before the trial ends",
        "beyond": "stops"
      },
      {
        "id": "monthly",
        "price_usd": 49.99,
        "billing": "monthly",
        "allowance": "6,000 calls a month",
        "beyond": "the API answers 402 until the next monthly allowance; extra usage is planned and stays off unless the customer sets a spending cap"
      },
      {
        "id": "annual",
        "price_usd": 499,
        "billing": "yearly",
        "allowance": "6,000 calls a month",
        "beyond": "the API answers 402 until the next monthly allowance; extra usage is planned and stays off unless the customer sets a spending cap"
      }
    ],
    "controls": "the account is the customer; all its agents share one allowance; spending caps and extra usage are planned and stay off until set; the meter counts per period (trial: 14 days, 100 calls and up to 250 unique opportunities delivered; paid plans: a calendar month); usage headers on every response",
    "limits": {
      "per_minute_per_key": 600,
      "in_flight_per_key": 4,
      "file_max_bytes": 5242880,
      "over_limit": "429 with Retry-After, never a charge"
    }
  },
  "licence": {
    "terms": "https://nextbid.us/terms",
    "privacy": "https://nextbid.us/privacy",
    "redistribution": "not permitted; buyer contacts may not be republished as a list"
  },
  "contact": "admin@nextbid.us",
  "updated": "2026-10-07",
  "corpus": {
    "numbers": "GET /v1/public/corpus (no key) returns total_solicitations, open, due_30d, open_set_asides and the rest with an as_of timestamp and a definitions block; the website, REST and MCP show the same numbers from the same definitions; set-asides count each open solicitation once across every supported program; title mentions are counted separately; open competition is not a set-aside; open means the source lists it open with the deadline ahead or unstated, or the deadline is ahead with no status; passed deadlines (listed_open_past_deadline) and unknown status (status_unknown) are reported separately and never counted as open."
  },
  "account": {
    "login": "everyone gets a NextBid login (one identity across NextBid products; product access is a membership on that identity); the My Account page shows plan, allowance, usage, keys and an upgrade button",
    "what_counts_as_a_call": {
      "billable": [
        "search",
        "get_opportunity",
        "list_documents",
        "list_files",
        "read_file"
      ],
      "free": [
        "stats",
        "tradelines",
        "set_asides",
        "usage",
        "account",
        "activity",
        "pursuits",
        "profile",
        "the MCP handshake"
      ]
    },
    "activity_recorded": "for every request: operation, parameters, result count, opportunity id, units, status, latency, key fingerprint, client name, hashed IP; that is what NextBid returned, never what your AI said or decided; document bodies are never logged",
    "pursuits": "recorded only when you or your agent call mark_pursuit / POST /v1/opportunities/{nb_id}/pursuit; reading a bid is never a pursuit",
    "allowance": "all keys on one account share one allowance; at the allowance the API answers 402 and free calls keep working; extra usage is planned and stays off unless a spending cap is set"
  },
  "agent_permission": "AI agents are welcome. Your own assistants and agents may use NextBid through the API and MCP under your account. No separate agent seats.",
  "independence": "NextBid is an independent company, not a government agency. The issuing agency's official notice always controls.",
  "trust": {
    "how-it-works": "https://nextbid.us/trust",
    "data-sources": "https://nextbid.us/trust/data-sources",
    "ai": "https://nextbid.us/trust/ai",
    "api-terms": "https://nextbid.us/legal/api-terms",
    "acceptable-use": "https://nextbid.us/legal/acceptable-use",
    "status": "https://nextbid.us/status",
    "llms": "https://nextbid.us/llms.txt"
  }
}
