{
  "name": "Mission Meets Tech Agent Access API",
  "description": "Read-only access to your live MMT federal-contracting intelligence (opportunities, your pipeline, and pre-scored recommendations) and to MMT's market-entry reference (federal health buyers, vehicle ordering status, security authorization paths, state Medicaid programs, innovation pathways, compliance rules) so an AI agent can answer from your real book of business and from dated, sourced reference data. Requires an MMT Premium membership with the Agent Access add-on.",
  "version": "1",
  "base_url": "https://missionmeetstech.com/api/v1",
  "documentation": "https://missionmeetstech.com/api/v1",
  "openapi": "https://missionmeetstech.com/api/v1/openapi.json",
  "mcp": {
    "endpoint": "https://missionmeetstech.com/api/mcp",
    "transport": "streamable-http",
    "description": "Model Context Protocol server. POST JSON-RPC 2.0. Same bearer token; read-only tools: mmt_list_opportunities, mmt_get_opportunity, mmt_list_tracker, mmt_list_recommended; reference tools mmt_list_buyers, mmt_get_buyer, mmt_list_vehicles, mmt_get_vehicle, mmt_list_authorization_paths, mmt_list_innovation_pathways, mmt_list_compliance_rules, mmt_list_buying_routes, mmt_list_contracts, mmt_get_contract; state tools mmt_list_state_medicaid, mmt_get_state_medicaid, mmt_states_coverage, mmt_states_agencies, mmt_states_search_solicitations, mmt_states_module_landscape, mmt_states_coop_routes, mmt_states_addendum_status, mmt_states_funding_conditions; org charts mmt_list_org_charts, mmt_get_org_chart; mmt_list_calendar; and the member engines mmt_signals_list, mmt_score_pursuit, mmt_compliance_check, mmt_ask.",
    "protected_resource_metadata": "https://missionmeetstech.com/.well-known/oauth-protected-resource"
  },
  "scopes": {
    "opportunities:read": "Global federal opportunities MMT is tracking.",
    "tracker:read": "The token owner's own pipeline.",
    "intel:read": "The owner's pre-scored recommendations.",
    "reference:read": "The market-entry reference layer (agencies, vehicles, authorization-paths, innovation-pathways, compliance-rules, buying-routes) and the Contract Tracker (contracts). Added 2026-09-20; a token minted before that date needs re-minting to carry it.",
    "states:read": "State Medicaid agencies (states) and state MES procurement coverage (states/coverage, agencies, solicitations, modules, coop-routes, addenda, funding-conditions). Added 2026-09-20; re-mint an older token to carry it.",
    "orgcharts:read": "Agency org charts (org-charts, org-charts/{agency}) with key people and the DHA internal-vetting flag. Added 2026-09-20; re-mint an older token to carry it.",
    "signals:read": "The Signal Chain engine through MCP (mmt_signals_list). Spends upstream API quota, so it is opt-in when a token is minted."
  },
  "reference_data": {
    "note": "Hand-maintained JSON, dated per record. Every response carries retrieved_at and dataset { as_of, last_verified, source }; a null field with a pending note means not yet covered, never zero.",
    "spec": "https://missionmeetstech.com/premium/market-entry/"
  },
  "record_contract": {
    "note": "Every record carries source_url (the primary public source, null with a gap entry when the record is MMT's own output), retrieved_at (when MMT last read the source), confidence (verified, reported or stale), as_of (when the fact is effective) and gap[] ({ field, reason }) for what MMT does not have. A record older than its type's freshness window reads stale: report the staleness instead of answering from it.",
    "freshness_windows_days": {
      "opportunity": 1,
      "vehicle_status": 7,
      "contract_award": 7,
      "org_chart": 30,
      "state_procurement": 7,
      "statutory": 90,
      "curated_intel": 45,
      "reference_directory": 90,
      "calendar_event": 7,
      "engine_result": 3,
      "member_data": 1
    },
    "confidence": {
      "verified": "primary source read inside the window",
      "reported": "secondary account, medium-confidence read, or no read date",
      "stale": "retrieved_at older than the window"
    }
  },
  "coverage": {
    "note": "State procurement entities are covered per state: live, partial or not_covered (GET /states/coverage). A query naming a state whose coverage for the requested entity is not_covered returns 409 COVERAGE_GAP with that state's coverage row, never an empty list."
  },
  "attribution": {
    "request_id": "Every response carries X-Request-Id (and request_id in every error body). Send your own X-Request-Id as a UUID to have it echoed; any other value is replaced with a fresh UUID. It appears in the audit row.",
    "client_ref": "Optional X-MMT-Client-Ref header (1 to 64 chars: letters, digits, . _ : @ / + -). Opaque to MMT: it groups calls on the monthly usage statement and is never treated as identifying data."
  },
  "allowance": {
    "calls_per_month_per_agent": 5000,
    "overage_usd_per_call": 0.01,
    "overage_limit_calls_per_agent": 5000,
    "pricing_confirmed": true,
    "counted": "Only calls that return data (status below 400) count against the allowance or are billed.",
    "alerts": "The member is emailed at 80 percent of the allowance, on the first call past it, and if the agent pauses.",
    "note": "Calls past the allowance are priced at overage_usd_per_call for up to overage_limit_calls_per_agent more; then the agent pauses until the next month (429 OVERAGE_LIMIT_REACHED, Retry-After in seconds). The member can ask MMT for a different limit on one agent. An agent whose owner has no billable Agent Access add-on pauses at the allowance (429 ALLOWANCE_REACHED). The monthly statement (POST /api/tokens/usage from the member dashboard) carries the per-client_ref breakdown."
  },
  "authentication": {
    "type": "bearer",
    "header": "Authorization: Bearer <token>",
    "token_prefix": "mmt_pat_",
    "how_to_get_a_token": "https://missionmeetstech.com/premium/ai-integrations/",
    "notes": "Tokens are minted in the MMT member dashboard (Premium + Agent Access add-on required). The raw token is shown once at creation. Revoke any token from the same page and access stops immediately."
  },
  "response_shape": {
    "list": {
      "data": "array of rows",
      "total_count": "int",
      "has_more": "bool",
      "limit": "int",
      "offset": "int"
    },
    "item": {
      "data": "object"
    },
    "error": {
      "error": "MACHINE_CODE",
      "message": "human-readable",
      "docs": "https://missionmeetstech.com/api/v1"
    }
  },
  "rate_limits": {
    "per_key_per_minute": 60,
    "per_key_per_day": 5000,
    "headers": [
      "X-RateLimit-Limit",
      "X-RateLimit-Remaining",
      "Retry-After"
    ],
    "note": "429 responses include Retry-After. Honor it."
  },
  "error_codes": {
    "UNAUTHORIZED": "401 — missing or invalid bearer token. Get one at the setup URL.",
    "FORBIDDEN_SCOPE": "403 — token is valid but lacks the scope for this endpoint; required_scope names it.",
    "AGENT_ACCESS_REQUIRED": "403 — the owner's Agent Access add-on is no longer active.",
    "RATE_LIMITED": "429 — too many requests this minute. Wait and retry per Retry-After.",
    "DAILY_LIMIT": "429 — daily request cap reached.",
    "SESSION_LIMIT": "429 — per-session call cap reached. Start a new session.",
    "BUDGET_EXCEEDED": "429 — usage budget for the period reached.",
    "BAD_REQUEST": "400 — invalid query parameter (e.g. limit out of range).",
    "NOT_FOUND": "404 — no resource with that id.",
    "COVERAGE_GAP": "409 — the state named is not covered for the requested entity; the body carries the state's coverage object.",
    "MEMBER_ALLOWANCE": "429 (MCP engines) — the member's own monthly allowance for that engine is used up.",
    "OVERAGE_LIMIT_REACHED": "429 — the agent used its monthly allowance and its overage limit; it is paused until the next month (Retry-After). The body carries monthly_ceiling.",
    "ALLOWANCE_REACHED": "429 — the agent used its monthly allowance and its owner has no billable Agent Access add-on, so it is paused until the next month (Retry-After)."
  },
  "endpoints": [
    {
      "path": "/api/v1/opportunities",
      "method": "GET",
      "scope": "opportunities:read",
      "summary": "Global federal opportunities MMT is tracking (opportunity_radar).",
      "query": {
        "naics": "Filter by NAICS code.",
        "agency": "Filter by awarding agency.",
        "set_aside": "Filter by set-aside type (e.g. SDVOSB, 8(a), WOSB).",
        "posted_from": "ISO date — only opportunities posted on/after this date.",
        "deadline": "ISO date — only opportunities with a response deadline on/before this date.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/opportunities/{id}",
      "method": "GET",
      "scope": "opportunities:read",
      "summary": "A single opportunity by id.",
      "query": {}
    },
    {
      "path": "/api/v1/tracker",
      "method": "GET",
      "scope": "tracker:read",
      "summary": "The token owner's own pipeline (their tracked opportunities). Owner-scoped.",
      "query": {
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/recommended",
      "method": "GET",
      "scope": "intel:read",
      "summary": "Pre-scored recommendations for the owner (nightly batch; never a live model call). May be empty until the batch runs.",
      "query": {
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/agencies",
      "method": "GET",
      "scope": "reference:read",
      "summary": "Federal health buyers and the state Medicaid segment: entry characteristics, applicable authorization paths, buying routes, innovation pathways, vehicle ids, profile and org chart links. Each row dated and sourced.",
      "query": {
        "segment": "federal or state.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/agencies/{code}",
      "method": "GET",
      "scope": "reference:read",
      "summary": "One buyer with its paths, routes, pathways and vehicles resolved in full (vehicles carry ordering_status and as_of).",
      "query": {}
    },
    {
      "path": "/api/v1/vehicles",
      "method": "GET",
      "scope": "reference:read",
      "summary": "MMT's IDIQ and GWAC dataset with derived ordering_status (open, closing_soon, pre_award, closed, cancelled, unknown), ordering_end, the dataset's own status text and source_url. as_of is the dataset generation date.",
      "query": {
        "agency": "Agency or sub-agency, partial match.",
        "status": "Derived ordering_status.",
        "q": "Substring on name, id, contract number, note.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/vehicles/{vehicle_id}",
      "method": "GET",
      "scope": "reference:read",
      "summary": "One vehicle by vehicle_id (e.g. cms-sparc).",
      "query": {}
    },
    {
      "path": "/api/v1/authorization-paths",
      "method": "GET",
      "scope": "reference:read",
      "summary": "Security authorization paths per buyer: FedRAMP Rev5 and 20x, CMS Rapid Cloud Review, DoD IL2/IL4/IL5 and CMMC, VA ATO, ONC certification, GovRAMP, TX-RAMP, MARS-E, HIPAA.",
      "query": {
        "buyer": "Buyer code (applies_to filter).",
        "type": "Path type.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/authorization-paths/{id}",
      "method": "GET",
      "scope": "reference:read",
      "summary": "One authorization path by id (e.g. cms_rcr).",
      "query": {}
    },
    {
      "path": "/api/v1/states",
      "method": "GET",
      "scope": "states:read",
      "summary": "The 56 state and territory Medicaid agencies plus a context block: federal funding rules, certification, cooperative purchasing and dated demand signals.",
      "query": {
        "expansion": "adopted or not_adopted.",
        "govramp": "true for states with a GovRAMP participating entity.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/{code}",
      "method": "GET",
      "scope": "states:read",
      "summary": "One jurisdiction by two-letter code or state name, with the context block.",
      "query": {}
    },
    {
      "path": "/api/v1/innovation-pathways",
      "method": "GET",
      "scope": "reference:read",
      "summary": "Innovation and pilot doors (SBIR/STTR, ARPA-H, BARDA, DHA CSO, MTEC, VA Pathfinder, CMS Innovation Center models, unsolicited proposals) with what each leads to and does not.",
      "query": {
        "buyer": "Buyer code (applies_to filter).",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/compliance-rules",
      "method": "GET",
      "scope": "reference:read",
      "summary": "Compliance reference rules with trigger phrases and thresholds: FAR 3.4, FAR 9.5, Lobbying Disclosure Act, Procurement Integrity Act, Byrd Amendment. Not legal advice.",
      "query": {
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/buying-routes",
      "method": "GET",
      "scope": "reference:read",
      "summary": "Buying route archetypes with authority, thresholds, prerequisites, applicable buyers and vehicle ids, plus the closed and cancelled routes not to plan on.",
      "query": {
        "buyer": "Buyer code (applies_to filter).",
        "group": "direct_award, existing_vehicle, partner, innovation, state, disqualified.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/org-charts",
      "method": "GET",
      "scope": "orgcharts:read",
      "summary": "MMT Premium org chart pages with as-of dates and key-people counts.",
      "query": {
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/coverage",
      "method": "GET",
      "scope": "states:read",
      "summary": "Per-state, per-entity coverage (live, partial, not_covered) with last refresh and reasons. Read this before a state question.",
      "query": {
        "state": "Two-letter code or name (optional).",
        "status": "live, partial or not_covered.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/agencies",
      "method": "GET",
      "scope": "states:read",
      "summary": "State Medicaid agency procurement detail: CIO office, procurement portal, Medicaid procurement page, spending rank (full detail for the ten highest-spending states).",
      "query": {
        "state": "Two-letter code or name (optional).",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/solicitations",
      "method": "GET",
      "scope": "states:read",
      "summary": "State MES solicitations on file (no live portal feed yet). 409 COVERAGE_GAP for a state with none.",
      "query": {
        "state": "Two-letter code or name.",
        "module": "Module substring.",
        "status": "open, closed, planned or unknown.",
        "posted_from": "ISO date.",
        "due_before": "ISO date.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/modules",
      "method": "GET",
      "scope": "states:read",
      "summary": "MES module landscape: incumbents, contract ids and ends, certification status where read. 409 COVERAGE_GAP for an unresearched state.",
      "query": {
        "state": "Two-letter code or name.",
        "module": "Module substring.",
        "incumbent": "Vendor substring.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/coop-routes",
      "method": "GET",
      "scope": "states:read",
      "summary": "Cooperative vehicles (NASPO ValuePoint MES portfolios, Cloud and Software Solutions 2026) with suppliers, terms, module scope and participating states.",
      "query": {
        "module": "Module substring.",
        "state": "Two-letter code or name (adds state_participates).",
        "supplier": "Supplier substring.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/addenda",
      "method": "GET",
      "scope": "states:read",
      "summary": "Participating addendum status by state, supplier and vehicle. 409 COVERAGE_GAP for a state with none on file.",
      "query": {
        "state": "Two-letter code or name.",
        "supplier": "Supplier substring.",
        "vehicle": "Coop vehicle id.",
        "status": "executed, in_process, intent, none or unknown.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/states/funding-conditions",
      "method": "GET",
      "scope": "states:read",
      "summary": "CMS conditions for enhanced funding (42 CFR 433.112(b) CEF1 to CEF22), 433.116 and 433.119, 45 CFR 95.617 and the SMC process, with vendor obligations and MACPAC spending context.",
      "query": {
        "module": "Module substring.",
        "procurement_type": "Procurement type.",
        "cef": "e.g. CEF10.",
        "q": "Text search.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/org-charts/{agency}",
      "method": "GET",
      "scope": "orgcharts:read",
      "summary": "One agency org chart: page, as_of, key people, HHS contracting roster, internally_maintained flag.",
      "query": {}
    },
    {
      "path": "/api/v1/contracts",
      "method": "GET",
      "scope": "reference:read",
      "summary": "MMT's Contract Tracker rows with the record contract (stale past 45 days means re-verify).",
      "query": {
        "agency": "Agency substring.",
        "status": "Row status.",
        "classification": "Classification substring.",
        "q": "Text search.",
        "naics": "NAICS code.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    },
    {
      "path": "/api/v1/contracts/{slug}",
      "method": "GET",
      "scope": "reference:read",
      "summary": "One Contract Tracker row.",
      "query": {}
    },
    {
      "path": "/api/v1/calendar",
      "method": "GET",
      "scope": "opportunities:read",
      "summary": "Pursuit Calendar events in a window (default today plus 90 days); falls back to the curated seed and says so.",
      "query": {
        "from": "ISO date.",
        "to": "ISO date.",
        "agency": "Agency substring.",
        "category": "Event category.",
        "limit": "Page size, 1–100 (default 25).",
        "offset": "Row offset for pagination (default 0)."
      }
    }
  ]
}