Org-scoped REST API for GovMatrixIQ pipeline + opportunity data. Authenticate with a `gmiq_` API key (Settings → Developer API) as `Authorization: Bearer <key>`. Rate-limited per key (60/min read, 200/min admin). All endpoints scoped to caller org via `team_members`.
Authorization: Bearer gmiq_…. Generate one at Settings → Developer API. Keys are scope-gated (read, write, admin) and rate-limited (60 req/min standard, 200 req/min admin scope). Spec: openapi.json.{
"type": "object",
"required": [
"agencyName",
"solicitationNumber"
],
"properties": {
"agencyName": {
"type": "string"
},
"solicitationNumber": {
"type": "string"
},
"requestDescription": {
"type": "string"
},
"agencyComponentUuid": {
"type": "string",
"description": "FOIA.gov component UUID — enables live submission"
},
"expedited": {
"type": "boolean"
},
"feeWaiver": {
"type": "boolean"
},
"requesterEmail": {
"type": "string"
}
}
}| Code | Description |
|---|---|
200 | Request saved / submitted |
400 | agencyName + solicitationNumber required |
403 | Token lacks write scope |
| Code | Description |
|---|---|
200 | Caller org id + scopes + key id (when API-keyed) |
401 | Missing/invalid token |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
{
"type": "object",
"properties": {
"notes": {
"type": "string",
"maxLength": 500
}
}
}| Code | Description |
|---|---|
200 | { flagged: true|false, notice_id } |
404 | Notice not found |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Flagged notices (joined to SAM fields + notes) |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
agency | query | string | no |
priority | query | string | no |
| Code | Description |
|---|---|
200 | Paginated briefing feed rows |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
event_type | query | string | no |
source | query | string | no |
within_days | query | integer | no |
| Code | Description |
|---|---|
200 | Paginated upcoming engagement events (global multi-source calendar) |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
status | query | string | no |
| Code | Description |
|---|---|
200 | Paginated FOIA request rows for the org |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
recipient | query | string | no |
limit | query | integer | no |
| Code | Description |
|---|---|
200 | Awards + accurate total_results + sample_size |
400 | naics or recipient required |
| Parameter | In | Type | Required |
|---|---|---|---|
competitor | query | string | yes |
naics | query | string | no |
| Code | Description |
|---|---|
200 | Aggregated total_value + yearly trend + Start-Date-sorted sample |
400 | competitor required |
| Parameter | In | Type | Required |
|---|---|---|---|
chapter | query | string | no |
part | query | string | no |
| Code | Description |
|---|---|
200 | Clause list for the requested FAR/DFARS part |
| Parameter | In | Type | Required |
|---|---|---|---|
vehicleId | query | string | no |
| Code | Description |
|---|---|
200 | Prime/sub teaming recommendations for the org |
402 | Plan does not include teaming marketplace |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
certification | query | string | no |
vehicle_id | query | string | no |
q | query | string | no |
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Active cross-org teaming interests (PUBLIC fields only) |
402 | Plan does not include teaming marketplace |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
certification | query | string | no |
vehicle_id | query | string | no |
q | query | string | no |
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Real prime companies from federal award data, ranked by award value |
402 | Plan does not include teaming marketplace |
| Code | Description |
|---|---|
201 | Interest posted |
400 | vehicle_id required |
402 | Plan does not include teaming marketplace |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
naics | query | string | no |
notice_type | query | string | no |
exclude_types | query | string | no |
| Code | Description |
|---|---|
200 | Paginated opportunity rows; each carries `type` (raw SAM label) + `notice_type` (normalized enum) |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
state | query | string | no |
q | query | string | no |
status | query | string | no |
notice_type | query | string | no |
exclude_types | query | string | no |
| Code | Description |
|---|---|
200 | Paginated, deduped state/local portal opportunities; each carries a `notice_type` enum classified from the title |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
q | query | string | no |
agency | query | string | no |
status | query | string | no |
| Code | Description |
|---|---|
200 | Paginated SBIR/STTR topics (historic/closed by default) |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
q | query | string | no |
firm | query | string | no |
agency | query | string | no |
| Code | Description |
|---|---|
200 | Paginated historical SBIR/STTR awards |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
status | query | string | no |
naics | query | string | no |
vehicle | query | string | no |
state | query | string | no |
q | query | string | no |
| Code | Description |
|---|---|
200 | Paginated cooperative purchasing vehicles |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
| Code | Description |
|---|---|
200 | Coop networks ranked by active contracts matching the org NAICS |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
include_low_confidence | query | boolean | no |
| Code | Description |
|---|---|
200 | Active SLED opportunities (with naics_confidence) + covering coop vehicles, each with a per-vehicle membership certainty + a membership summary |
| Parameter | In | Type | Required |
|---|---|---|---|
keyword | query | string | no |
agency | query | string | no |
status | query | string | no |
category | query | string | no |
eligibility | query | string | no |
limit | query | integer | no |
page | query | integer | no |
| Code | Description |
|---|---|
200 | Grants.gov results (live with cache fallback) |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
keyword | query | string | no |
limit | query | integer | no |
| Code | Description |
|---|---|
200 | DLA-filtered SAM.gov opportunities |
| Parameter | In | Type | Required |
|---|---|---|---|
naics | query | string | no |
keyword | query | string | no |
limit | query | integer | no |
| Code | Description |
|---|---|
200 | GSA Schedule opportunities |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Paginated key_personnel rows |
| Code | Description |
|---|---|
200 | Curated org profile (name/CAGE/UEI/NAICS/certs/SAM status) |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
stage | query | string | no |
| Code | Description |
|---|---|
200 | Paginated pipeline rows |
403 | Insufficient scope |
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string"
},
"agency": {
"type": "string"
},
"stage": {
"type": "string",
"default": "Identified",
"enum": [
"Identified",
"Pursuing",
"Proposal",
"Submitted",
"Won",
"Lost"
]
},
"solicitation_number": {
"type": "string"
},
"naics": {
"type": "string",
"pattern": "^\\d{2,6}$"
},
"set_aside": {
"type": "string"
},
"source_url": {
"type": "string",
"format": "uri"
},
"value": {
"type": "number",
"minimum": 0
},
"due": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
}
}
}| Code | Description |
|---|---|
201 | Created |
400 | Validation error |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
| Code | Description |
|---|---|
200 | Row |
404 | Not found |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"Identified",
"Pursuing",
"Proposal",
"Submitted",
"Won",
"Lost"
]
},
"agency": {
"type": "string"
},
"value": {
"type": "number",
"minimum": 0
},
"due": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
}
}
}| Code | Description |
|---|---|
200 | Updated |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
| Code | Description |
|---|---|
200 | Archived |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
{
"type": "object",
"properties": {
"assignee_email": {
"type": "string",
"format": "email"
},
"assignee_name": {
"type": "string",
"minLength": 1
}
},
"anyOf": [
{
"required": [
"assignee_email"
]
},
{
"required": [
"assignee_name"
]
}
]
}| Code | Description |
|---|---|
200 | Assigned. assigned_to = the matched member's Clerk id (routes to their workspace); routed_to_workspace=false if no active member matched; assignee emailed when email provided. |
400 | Neither assignee_email nor assignee_name given, or invalid email |
404 | Item not found or archived |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
| Code | Description |
|---|---|
200 | Item found; board push dispatched |
403 | Token lacks write scope |
404 | Pipeline item not found in caller org |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Eligibility decision (eligible, matches, gaps, recommendation) |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Capture brief (summary, agency context, incumbent, competitive landscape, eligibility, key dates) |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Evaluation factors + basis_of_award + confidence |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Submission requirements (due_date, method, POC, page limit, volumes) |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Compliance-matrix rows (requirement_id, source_section, requirement_text, placeholders) |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
noticeId | path | string | yes |
| Code | Description |
|---|---|
200 | Outline skeleton (volumes → sections, headings only) |
400 | invalid_parameter — identifiers only |
404 | Notice not found in public cache |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
status | query | string | no |
| Code | Description |
|---|---|
200 | Paginated proposal rows; each carries a `status` lifecycle enum (generating | complete | failed) + raw `status_detail` |
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Paginated parsed solicitation rows |
| Parameter | In | Type | Required |
|---|---|---|---|
mine | query | boolean | no |
status | query | string | no |
limit | query | integer | no |
offset | query | integer | no |
| Code | Description |
|---|---|
200 | Paginated workspace tasks |
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"status": {
"type": "string",
"enum": [
"todo",
"in_progress",
"done"
]
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"assignee": {
"type": "string"
},
"notes": {
"type": "string"
},
"linked_opp_id": {
"type": "string"
},
"linked_opp_title": {
"type": "string"
}
}
}| Code | Description |
|---|---|
200 | Created task (owned by the key owner unless assignee set) |
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"status": {
"type": "string",
"enum": [
"todo",
"in_progress",
"done"
]
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"assignee": {
"type": "string"
},
"notes": {
"type": "string"
},
"linked_opp_id": {
"type": "string"
},
"linked_opp_title": {
"type": "string"
}
}
}| Code | Description |
|---|---|
200 | Updated task |
404 | Task not found |
team_members; rows from other tenants are never returned.