/api/v1API index
Lists every endpoint, the authentication scheme, quotas by plan and links to these docs and the OpenAPI document. No key needed.
- No key needed
- Not metered
- JSON
curl -sS "https://teamingindex.com/api/v1"DEVELOPERS
Put verified teaming intelligence inside your own tools. Search partners by CMMC status, blind SPRS bracket, clearance and contract vehicle, pull capability statements, track recompetes and live SAM.gov solicitations, and let AI agents do the same through the Model Context Protocol. One organization API key works for all of it.
OVERVIEW
QUICKSTART
An organization admin on Verified Pro or Enterprise Capture creates keys in Dashboard → API keys. The full key is shown once: keep it in your secret manager, never in source code or a URL.
Open API keysexport TEAMINGINDEX_API_KEY="ti_live_…" # paste the key shown once in Dashboard → API keysThe account endpoint confirms the key works and shows your plan, this month's usage and what the plan unlocks.
curl -sS "https://teamingindex.com/api/v1/me" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"Same filters and meaning as the directory: CMMC level, blind SPRS bracket, clearance, vehicle, socio-economic status and NAICS. Each result links to its profile, Markdown capability statement and API record.
curl -sS "https://teamingindex.com/api/v1/contractors?cmmc=L2C3PAO&sprs=85&naics=541512&vehicle=oasis-plus.prime" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"AUTHENTICATION
Authorization: Bearer ti_live_…. The x-api-key header also works; when both are sent, Authorization wins.api_key, key or token parameters are rejected with 400 invalid_request; if that happens, revoke the key, because URLs end up in logs and browser history.401 revoked_api_key.ti_test_ keys work only against development environments; production accepts ti_live_ keys.GET /api/v1/contractors?naics=541512&cmmc=L2 HTTP/1.1
Host: teamingindex.com
Authorization: Bearer ti_live_YOUR_API_KEY
Accept: application/json
# Alternative header (Authorization wins when both are sent):
x-api-key: ti_live_YOUR_API_KEYKeyed endpoints send no Access-Control-Allow-Origin header, so browsers refuse cross-origin calls. That is deliberate: a key in browser code would let every visitor spend your quota and read NDA-gated data. Call the API from your backend, a serverless function or an MCP client. The index and the OpenAPI document allow any origin for GET so API tools can load the spec.
QUOTAS BY PLAN
| Plan | Price | REST + MCP queries / month | CSV export | Recompete Radar | Teaming Board details | AI analyses / month | Own Anthropic key |
|---|---|---|---|---|---|---|---|
| Registered Entity | $0 per monthFree forever | No API access | Not included | Preview (top 3 rows) | Titles only | 10 | Not available |
| Verified Pro | $149 per month | 500 | Not included | Your primary NAICS | Full posts | 200 | Not available |
| Enterprise Capture | $499 per month | 2,500 | Included | Every NAICS, agency and window | Full posts | 2,000 | Allowed (uncapped) |
| Prime Corporate / API | $999 per month | 15,000 | Included | Every NAICS, agency and window | Full posts | 5,000 | Allowed (uncapped) |
REST ENDPOINTS
Base URL https://teamingindex.com/api/v1. Every endpoint is a GET except AI analysis, and returns JSON unless noted. The full contract, including every field, is in the OpenAPI 3.1 document.
| Method | Endpoint | What it returns | Access |
|---|---|---|---|
| GET | /api/v1 | API index | No key |
| GET | /api/v1/openapi.json | OpenAPI 3.1 document | No key |
| GET | /api/v1/me | Your key, plan and usage | API key |
| GET | /api/v1/contractors | Search contractors | API key |
| GET | /api/v1/contractors.csv | Export search results as CSV | API key · Enterprise Capture |
| GET | /api/v1/contractors/{uei} | Contractor profile | API key |
| GET | /api/v1/contractors/{uei}/capability.md | Capability statement (Markdown) | API key |
| GET | /api/v1/vehicles | Contract vehicles | API key |
| GET | /api/v1/vehicles/{slug} | Vehicle holders | API key |
| GET | /api/v1/naics | NAICS codes in the index | API key |
| GET | /api/v1/naics/{code} | NAICS industry directory | API key |
| GET | /api/v1/recompetes | Recompete Radar | API key · Full radar: Enterprise Capture |
| GET | /api/v1/opportunities | Open teaming opportunities | API key |
| GET | /api/v1/rfps | Live SAM.gov opportunities | API key |
| GET | /api/v1/rfps/{noticeId} | One SAM.gov opportunity | API key |
| POST | /api/v1/ai/analyze | Run an AI analysis | API key · AI credits by plan |
/api/v1Lists every endpoint, the authentication scheme, quotas by plan and links to these docs and the OpenAPI document. No key needed.
curl -sS "https://teamingindex.com/api/v1"/api/v1/openapi.jsonMachine-readable description of the REST API, including the AI analysis endpoint. Import it into Postman, Insomnia or a code generator. No key needed.
curl -sS "https://teamingindex.com/api/v1/openapi.json"/api/v1/meConfirms a key works and returns its organization, plan, this month's usage and what the plan unlocks. A good first call.
curl -sS "https://teamingindex.com/api/v1/me" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/contractorsFaceted directory search with the same filters as /directory: CMMC level, blind SPRS bracket, facility clearance, ITAR/EAR, contract vehicles (with role), socio-economic status, NAICS, size-by-NAICS, ISO/AS certifications, verified-only and teaming availability. 20 results per page; excluded and inactive SAM registrations are hidden unless inactive=1.
curl -sS "https://teamingindex.com/api/v1/contractors?cmmc=L2C3PAO&sprs=85&naics=541512&vehicle=oasis-plus.prime" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"| Parameter | What it does | Values |
|---|---|---|
q | Free text: company name, UEI, CAGE, NAICS, vehicle or capability keywords (max 200 characters). | Text |
sector | Mission sectors (any), derived from SAM.gov NAICS and PSC codes. Details per sector at /sectors. | cyber-c5isr-it, aerospace-autonomous, space-satcom, ai-deeptech-rd, manufacturing-maritime, seta-engineering, logistics-sustainment, milcon-infrastructure, medical-readiness |
cmmc | Minimum CMMC 2.0 level. L2C3PAO = Level 2 assessed by a C3PAO (or DIBCAC). | L1, L2, L2C3PAO, L3 |
sprs | Minimum blind SPRS bracket (">= N"). Filters on brackets; raw scores are never exposed. | 0, 50, 70, 85, 95, 105, 110 |
fcl | Minimum facility clearance. Paid plans only (NISPOM 32 CFR 117.9: levels are never public); ignored for other keys, with a notice in meta. | confidential, secret, top_secret, ts_sci |
vehicle | Vehicle slugs (any), optionally with a role suffix: oasis-plus.prime. | Up to 10 slugs from GET /vehicles; roles: prime, subcontractor, joint_venture, mentor_protege |
socio | Socio-economic codes (any). | SB, SDB, 8A, HUBZONE, WOSB, EDWOSB, VOSB, SDVOSB, ANC, TRIBAL |
naics | NAICS codes or 2-5 digit prefixes (any). | Up to 20, e.g. 541512 or 5415 |
state | Two-letter USPS state of the physical address. | e.g. VA |
itar | Require an ITAR (DDTC) registration. | 1 or 0 (true/false also accepted) |
ear | Require EAR compliance. | 1 or 0 (true/false also accepted) |
scif | Require a SCIF. Paid plans only; ignored for other keys, with a notice in meta. | 1 or 0 (true/false also accepted) |
claimed | Only profiles claimed by the contractor. | 1 or 0 (true/false also accepted) |
verified | Every active compliance filter must be met by a credential verified by TeamingIndex (not a self-attestation). | 1 or 0 (true/false also accepted) |
smallfor | Only entities SAM.gov reports as small under this six-digit NAICS. | e.g. 541512 |
inactive | Also include expired/inactive SAM registrations and entities with an active exclusion (hidden by default; FAR 9.4). | 1 or 0 (true/false also accepted) |
iso | ISO/AS certifications (all required). | AS9100D; ISO 9001:2015; ISO/IEC 27001:2022; ISO 14001:2015; ISO/IEC 20000-1; AS9110; AS9120; CMMI-DEV ML3; CMMI-SVC ML3 |
accepting | Teaming availability: sub = accepting subcontracts, prime_jv = open to prime/JV roles. | sub, prime_jv |
sort | Result order. | relevance, obligated, name, recent |
page | 1-based page (20 results per page, max page 500). | 1-500 |
facets | Include facet counts (cmmc, sprs, fcl, vehicles, socio, states, naics, iso, plus federal: sbir, screened, gsamas, fedramp, primes) in meta.facets. | 1 or 0 (true/false also accepted) |
Lists accept commas or repeated parameters. Unknown parameters and malformed values return 400 invalid_request naming the parameter, so a typo never silently widens your results. The CSV export takes the same filters plus limit (up to 1,000 rows) instead of page.
/api/v1/contractors.csvThe same filters as /contractors, exported as one CSV file (up to 1,000 rows, one query) for CRM and spreadsheet import.
curl -sS "https://teamingindex.com/api/v1/contractors.csv?socio=SDVOSB&cmmc=L2&limit=500" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-o teamingindex-contractors.csv/api/v1/contractors/{uei}Full profile by SAM UEI: compliance posture with provenance, vehicles, past performance, capabilities and BD contact. NDA rules apply exactly as in the app: the exact SPRS score and CMMC certificate ID appear only for your own organization or a mutual NDA counterparty.
curl -sS "https://teamingindex.com/api/v1/contractors/TQ7M2KXR4LJ9" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/contractors/{uei}/capability.mdThe Markdown capability twin of a profile (YAML front matter + sections), ready for LLM context windows and RAG pipelines. Identical to the public /contractor/{uei}/capability.md page.
curl -sS "https://teamingindex.com/api/v1/contractors/TQ7M2KXR4LJ9/capability.md" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/vehiclesEvery GWAC, MAC, IDIQ, GSA Schedule and OTA consortium in the catalog with distinct holder, prime-holder and verified-holder counts.
curl -sS "https://teamingindex.com/api/v1/vehicles" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/vehicles/{slug}One vehicle with its holders: contract number, pools/SINs, role, verification, CMMC and blind SPRS bracket. Filter by role (prime, subcontractor, joint_venture, mentor_protege).
curl -sS "https://teamingindex.com/api/v1/vehicles/oasis-plus?role=prime&limit=50" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/naicsEvery six-digit NAICS code present in the index with contractor counts and titles.
curl -sS "https://teamingindex.com/api/v1/naics" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/naics/{code}Contractors listing a NAICS code (primary holders first), small-under-this-code counts and co-listed industries.
curl -sS "https://teamingindex.com/api/v1/naics/541512?pageSize=50" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/recompetesExpiring incumbent awards from USAspending (default window: next 18 months) with agency, NAICS, set-aside and text filters. Enterprise Capture sees everything; Verified Pro tracks its primary NAICS; preview plans see the top rows.
curl -sS "https://teamingindex.com/api/v1/recompetes?naics=541512&to=12&sort=value_desc" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/opportunitiesOpen RFP Teaming Board posts (response deadline today or later). Gap descriptions, gates and the posting company are included for plans with board details.
curl -sS "https://teamingindex.com/api/v1/opportunities?naics=5415&seeking=subcontractor" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/rfpsOpen SAM.gov contract opportunities (solicitations, sources sought, presolicitations) with NAICS, set-aside, notice type, state and deadline filters. Soonest deadline first.
curl -sS "https://teamingindex.com/api/v1/rfps?naics=541512,541519&setAside=SDVOSB&dueWithinDays=30" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/rfps/{noticeId}A single notice by SAM.gov notice ID, with links to create a teaming post, start a bid team or analyze it with AI.
curl -sS "https://teamingindex.com/api/v1/rfps/a1b2c3d4e5f60718293a4b5c6d7e8f90" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY"/api/v1/ai/analyzeRuns one Intelligence Hub task (teaming analysis, partner shortlist, RFP fit, compliance matrix, proposal section, recompete brief...) grounded in TeamingIndex data and returns the saved report. Uses one AI credit (bring-your-own-key Enterprise organizations are not capped).
curl -sS -X POST "https://teamingindex.com/api/v1/ai/analyze" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{"kind":"rfp_analysis","noticeId":"a1b2c3d4e5f60718293a4b5c6d7e8f90","instructions":"Focus on CMMC Level 2 flow-down and small-business teaming options."}'RESPONSE FORMAT
Success is { "data": …, "meta": … }; errors are { "error": { … } }. Keyed responses are never cached (Cache-Control: no-store) because they depend on your organization.
{
"data": [
{
"uei": "TQ7M2KXR4LJ9",
"cageCode": "8Z4K1",
"legalBusinessName": "Example Aerospace Systems, LLC",
"city": "Huntsville",
"state": "AL",
"primaryNaics": "541512",
"socioEconomic": [
"SB",
"SDVOSB"
],
"tier": "verified_pro",
"cmmcShortLabel": "L2 C3PAO",
"sprsHighestThreshold": 85,
"sprsOnFile": true,
"fcl": {
"visible": false
},
"vehicles": [
{
"slug": "oasis-plus",
"role": "prime"
}
],
"samStatus": "active",
"hasActiveExclusion": false,
"urls": {
"profile": "https://teamingindex.com/contractor/TQ7M2KXR4LJ9",
"capabilityMarkdown": "https://teamingindex.com/contractor/TQ7M2KXR4LJ9/capability.md",
"api": "https://teamingindex.com/api/v1/contractors/TQ7M2KXR4LJ9"
}
}
],
"meta": {
"total": 37,
"page": 1,
"pageSize": 20,
"pageCount": 2,
"links": {
"self": "https://teamingindex.com/api/v1/contractors?cmmc=L2C3PAO&sprs=85&naics=541512",
"next": "https://teamingindex.com/api/v1/contractors?cmmc=L2C3PAO&sprs=85&naics=541512&page=2",
"prev": null
},
"query": "cmmc=L2C3PAO&sprs=85&naics=541512",
"directoryUrl": "https://teamingindex.com/directory?cmmc=L2C3PAO&sprs=85&naics=541512",
"engine": "typesense",
"tookMs": 12
}
}meta.total, page, pageSize, pageCount and absolute meta.links (self, next, prev). Follow next until it is null.YYYY-MM-DD for calendar dates, UTC timestamps otherwise. Money is a decimal string such as "1250000.00", so no precision is lost.sprsHighestThreshold: 85 means a score of at least 85. An exact score appears only as compliance.sprs.exactScore, always next to revealReason (public, owner or nda).provenance: verified by TeamingIndex, self-attested by the contractor, or synced from SAM.gov or USAspending, with dates. Treat self-attested facts as unverified until you confirm them.X-Request-Id.ERRORS
{
"error": {
"code": "invalid_request",
"message": "Invalid parameter \"cmmc\": Use one of L1, L2, L2C3PAO, L3.",
"details": [
{
"param": "cmmc",
"message": "Use one of L1, L2, L2C3PAO, L3."
}
],
"docs": "https://teamingindex.com/developers#errors"
}
}The MCP server answers with JSON-RPC error objects instead; error.data.code carries the same code. The AI analysis endpoint uses a smaller envelope, { "error": { "code", "message" } }, described in its own section.
| Code | HTTP | Meaning and what to do |
|---|---|---|
invalid_request | 400 | A parameter is missing, malformed or unknown. `details` lists every problem with the parameter name. |
missing_api_key | 401 | No API key was sent. Send it as "Authorization: Bearer ti_live_…" (or the x-api-key header). |
invalid_api_key | 401 | The key is malformed or unknown, or a ti_test_ key was used in production. |
revoked_api_key | 401 | The key was revoked in the dashboard. Create a new key and update your integration. |
api_access_not_included | 403 | Your organization's plan does not include API or MCP access (Verified Pro and Enterprise Capture do). |
plan_upgrade_required | 403 | This endpoint or filter needs a higher plan, for example CSV export or the full Recompete Radar. |
not_found | 404 | Nothing exists at that UEI, slug, NAICS code or path. |
method_not_allowed | 405 | The HTTP method is not supported on this path (see the Allow header). |
payload_too_large | 413 | The request body is larger than the endpoint accepts. |
rate_limited | 429 | Burst limit reached (60 requests per minute per key). Wait for Retry-After seconds, then retry. |
quota_exceeded | 429 | The monthly query quota is used up. It resets at the start of the next UTC month (X-RateLimit-Reset). |
internal_error | 500 | Something failed on our side. Retry with exponential backoff and quote the X-Request-Id to support. |
feature_disabled | 503 | TeamingIndex operations temporarily switched this surface off. Retry later. |
maintenance | 503 | Scheduled maintenance. Retry after the Retry-After seconds. |
RATE-LIMIT HEADERS
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Your organization’s monthly query quota. |
X-RateLimit-Remaining | Queries left this month after this request. |
X-RateLimit-Reset | Unix time (seconds) when the quota resets: the start of the next UTC month. |
Retry-After | Seconds to wait before retrying (429 and 503 responses). |
X-Request-Id | Unique id of a REST or MCP request. Quote it when you contact support. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: no-store
X-RateLimit-Limit: 15000
X-RateLimit-Remaining: 13050
X-RateLimit-Reset: 1796083200
X-Request-Id: 7d1f4c2a-5b3e-4e8a-9c61-2f0b8d4e6a13
# Monthly quota used up:
HTTP/1.1 429 Too Many Requests
Retry-After: 86400
X-RateLimit-Limit: 15000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1796083200
{"error":{"code":"quota_exceeded","message":"Monthly API quota of … queries reached …","docs":"…/developers#errors"}}Retry-After seconds; no quota was used.X-RateLimit-Reset, or sooner after an upgrade.X-Request-Id if it persists.MCP SERVER
https://teamingindex.com/api/mcpAuthorization: Bearer ti_live_… (or x-api-key), the same key as REST.Claude Desktop reaches key-authenticated remote servers through the open-source mcp-remote bridge (Node.js 18 or later). Open Settings → Developer → Edit Config, add the entry below with your key, save, and restart Claude Desktop.
{
"mcpServers": {
"teamingindex": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://teamingindex.com/api/mcp",
"--header",
"Authorization:${TEAMINGINDEX_AUTH_HEADER}"
],
"env": {
"TEAMINGINDEX_AUTH_HEADER": "Bearer ti_live_YOUR_API_KEY"
}
}
}
}Add the server from a terminal, or commit a project .mcp.json that reads the key from the environment.
claude mcp add --transport http teamingindex https://teamingindex.com/api/mcp \
--header "Authorization: Bearer $TEAMINGINDEX_API_KEY"{
"mcpServers": {
"teamingindex": {
"type": "http",
"url": "https://teamingindex.com/api/mcp",
"headers": {
"Authorization": "Bearer ${TEAMINGINDEX_API_KEY}"
}
}
}
}Let Claude call TeamingIndex tools directly from a Messages API request. Send it with the anthropic-beta: mcp-client-2025-11-20 header; authorization_token is forwarded to TeamingIndex as the Bearer key, so keep this request on your server.
{
"model": "claude-opus-5-5",
"max_tokens": 16000,
"mcp_servers": [
{
"type": "url",
"url": "https://teamingindex.com/api/mcp",
"name": "teamingindex",
"authorization_token": "ti_live_YOUR_API_KEY"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "teamingindex"
}
],
"messages": [
{
"role": "user",
"content": "Find SDVOSB firms with CMMC Level 2 (C3PAO) and SPRS >= 85 under NAICS 541512."
}
]
}Any client that speaks Streamable HTTP and can send a request header works: point it at the endpoint and add the Authorization header. Field names vary by client.
TeamingIndex authenticates with organization API keys, not OAuth. If a client only offers an OAuth sign-in for remote servers, connect it through the mcp-remote bridge shown for Claude Desktop.
{
"mcpServers": {
"teamingindex": {
"url": "https://teamingindex.com/api/mcp",
"headers": {
"Authorization": "Bearer ti_live_YOUR_API_KEY"
}
}
}
}Each request is independent, so you can list tools or call one without a session. Only the last request counts against your quota.
curl -sS "https://teamingindex.com/api/mcp" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'curl -sS "https://teamingindex.com/api/mcp" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'curl -sS "https://teamingindex.com/api/mcp" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_contractors","arguments":{"cmmc":"L2C3PAO","sprs":85,"naics":["541512"],"socio":["SDVOSB"]}}}'search_contractorsFaceted directory search by CMMC level, blind SPRS bracket, vehicle, socio-economic status and NAICS (clearance on paid plans).
Try asking: Find SDVOSB firms with CMMC Level 2 (C3PAO) and SPRS ≥ 85 under NAICS 541512 that hold OASIS+.
Search the TeamingIndex directory of federal, defense and aerospace contractors to find teaming partners or subcontractors. Combine free text (capabilities, company name, UEI, CAGE) with compliance filters: minimum CMMC 2.0 level (L2C3PAO = Level 2 assessed by a C3PAO), minimum blind SPRS bracket, facility clearance (keys on paid plans only; other keys get a notice and unfiltered results, and every company shows "Facility clearance: visible to paid members"), ITAR/EAR, contract vehicles (slug, optionally with a role such as "oasis-plus.prime"), socio-economic status (SDVOSB, 8A, HUBZONE, WOSB...), NAICS codes or prefixes, small-business size under a NAICS, ISO/AS certifications, state, claimed or verified-only. Returns 20 companies per page with UEI, CMMC and SPRS bracket, clearance, vehicles, socio-economic status, SAM status and a profile URL. Entities with an active SAM exclusion or an expired/inactive registration are hidden unless includeInactive is true. SPRS is shown as a bracket ("SPRS ≥ 85"), never a raw score unless the contractor published it. Next steps: get_contractor_profile for one company, evaluate_team_fit to check several against a solicitation.
get_contractor_profileThe Markdown capability statement of one UEI plus key facts, each with its provenance.
Try asking: Pull the capability statement for UEI TQ7M2KXR4LJ9 and summarize its past performance with the Air Force.
Get one contractor's capability statement by SAM.gov UEI. Returns the Markdown capability twin (identifiers, location, NAICS and size, socio-economic status, SAM registration and exclusion screening, CMMC/SPRS/FCL/ITAR/ISO posture, contract vehicles, past performance, capabilities, teaming preferences, BD contact, corporate hierarchy) followed by key facts as JSON. Every compliance fact carries its provenance: verified by TeamingIndex, self-attested by the contractor, or from SAM.gov/USAspending, with dates. Self-attested facts are not verified; tell the user to confirm them before award. Exact SPRS scores appear only when the contractor published them.
list_contract_vehiclesGWACs, IDIQs, GSA MAS and OTA consortia in the catalog with holder and prime-seat counts.
Try asking: Which GWACs and OTA consortia does TeamingIndex track, and how many primes hold each?
List the contract vehicles in the catalog (GWACs such as OASIS+, Alliant 3, CIO-SP4 and SEWP VI, GSA MAS, IDIQs, Other Transaction programs such as DIU, SpEC and C5, and the AFWERX and SpaceWERX SBIR/STTR programs) with managing agency, ceiling, ordering-period end and how many companies hold each (total, prime seats, verified holdings). Use a vehicle slug with get_vehicle_holders, or as the vehicles filter of search_contractors.
get_vehicle_holdersWho holds a vehicle, in which role and pool, with CMMC, SPRS bracket and exclusion status.
Try asking: Who holds a prime seat on SEWP VI and is HUBZone certified?
List the companies that hold a contract vehicle (slug from list_contract_vehicles), optionally only one role (prime, subcontractor, joint_venture, mentor_protege): contract number, pools or SINs, whether TeamingIndex verified the holding, CMMC status, blind SPRS bracket, facility clearance (keys on paid plans only), socio-economic status and SAM/exclusion status. Primes first, then verified holdings; entities with an active exclusion are flagged and listed last.
get_naics_directoryCompanies registered under a six-digit NAICS code, who is small under it, and adjacent codes.
Try asking: Show companies under NAICS 336414 and which of them are small under that code.
List contractors that register a six-digit NAICS code (primary-NAICS holders first, then plan weight and obligations), with how many SAM.gov reports as small under that code (what a small-business set-aside requires) and the NAICS codes most often co-listed by these companies (adjacent industries for teaming). Entities with an active exclusion or inactive SAM registration are hidden unless includeInactive is true.
find_recompetesExpiring incumbent awards from USAspending, with the incumbent, value and recompete date.
Try asking: What Army IT services contracts under 541512 expire in the next 12 months, and who are the incumbents?
Find expiring federal awards from USAspending to position a team before the recompete: incumbent (UEI, socio-economic status, SAM/exclusion status), agency and office, NAICS, set-aside program, obligated and base-plus-options value, the recompete date (potential end of performance, else current end) and months remaining. Default window: today to 18 months ahead (fromMonths/toMonths change it). Depth depends on the plan of the API key: Enterprise Capture sees every NAICS, Verified Pro its primary NAICS only, other plans a short preview.
list_teaming_opportunitiesOpen RFP Teaming Board posts where primes and subs advertise teaming gaps.
Try asking: Are any primes looking for subcontractors with an FCL for Navy work right now?
List open posts on the TeamingIndex RFP Teaming Board, where primes and subcontractors advertise teaming gaps for specific solicitations: title, agency, NAICS, roles sought and response deadline. On plans with board details, also the gap description, solicitation number, required gates (CMMC level, minimum SPRS, facility clearance, ITAR, vehicles, socio-economic status, technical tags), workshare estimate and the posting company.
search_live_rfpsOpen SAM.gov solicitations and sources-sought notices by NAICS, set-aside and deadline.
Try asking: Find open SDVOSB set-aside solicitations for cybersecurity due in the next 30 days.
Search open federal contract opportunities from SAM.gov (solicitations, combined synopsis/solicitations, sources sought, presolicitations) by keyword, NAICS codes or prefixes, set-aside (SB, 8A, HUBZONE, SDVOSB, WOSB, EDWOSB, VOSB, or NONE for full and open), notice type, place-of-performance state, agency, days until the response deadline and posting recency. Soonest deadline first. Each result includes the SAM.gov link and TeamingIndex links to create a teaming post, start a bid team or run an AI analysis.
evaluate_team_fitGate-by-gate eligibility and a 0-100 fit score for up to 25 candidate partners.
Try asking: Check these three UEIs against a CMMC Level 2, Secret FCL, SDVOSB set-aside under 541330 and rank them.
Check up to 25 candidate partners (SAM UEIs) against a solicitation's requirements and rank them. Hard gates: SAM registration, exclusions, CMMC level and third-party assessment, minimum SPRS (evaluated on blind brackets, plus DFARS 252.204-7019 assessment currency), facility clearance, ITAR registration, contract vehicle, socio-economic status and size under a NAICS. Soft fit: NAICS, technical tags, past performance with the agency, verification, location and teaming availability. Each result has eligible, a 0-100 score, gate-by-gate results with who vouches for each fact, strengths and risks ('unknown' means confirm before teaming, not a failure). Planning aid: confirm facts with the partner before teaming.
check_limitations_on_subcontractingFAR 52.219-14 workshare math for a set-aside team, member by member.
Try asking: On an 8(a) services set-aside, can we give 45% to a large sub and 20% to another 8(a) firm?
Test a proposed workshare split against FAR 52.219-14 Limitations on Subcontracting (13 CFR 125.6) for a set-aside: at most 50% (services, supplies), 85% (general construction) or 75% (special trade construction) of the amount paid may go to subcontractors that are not similarly situated. Give the work type, set-aside program, solicitation NAICS and each member with role and workshare percent. Members with a UEI are looked up in SAM data (socio-economic status, size by NAICS) to decide whether they are similarly situated; members without one need name, socio and smallFor. Returns compliant (true/false, or null when it depends on unknown facts), shares by category, margin under the limit and per-member reasoning. Planning aid, not legal advice.
AI ANALYSIS API
POST /api/v1/ai/analyze runs one Intelligence Hub task with Claude, grounded in TeamingIndex data, and returns the saved report. The same reports appear in the Intelligence Hub.
POST https://teamingindex.com/api/v1/ai/analyzeContent-Type: application/json), at most 512 KiB.curl -sS -X POST "https://teamingindex.com/api/v1/ai/analyze" \
-H "Authorization: Bearer $TEAMINGINDEX_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{"kind":"rfp_analysis","noticeId":"a1b2c3d4e5f60718293a4b5c6d7e8f90","instructions":"Focus on CMMC Level 2 flow-down and small-business teaming options."}'{
"report": {
"id": "3c9e1b52-8f0a-4d7e-a6b1-5e2f9c0d4a77",
"kind": "rfp_analysis",
"title": "RFP fit analysis: Enterprise cyber operations support",
"status": "completed",
"model": "claude-opus-5-5",
"usedOwnKey": false,
"inputTokens": 18432,
"outputTokens": 2911,
"createdAt": "2026-11-08T15:04:05.000Z",
"completedAt": "2026-11-08T15:05:41.000Z",
"inputRefs": {
"noticeId": "a1b2c3d4e5f60718293a4b5c6d7e8f90"
},
"prompt": "Focus on CMMC Level 2 flow-down and small-business teaming options.",
"outputMarkdown": "## Bid / no-bid summary\n…",
"outputJson": null,
"errorMessage": null
}
}| Analysis | kind | Required | Optional |
|---|---|---|---|
| Teaming analysisScore candidate partners against a pursuit and recommend a compliant team structure. | teaming_analysis | None | opportunityId, noticeId, workspaceId, targetUeis, instructions |
| Best companies to team withRank the best-fit partners in the index for your pursuit, with gate checks and gaps each one fills. | partner_shortlist | None | opportunityId, noticeId, workspaceId, instructions |
| RFP fit analysisBid/no-bid view of a live solicitation: requirements, gates, gaps, competition and teaming needs. | rfp_analysis | None | noticeId, opportunityId, sourceText, instructions |
| Proposal section draftFirst draft of a proposal section grounded in your profile, past performance and the requirement. | proposal_section | section | noticeId, opportunityId, workspaceId, sourceText, instructions |
| Compliance matrixTurn pasted Section L/M (or a PWS) into a requirement-by-requirement compliance matrix. | compliance_matrix | sourceText | noticeId, instructions |
| Past performance analysisWhich awards to cite (recency, relevance, size, scope), how to write them up, and what is missing. | past_performance | None | noticeId, opportunityId, awardPiid, instructions |
| Recompete briefIncumbent position, timeline, likely acquisition strategy and a capture plan for an expiring award. | recompete_brief | awardPiid | instructions |
| Capability statement narrativeSharpen your capability summary and differentiators from your verified profile data. | capability_narrative | None | instructions |
| Teaming pitch / NDA requestDraft a concise pitch or NDA request to a prime or partner, grounded in fit and past performance. | pitch_draft | None | opportunityId, noticeId, targetUeis, instructions |
| Field | Type | Description |
|---|---|---|
kind | string, required | The analysis to run (table below). |
noticeId | string | SAM.gov notice ID from GET /rfps: grounds the analysis in a live solicitation. |
opportunityId | UUID | Teaming Board post id from GET /opportunities. |
awardPiid | string | Award PIID from GET /recompetes (required for recompete_brief). |
workspaceId | UUID | One of your Team Builder workspaces: the analysis uses its members and gate results. |
targetUeis | string[] (max 15) | Specific companies to assess, by SAM.gov UEI. |
section | string | Proposal section for proposal_section: executive_summary (Executive summary), technical_approach (Technical approach), management_approach (Management approach), staffing_plan (Staffing & key personnel), past_performance_volume (Past performance volume), quality_control (Quality control plan), transition_plan (Transition / phase-in plan), small_business_participation (Small business participation plan). |
sourceText | string (max 60,000) | Public solicitation text you paste, such as Section L/M or a PWS excerpt (required for compliance_matrix). |
instructions | string (max 4,000) | Extra direction for the analyst, such as the focus or the audience. |
| Code | HTTP | Meaning |
|---|---|---|
invalid_input | 400 | The body is not valid JSON, does not match the fields above, misses a field the kind requires, or is too long (413). |
forbidden | 403 | The plan does not include AI analyses, or the organization profile is not claimed. |
not_found | 404 | A referenced notice, post, award or workspace does not exist or is not yours. |
cui_detected | 422 | The Zero-CUI guard found CUI, classification or export-control markings in sourceText or instructions. Nothing was sent. |
refused | 422 | The model declined the request. Rephrase the instructions or remove unrelated text. |
quota_exceeded | 429 | Monthly AI credits (or the API quota) are used up. Retry-After says when they reset. |
rate_limited | 429 | Too many requests right now, from your key or at the model provider. Wait for Retry-After. |
provider_error | 502 | The model provider failed or timed out. Retry with backoff. |
ai_disabled | 503 | The AI analyst is temporarily switched off. Saved reports stay available. |
feature_disabled | 503 | The REST API is temporarily switched off. |
no_api_key | 503 | The AI analyst is not configured on this environment yet. |
Errors use { "error": { "code", "message" } }. Key problems pass through with the REST codes (missing_api_key, invalid_api_key, revoked_api_key, api_access_not_included).
sourceText and instructions are screened for CUI, classification and export-control markings before anything is sent. Paste public solicitation text only.AGENT CONVENTIONS
https://teamingindex.com/contractor/TQ7M2KXR4LJ9/capability.mdCHANGELOG
Create a key in your dashboard and make your first call in minutes. API and MCP access come with Verified Pro and Enterprise Capture.