curl --request POST \
--url https://app.govly.com/api/tools/v1/inbox_items/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"inboxViewId": "<string>",
"state": [],
"matchableType": [],
"recordType": [
"<string>"
],
"states": [
"<string>"
],
"recordPublicEntityIds": [
"<string>"
],
"recordPublicEntityIdsNone": [
"<string>"
],
"keywords": [
"<string>"
],
"oppSearchIds": [
"<string>"
],
"signalSavedSearchIds": [
"<string>"
],
"naicsCodes": [
"<string>"
],
"createdAfter": "<string>",
"createdBefore": "<string>",
"deadlineAtFrom": "<string>",
"deadlineAtTo": "<string>"
}
'import requests
url = "https://app.govly.com/api/tools/v1/inbox_items/search"
payload = {
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"inboxViewId": "<string>",
"state": [],
"matchableType": [],
"recordType": ["<string>"],
"states": ["<string>"],
"recordPublicEntityIds": ["<string>"],
"recordPublicEntityIdsNone": ["<string>"],
"keywords": ["<string>"],
"oppSearchIds": ["<string>"],
"signalSavedSearchIds": ["<string>"],
"naicsCodes": ["<string>"],
"createdAfter": "<string>",
"createdBefore": "<string>",
"deadlineAtFrom": "<string>",
"deadlineAtTo": "<string>"
}
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,
inboxViewId: '<string>',
state: [],
matchableType: [],
recordType: ['<string>'],
states: ['<string>'],
recordPublicEntityIds: ['<string>'],
recordPublicEntityIdsNone: ['<string>'],
keywords: ['<string>'],
oppSearchIds: ['<string>'],
signalSavedSearchIds: ['<string>'],
naicsCodes: ['<string>'],
createdAfter: '<string>',
createdBefore: '<string>',
deadlineAtFrom: '<string>',
deadlineAtTo: '<string>'
})
};
fetch('https://app.govly.com/api/tools/v1/inbox_items/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/inbox_items/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,
'inboxViewId' => '<string>',
'state' => [
],
'matchableType' => [
],
'recordType' => [
'<string>'
],
'states' => [
'<string>'
],
'recordPublicEntityIds' => [
'<string>'
],
'recordPublicEntityIdsNone' => [
'<string>'
],
'keywords' => [
'<string>'
],
'oppSearchIds' => [
'<string>'
],
'signalSavedSearchIds' => [
'<string>'
],
'naicsCodes' => [
'<string>'
],
'createdAfter' => '<string>',
'createdBefore' => '<string>',
'deadlineAtFrom' => '<string>',
'deadlineAtTo' => '<string>'
]),
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/inbox_items/search"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\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/inbox_items/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.govly.com/api/tools/v1/inbox_items/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 \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"matchableId": "<string>",
"matchableType": "Opp",
"state": "unread",
"origins": [
{
"sourceType": "govly_ai",
"savedSearchId": "<string>",
"savedSearchName": "<string>"
}
],
"feedback": "followed",
"feedbackReason": "bad_fit",
"title": "<string>",
"description": "<string>",
"fitReason": "<string>",
"fitScore": 123,
"sourceType": "govly_ai",
"identifier": "<string>",
"recordType": "<string>",
"deadlineAt": "2023-11-07T05:31:56Z",
"postedOrAwardedDate": "2023-12-25",
"publicEntityNames": [
"<string>"
],
"isoCode": "<string>",
"naicsCodes": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"highlight": {}
}
],
"meta": {
"total": 123,
"nextCursor": "<string>"
},
"aggregations": {
"matchableType": {}
}
}{
"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>"
}
}
]
}{
"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 inbox items
Full-text search and filter the authenticated user’s inbox items. Returns matchable-type aggregation counts. Use inboxStatus all for pending Inbox items, followed for followed Opportunities, or archived for dismissed items. Without an inboxStatus or state filter, active items include actioned items. Discover saved views through list_inbox_views, then pass inboxViewId. A view applies its saved filters, ordering and relative time window; only cursor and perPage may accompany inboxViewId. The user’s default view is not applied implicitly. Continue with the returned cursor to retain the same relative time window across pages. A missing view or one owned by another user returns 404.
curl --request POST \
--url https://app.govly.com/api/tools/v1/inbox_items/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"inboxViewId": "<string>",
"state": [],
"matchableType": [],
"recordType": [
"<string>"
],
"states": [
"<string>"
],
"recordPublicEntityIds": [
"<string>"
],
"recordPublicEntityIdsNone": [
"<string>"
],
"keywords": [
"<string>"
],
"oppSearchIds": [
"<string>"
],
"signalSavedSearchIds": [
"<string>"
],
"naicsCodes": [
"<string>"
],
"createdAfter": "<string>",
"createdBefore": "<string>",
"deadlineAtFrom": "<string>",
"deadlineAtTo": "<string>"
}
'import requests
url = "https://app.govly.com/api/tools/v1/inbox_items/search"
payload = {
"query": "<string>",
"cursor": "<string>",
"perPage": 25,
"inboxViewId": "<string>",
"state": [],
"matchableType": [],
"recordType": ["<string>"],
"states": ["<string>"],
"recordPublicEntityIds": ["<string>"],
"recordPublicEntityIdsNone": ["<string>"],
"keywords": ["<string>"],
"oppSearchIds": ["<string>"],
"signalSavedSearchIds": ["<string>"],
"naicsCodes": ["<string>"],
"createdAfter": "<string>",
"createdBefore": "<string>",
"deadlineAtFrom": "<string>",
"deadlineAtTo": "<string>"
}
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,
inboxViewId: '<string>',
state: [],
matchableType: [],
recordType: ['<string>'],
states: ['<string>'],
recordPublicEntityIds: ['<string>'],
recordPublicEntityIdsNone: ['<string>'],
keywords: ['<string>'],
oppSearchIds: ['<string>'],
signalSavedSearchIds: ['<string>'],
naicsCodes: ['<string>'],
createdAfter: '<string>',
createdBefore: '<string>',
deadlineAtFrom: '<string>',
deadlineAtTo: '<string>'
})
};
fetch('https://app.govly.com/api/tools/v1/inbox_items/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/inbox_items/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,
'inboxViewId' => '<string>',
'state' => [
],
'matchableType' => [
],
'recordType' => [
'<string>'
],
'states' => [
'<string>'
],
'recordPublicEntityIds' => [
'<string>'
],
'recordPublicEntityIdsNone' => [
'<string>'
],
'keywords' => [
'<string>'
],
'oppSearchIds' => [
'<string>'
],
'signalSavedSearchIds' => [
'<string>'
],
'naicsCodes' => [
'<string>'
],
'createdAfter' => '<string>',
'createdBefore' => '<string>',
'deadlineAtFrom' => '<string>',
'deadlineAtTo' => '<string>'
]),
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/inbox_items/search"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\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/inbox_items/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"perPage\": 25,\n \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.govly.com/api/tools/v1/inbox_items/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 \"inboxViewId\": \"<string>\",\n \"state\": [],\n \"matchableType\": [],\n \"recordType\": [\n \"<string>\"\n ],\n \"states\": [\n \"<string>\"\n ],\n \"recordPublicEntityIds\": [\n \"<string>\"\n ],\n \"recordPublicEntityIdsNone\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"oppSearchIds\": [\n \"<string>\"\n ],\n \"signalSavedSearchIds\": [\n \"<string>\"\n ],\n \"naicsCodes\": [\n \"<string>\"\n ],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"deadlineAtFrom\": \"<string>\",\n \"deadlineAtTo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"matchableId": "<string>",
"matchableType": "Opp",
"state": "unread",
"origins": [
{
"sourceType": "govly_ai",
"savedSearchId": "<string>",
"savedSearchName": "<string>"
}
],
"feedback": "followed",
"feedbackReason": "bad_fit",
"title": "<string>",
"description": "<string>",
"fitReason": "<string>",
"fitScore": 123,
"sourceType": "govly_ai",
"identifier": "<string>",
"recordType": "<string>",
"deadlineAt": "2023-11-07T05:31:56Z",
"postedOrAwardedDate": "2023-12-25",
"publicEntityNames": [
"<string>"
],
"isoCode": "<string>",
"naicsCodes": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"highlight": {}
}
],
"meta": {
"total": 123,
"nextCursor": "<string>"
},
"aggregations": {
"matchableType": {}
}
}{
"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>"
}
}
]
}{
"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
Opaque cursor from the previous response's meta.nextCursor. Omit for the first page.
x <= 100Saved view ID from list_inbox_views, or team_view for All Results. Cannot be combined with explicit filters or sort.
^(team_view|[1-9][0-9]{0,18})$all selects pending items; followed selects followed Opportunities; archived selects dismissed items. Takes precedence over state when both are supplied.
all, followed, archived ranked_score, created_at, deadline_at asc, desc unread, seen, actioned, dismissed Opp, Award, ProcurementSignal::Cluster Saved-search origin IDs are ignored when sourceType is govly_ai.
govly_ai, saved_search Market scope within the caller's access. all leaves the market unrestricted.
all, fed, sled US state abbreviations for SLED matches, such as CA or CO.
Include canonical PublicEntity buyer IDs and their descendants. Applies to Opportunities and linked SLED Signals.
Positive canonical ID at most 9223372036854775807. Strings preserve precision for large IDs.
^[1-9][0-9]{0,18}$Exclude canonical PublicEntity buyer IDs and their descendants. Applies to Opportunities and linked SLED Signals.
Positive canonical ID at most 9223372036854775807. Strings preserve precision for large IDs.
^[1-9][0-9]{0,18}$Match any phrase across title, description, buyer names, and identifier. At most 20 distinct nonblank phrases.
Opportunity saved-search origin IDs. Combined with signalSavedSearchIds using OR.
Positive canonical ID at most 9223372036854775807. Strings preserve precision for large IDs.
^[1-9][0-9]{0,18}$Signal saved-search origin IDs. Combined with oppSearchIds using OR.
Positive canonical ID at most 9223372036854775807. Strings preserve precision for large IDs.
^[1-9][0-9]{0,18}$Was this page helpful?