curl --request POST \
--url https://app.govly.com/api/tools/v1/awards/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"dateRange": [
"<string>"
],
"recipientNames": [
"<string>"
],
"buyerNames": [
"<string>"
],
"funderNames": [
"<string>"
],
"naics": [
"<string>"
],
"psc": [
"<string>"
],
"amountRange": [
123
]
}
'import requests
url = "https://app.govly.com/api/tools/v1/awards/search"
payload = {
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"dateRange": ["<string>"],
"recipientNames": ["<string>"],
"buyerNames": ["<string>"],
"funderNames": ["<string>"],
"naics": ["<string>"],
"psc": ["<string>"],
"amountRange": [123]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
cursor: '<string>',
perPage: 25,
dateRange: ['<string>'],
recipientNames: ['<string>'],
buyerNames: ['<string>'],
funderNames: ['<string>'],
naics: ['<string>'],
psc: ['<string>'],
amountRange: [123]
})
};
fetch('https://app.govly.com/api/tools/v1/awards/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.govly.com/api/tools/v1/awards/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '<string>',
'cursor' => '<string>',
'perPage' => 25,
'dateRange' => [
'<string>'
],
'recipientNames' => [
'<string>'
],
'buyerNames' => [
'<string>'
],
'funderNames' => [
'<string>'
],
'naics' => [
'<string>'
],
'psc' => [
'<string>'
],
'amountRange' => [
123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.govly.com/api/tools/v1/awards/search"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.govly.com/api/tools/v1/awards/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.govly.com/api/tools/v1/awards/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"uniqueKey": "<string>",
"displayName": "<string>",
"title": "<string>",
"identifier": "<string>",
"description": "<string>",
"aiSummary": "<string>",
"externalUrl": "<string>",
"awardUrl": "<string>",
"acquisitionType": "<string>",
"acquisitionCategory": "<string>",
"treasuryAccountIds": [
"<string>"
],
"dates": {
"awardedDate": "<string>",
"lastModifiedDate": "<string>",
"periodOfPerformanceStartDate": "<string>",
"periodOfPerformanceEndDate": "<string>",
"periodOfPerformancePotentialEndDate": "<string>"
},
"amounts": {
"awardAmount": 123,
"obligatedAmount": 123,
"paidAmount": 123,
"ceilingAmount": 123
},
"recipient": {
"name": "<string>",
"uniqueKey": "<string>",
"uei": "<string>",
"cageCode": "<string>",
"parentUniqueKey": "<string>",
"parentName": "<string>"
},
"buyer": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"buyingOffice": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"funder": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"fundingOffice": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"classification": {
"psc": "<string>",
"naics": "<string>",
"setAside": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
}
},
"contractVehicle": {
"id": "<string>",
"slug": "<string>",
"name": "<string>"
},
"parentAward": {
"uniqueKey": "<string>",
"identifier": "<string>"
},
"jurisdiction": {
"id": "<string>",
"name": "<string>",
"isoCode": "<string>"
},
"transactions": [
{}
],
"subAwards": [
{}
],
"subAwardsCount": 123,
"relatedOpportunities": [
{}
],
"programLinks": [
{}
],
"awardLineItems": [
{}
],
"places": [
{}
],
"classificationCodes": [
{}
],
"contacts": [
{}
]
}
],
"meta": {
"count": 123,
"totalCount": 123,
"perPage": 123,
"nextCursor": "<string>"
}
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}Search awards
Search awarded government contracts with the constrained public parameter set shared by MCP search_awards. Searches all time unless dateRange is given. searchType defaults to the authenticated user’s market focus (fed or sled); sled and international require the matching organization subscription.
curl --request POST \
--url https://app.govly.com/api/tools/v1/awards/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"dateRange": [
"<string>"
],
"recipientNames": [
"<string>"
],
"buyerNames": [
"<string>"
],
"funderNames": [
"<string>"
],
"naics": [
"<string>"
],
"psc": [
"<string>"
],
"amountRange": [
123
]
}
'import requests
url = "https://app.govly.com/api/tools/v1/awards/search"
payload = {
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"dateRange": ["<string>"],
"recipientNames": ["<string>"],
"buyerNames": ["<string>"],
"funderNames": ["<string>"],
"naics": ["<string>"],
"psc": ["<string>"],
"amountRange": [123]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
cursor: '<string>',
perPage: 25,
dateRange: ['<string>'],
recipientNames: ['<string>'],
buyerNames: ['<string>'],
funderNames: ['<string>'],
naics: ['<string>'],
psc: ['<string>'],
amountRange: [123]
})
};
fetch('https://app.govly.com/api/tools/v1/awards/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.govly.com/api/tools/v1/awards/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '<string>',
'cursor' => '<string>',
'perPage' => 25,
'dateRange' => [
'<string>'
],
'recipientNames' => [
'<string>'
],
'buyerNames' => [
'<string>'
],
'funderNames' => [
'<string>'
],
'naics' => [
'<string>'
],
'psc' => [
'<string>'
],
'amountRange' => [
123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.govly.com/api/tools/v1/awards/search"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.govly.com/api/tools/v1/awards/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.govly.com/api/tools/v1/awards/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"dateRange\": [\n \"<string>\"\n ],\n \"recipientNames\": [\n \"<string>\"\n ],\n \"buyerNames\": [\n \"<string>\"\n ],\n \"funderNames\": [\n \"<string>\"\n ],\n \"naics\": [\n \"<string>\"\n ],\n \"psc\": [\n \"<string>\"\n ],\n \"amountRange\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"uniqueKey": "<string>",
"displayName": "<string>",
"title": "<string>",
"identifier": "<string>",
"description": "<string>",
"aiSummary": "<string>",
"externalUrl": "<string>",
"awardUrl": "<string>",
"acquisitionType": "<string>",
"acquisitionCategory": "<string>",
"treasuryAccountIds": [
"<string>"
],
"dates": {
"awardedDate": "<string>",
"lastModifiedDate": "<string>",
"periodOfPerformanceStartDate": "<string>",
"periodOfPerformanceEndDate": "<string>",
"periodOfPerformancePotentialEndDate": "<string>"
},
"amounts": {
"awardAmount": 123,
"obligatedAmount": 123,
"paidAmount": 123,
"ceilingAmount": 123
},
"recipient": {
"name": "<string>",
"uniqueKey": "<string>",
"uei": "<string>",
"cageCode": "<string>",
"parentUniqueKey": "<string>",
"parentName": "<string>"
},
"buyer": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"buyingOffice": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"funder": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"fundingOffice": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
},
"classification": {
"psc": "<string>",
"naics": "<string>",
"setAside": {
"id": "<string>",
"name": "<string>",
"code": "<string>"
}
},
"contractVehicle": {
"id": "<string>",
"slug": "<string>",
"name": "<string>"
},
"parentAward": {
"uniqueKey": "<string>",
"identifier": "<string>"
},
"jurisdiction": {
"id": "<string>",
"name": "<string>",
"isoCode": "<string>"
},
"transactions": [
{}
],
"subAwards": [
{}
],
"subAwardsCount": 123,
"relatedOpportunities": [
{}
],
"programLinks": [
{}
],
"awardLineItems": [
{}
],
"places": [
{}
],
"classificationCodes": [
{}
],
"contacts": [
{}
]
}
],
"meta": {
"count": 123,
"totalCount": 123,
"perPage": 123,
"nextCursor": "<string>"
}
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}{
"errors": [
{
"status": "<string>",
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>"
}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Search text. Supports keywords, quoted phrases, and boolean operators such as AND, OR, and NOT.
Opaque pagination token from the previous response's meta.nextCursor. Omit for the first page. Tokens are bound to the query, filters, and sort inputs and carry no format guarantee.
x <= 100Market type. Defaults to the authenticated user's market focus (fed or sled). sled and international require the matching organization subscription.
fed, sled, international Filter by award action dates as [start, end] in ISO 8601 format. Searches all time when omitted.
2 elementsFilter to awards won by any of these recipient (vendor) names.
Filter to awards bought by any of these government buyer names.
Filter to awards funded by any of these government funder names.
NAICS codes to filter by, such as 334111.
Product or service codes (PSC) to filter by.
Filter by award amount as [minimum, maximum].
2 elementsSort field. Defaults to period_of_performance_start_date. Use awarded_date for recency or award_amount for contract size. SLED awards often lack period_of_performance_start_date, so prefer awarded_date when searchType is sled.
period_of_performance_start_date, awarded_date, last_modified_date, award_amount asc, desc Was this page helpful?