curl --request GET \
--url https://app.sapientpriors.com/api/v1/billing \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sapientpriors.com/api/v1/billing"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sapientpriors.com/api/v1/billing', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"organization_id": "<string>",
"enabled": true,
"balance": "<string>",
"low_credit_threshold": "0",
"next_cursor": 2,
"entries": [
{
"entry_id": 2,
"route": "<string>",
"in_words": 1,
"out_words": 1,
"cost": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>",
"request_id": "<string>",
"details": "<string>"
}Read the verified organization's credits and recorded usage
Readable with exhausted credits. Amounts are exact decimal strings; null means no balance exists.
curl --request GET \
--url https://app.sapientpriors.com/api/v1/billing \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.sapientpriors.com/api/v1/billing"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.sapientpriors.com/api/v1/billing', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"organization_id": "<string>",
"enabled": true,
"balance": "<string>",
"low_credit_threshold": "0",
"next_cursor": 2,
"entries": [
{
"entry_id": 2,
"route": "<string>",
"in_words": 1,
"out_words": 1,
"cost": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>",
"request_id": "<string>",
"details": "<string>"
}Authorizations
Your API key, shaped sp_<key_id>_<secret>, sent as Authorization: Bearer sp_.... It identifies your organization, not a person. Your organization owns the agents, holds the credit, and is billed. Every key your organization holds reaches the same things, so you rotate a key by minting the new one, deploying it, and revoking the old one.
Keep the key on your server. A request that carries a Sec-Fetch-Site header is refused with 400, because only a browser sets that header. Priors sends no CORS headers, so a browser blocks the call before it leaves the page. The secret is shown once when the key is minted and is stored only as a hash. A lost secret is replaced, never recovered.
An administrator of your organization mints and revokes keys in the Priors application, under Settings. There is no endpoint for it: a key reaches your whole organization, so issuing one is an act of administration.
Query Parameters
1 <= x <= 1001 <= x <= 9223372036854776000Response
Organization credits and a page of ledger entries
^-?\d+(\.\d+)?$Warning threshold set for your organization; does not change credit enforcement.
^\d+(\.\d+)?$x >= 1100Show child attributes
Show child attributes