GovMatrixIQ Public REST API

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`.

Authentication. Send your API key as 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.

FOIA

post/v1/foia/submitSubmit a FOIA request
Request body
{
  "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"
    }
  }
}
Responses
CodeDescription
200Request saved / submitted
400agencyName + solicitationNumber required
403Token lacks write scope

Identity

get/v1/meCaller identity
Responses
CodeDescription
200Caller org id + scopes + key id (when API-keyed)
401Missing/invalid token

Intelligence

post/v1/notices/{noticeId}/flagFlag / unflag a SAM notice for this org (write, toggle)
ParameterInTypeRequired
noticeIdpathstringyes
Request body
{
  "type": "object",
  "properties": {
    "notes": {
      "type": "string",
      "maxLength": 500
    }
  }
}
Responses
CodeDescription
200{ flagged: true|false, notice_id }
404Notice not found
get/v1/notices/flaggedThis org's flagged notices
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Flagged notices (joined to SAM fields + notes)
get/v1/briefingsList procurement intelligence briefings
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
agencyquerystringno
priorityquerystringno
Responses
CodeDescription
200Paginated briefing feed rows
get/v1/eventsList upcoming BD / engagement events
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
event_typequerystringno
sourcequerystringno
within_daysqueryintegerno
Responses
CodeDescription
200Paginated upcoming engagement events (global multi-source calendar)
get/v1/foia/requestsList FOIA requests
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
statusquerystringno
Responses
CodeDescription
200Paginated FOIA request rows for the org
get/v1/usaspending/awardsFederal award history (USASpending)
ParameterInTypeRequired
naicsquerystringno
recipientquerystringno
limitqueryintegerno
Responses
CodeDescription
200Awards + accurate total_results + sample_size
400naics or recipient required
get/v1/usaspending/competitorCompetitor spending intel (USASpending)
ParameterInTypeRequired
competitorquerystringyes
naicsquerystringno
Responses
CodeDescription
200Aggregated total_value + yearly trend + Start-Date-sorted sample
400competitor required
get/v1/clausesFAR/DFARS clauses (eCFR Title 48)
ParameterInTypeRequired
chapterquerystringno
partquerystringno
Responses
CodeDescription
200Clause list for the requested FAR/DFARS part
get/v1/teaming/recommendationsTeaming partner recommendations
ParameterInTypeRequired
vehicleIdquerystringno
Responses
CodeDescription
200Prime/sub teaming recommendations for the org
402Plan does not include teaming marketplace
get/v1/teaming/partnersBrowse the teaming marketplace (find partners/subcontractors)
ParameterInTypeRequired
naicsquerystringno
certificationquerystringno
vehicle_idquerystringno
qquerystringno
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Active cross-org teaming interests (PUBLIC fields only)
402Plan does not include teaming marketplace
get/v1/teaming/directoryBrowse the public teaming directory (real companies from federal award data)
ParameterInTypeRequired
naicsquerystringno
certificationquerystringno
vehicle_idquerystringno
qquerystringno
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Real prime companies from federal award data, ranked by award value
402Plan does not include teaming marketplace
post/v1/teaming/interestsPost a teaming interest to the marketplace
Responses
CodeDescription
201Interest posted
400vehicle_id required
402Plan does not include teaming marketplace

Opportunities

get/v1/opportunitiesList SAM.gov opportunities
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
naicsquerystringno
notice_typequerystringno
exclude_typesquerystringno
Responses
CodeDescription
200Paginated opportunity rows; each carries `type` (raw SAM label) + `notice_type` (normalized enum)
get/v1/sled/opportunitiesList state & local (SLED) opportunities
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
statequerystringno
qquerystringno
statusquerystringno
notice_typequerystringno
exclude_typesquerystringno
Responses
CodeDescription
200Paginated, deduped state/local portal opportunities; each carries a `notice_type` enum classified from the title
get/v1/sbir/topicsSearch SBIR/STTR topics (historic by default)
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
qquerystringno
agencyquerystringno
statusquerystringno
Responses
CodeDescription
200Paginated SBIR/STTR topics (historic/closed by default)
get/v1/sbir/awardsSearch SBIR/STTR awards
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
qquerystringno
firmquerystringno
agencyquerystringno
Responses
CodeDescription
200Paginated historical SBIR/STTR awards
get/v1/coop/contractsCooperative purchasing contracts
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
statusquerystringno
naicsquerystringno
vehiclequerystringno
statequerystringno
qquerystringno
Responses
CodeDescription
200Paginated cooperative purchasing vehicles
get/v1/coop/vehicle-fitCoop vehicle fit by NAICS ("Am I on the right vehicles?")
ParameterInTypeRequired
naicsquerystringno
Responses
CodeDescription
200Coop networks ranked by active contracts matching the org NAICS
get/v1/coop/sled-crosslinkActive SLED solicitations winnable through a coop vehicle
ParameterInTypeRequired
naicsquerystringno
include_low_confidencequerybooleanno
Responses
CodeDescription
200Active SLED opportunities (with naics_confidence) + covering coop vehicles, each with a per-vehicle membership certainty + a membership summary
get/v1/grantsSearch grants (Grants.gov)
ParameterInTypeRequired
keywordquerystringno
agencyquerystringno
statusquerystringno
categoryquerystringno
eligibilityquerystringno
limitqueryintegerno
pagequeryintegerno
Responses
CodeDescription
200Grants.gov results (live with cache fallback)
get/v1/dla/opportunitiesDLA opportunities (SAM.gov, filtered)
ParameterInTypeRequired
naicsquerystringno
keywordquerystringno
limitqueryintegerno
Responses
CodeDescription
200DLA-filtered SAM.gov opportunities
get/v1/gsa/scheduleGSA Schedule opportunities (SAM.gov)
ParameterInTypeRequired
naicsquerystringno
keywordquerystringno
limitqueryintegerno
Responses
CodeDescription
200GSA Schedule opportunities

Org

get/v1/personnelList key personnel (staffing catalog)
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Paginated key_personnel rows
get/v1/org/profileGet company profile
Responses
CodeDescription
200Curated org profile (name/CAGE/UEI/NAICS/certs/SAM status)

Pipeline

get/v1/pipelineList pipeline items
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
stagequerystringno
Responses
CodeDescription
200Paginated pipeline rows
403Insufficient scope
post/v1/pipelineCreate pipeline item
Request body
{
  "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"
    }
  }
}
Responses
CodeDescription
201Created
400Validation error
get/v1/pipeline/{id}Get pipeline item by id
ParameterInTypeRequired
idpathstringyes
Responses
CodeDescription
200Row
404Not found
patch/v1/pipeline/{id}Update pipeline item
ParameterInTypeRequired
idpathstringyes
Request body
{
  "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"
    }
  }
}
Responses
CodeDescription
200Updated
delete/v1/pipeline/{id}Archive pipeline item
ParameterInTypeRequired
idpathstringyes
Responses
CodeDescription
200Archived
post/v1/pipeline/{id}/assigneeAssign pipeline item to a member (write)
ParameterInTypeRequired
idpathstringyes
Request body
{
  "type": "object",
  "properties": {
    "assignee_email": {
      "type": "string",
      "format": "email"
    },
    "assignee_name": {
      "type": "string",
      "minLength": 1
    }
  },
  "anyOf": [
    {
      "required": [
        "assignee_email"
      ]
    },
    {
      "required": [
        "assignee_name"
      ]
    }
  ]
}
Responses
CodeDescription
200Assigned. 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.
400Neither assignee_email nor assignee_name given, or invalid email
404Item not found or archived
post/v1/pipeline/{id}/syncPush a pipeline item to connected boards
ParameterInTypeRequired
idpathstringyes
Responses
CodeDescription
200Item found; board push dispatched
403Token lacks write scope
404Pipeline item not found in caller org

Proposal Tools (Tier 2)

get/v1/notices/{noticeId}/eligibilityAssess bid eligibility for a public notice (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Eligibility decision (eligible, matches, gaps, recommendation)
400invalid_parameter — identifiers only
404Notice not found in public cache
get/v1/notices/{noticeId}/capture-briefGenerate a 1-page capture brief from public sources (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Capture brief (summary, agency context, incumbent, competitive landscape, eligibility, key dates)
400invalid_parameter — identifiers only
404Notice not found in public cache
get/v1/notices/{noticeId}/evaluation-factorsExtract Section M evaluation factors (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Evaluation factors + basis_of_award + confidence
400invalid_parameter — identifiers only
404Notice not found in public cache
get/v1/notices/{noticeId}/submission-requirementsExtract Section L submission requirements (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Submission requirements (due_date, method, POC, page limit, volumes)
400invalid_parameter — identifiers only
404Notice not found in public cache
get/v1/notices/{noticeId}/compliance-matrixGenerate a compliance-matrix scaffold (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Compliance-matrix rows (requirement_id, source_section, requirement_text, placeholders)
400invalid_parameter — identifiers only
404Notice not found in public cache
get/v1/notices/{noticeId}/outline-skeletonGenerate a proposal outline skeleton (Tier 2)
ParameterInTypeRequired
noticeIdpathstringyes
Responses
CodeDescription
200Outline skeleton (volumes → sections, headings only)
400invalid_parameter — identifiers only
404Notice not found in public cache

Proposals

get/v1/proposalsList drafted proposals (My Proposals)
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
statusquerystringno
Responses
CodeDescription
200Paginated proposal rows; each carries a `status` lifecycle enum (generating | complete | failed) + raw `status_detail`
get/v1/solicitationsList parsed solicitations (Parse RFP)
ParameterInTypeRequired
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Paginated parsed solicitation rows

Workspace

get/v1/tasksList workspace tasks
ParameterInTypeRequired
minequerybooleanno
statusquerystringno
limitqueryintegerno
offsetqueryintegerno
Responses
CodeDescription
200Paginated workspace tasks
post/v1/tasksCreate a workspace task (write)
Request body
{
  "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"
    }
  }
}
Responses
CodeDescription
200Created task (owned by the key owner unless assignee set)
patch/v1/tasks/{id}Update a workspace task (write)
ParameterInTypeRequired
idpathstringyes
Request body
{
  "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"
    }
  }
}
Responses
CodeDescription
200Updated task
404Task not found
Endpoints are tenant-scoped — every call resolves to your org via team_members; rows from other tenants are never returned.