Skip to main content
POST
/
api
/
tools
/
v1
/
opportunities
/
search
Search opportunities
curl --request POST \
  --url https://app.govly.com/api/tools/v1/opportunities/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "<string>",
  "cursor": "<string>",
  "perPage": 25,
  "status": "open",
  "naics": [
    "<string>"
  ],
  "postedAfter": "<string>",
  "postedBefore": "<string>",
  "modifiedAfter": "<string>",
  "modifiedBefore": "<string>",
  "respondByAfter": "<string>",
  "respondByBefore": "<string>",
  "awardedAfter": "<string>",
  "awardedBefore": "<string>"
}
'
{
  "data": [
    {
      "id": "<string>",
      "title": "<string>",
      "displayName": "<string>",
      "identifier": "<string>",
      "externalUrl": "<string>",
      "recordType": "<string>",
      "postedAt": "2023-11-07T05:31:56Z",
      "modifiedAt": "2023-11-07T05:31:56Z",
      "respondBy": "2023-11-07T05:31:56Z",
      "cancelledAt": "2023-11-07T05:31:56Z",
      "awardedAt": "2023-11-07T05:31:56Z",
      "aiTitle": "<string>",
      "aiSummary": "<string>",
      "jurisdiction": {
        "id": "<string>",
        "name": "<string>",
        "isoCode": "<string>"
      },
      "contractVehicle": {
        "id": "<string>",
        "name": "<string>"
      },
      "followerCount": 123,
      "followedByCurrentUser": true,
      "followedByCurrentOrganization": true,
      "workspaces": [
        {
          "id": "<string>",
          "name": "<string>",
          "status": {
            "category": "<string>",
            "label": "<string>"
          },
          "followerCount": 123,
          "follows": [
            {
              "id": "<string>",
              "member": {
                "id": "<string>",
                "name": "<string>",
                "email": "jsmith@example.com",
                "organization": {
                  "id": "<string>",
                  "name": "<string>"
                }
              },
              "state": "<string>",
              "notifications": "<string>",
              "createdAt": "2023-11-07T05:31:56Z",
              "updatedAt": "2023-11-07T05:31:56Z"
            }
          ],
          "organizationDefault": true,
          "organization": {
            "id": "<string>",
            "name": "<string>"
          },
          "followedByCurrentUser": true,
          "followedByCurrentOrganization": true
        }
      ],
      "aggregateAttachments": [
        {
          "id": "<string>",
          "filename": "<string>",
          "redacted": true,
          "contentType": "<string>",
          "byteSize": 123,
          "tags": [
            "<string>"
          ],
          "file": {
            "url": "<string>",
            "expiresAt": "2023-11-07T05:31:56Z"
          }
        }
      ],
      "opportunitySources": [
        {
          "id": "<string>",
          "attachments": [
            {
              "id": "<string>",
              "filename": "<string>",
              "redacted": true,
              "contentType": "<string>",
              "byteSize": 123,
              "tags": [
                "<string>"
              ],
              "file": {
                "url": "<string>",
                "expiresAt": "2023-11-07T05:31:56Z"
              }
            }
          ],
          "postedAt": "2023-11-07T05:31:56Z",
          "externalUrl": "<string>",
          "noticeType": "<string>",
          "recordType": "<string>"
        }
      ]
    }
  ],
  "meta": {
    "count": 123,
    "perPage": 123,
    "nextCursor": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
query
string
cursor
string

Opaque cursor from the previous response's meta.nextCursor. Omit for the first page.

perPage
integer
default:25
Required range: x <= 100
status
enum<string>
default:open

Defaults to open for actionable opportunities. Use all, expired, cancelled, awarded, or not_cancelled for historical or specific lookup requests. Prediction records are always excluded.

Available options:
open,
all,
expired,
cancelled,
awarded,
not_cancelled
naics
string[]

NAICS codes to filter by, such as 541519.

postedAfter
string

Only include opportunities posted at or after this date/time. ISO 8601 dates work best.

postedBefore
string

Only include opportunities posted at or before this date/time. ISO 8601 dates work best.

modifiedAfter
string

Only include opportunities modified at or after this date/time. ISO 8601 dates work best.

modifiedBefore
string

Only include opportunities modified at or before this date/time. ISO 8601 dates work best.

respondByAfter
string

Only include opportunities with a response deadline at or after this date/time. ISO 8601 dates work best.

respondByBefore
string

Only include opportunities with a response deadline at or before this date/time. ISO 8601 dates work best.

awardedAfter
string

Only include awarded opportunities awarded at or after this date/time. ISO 8601 dates work best.

awardedBefore
string

Only include awarded opportunities awarded at or before this date/time. ISO 8601 dates work best.

sort
enum<string>
Available options:
modified_at,
posted_at,
respond_by,
relevance
sortDirection
enum<string>
Available options:
asc,
desc

Response

Matching opportunities

data
object[]
required
meta
object
required