Monthly targets for people and locations, with progress so far
const url = 'https://api.threadkite.app/v1/targets?month=2026-10';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.threadkite.app/v1/targets?month=2026-10' \ --header 'Authorization: Bearer <token>'Progress counts what you can see (the inboxes you are in). mine=true gives just yours, for the Today list header. Part of Pro.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”YYYY-MM; defaults to this month
Example
2026-10YYYY-MM; defaults to this month
Only your own targets (for the Today list header)
Only your own targets (for the Today list header)
Responses
Section titled “Responses”object
How much of the month has gone, 0 to 1
object
The person (scope person)
The location (scope location)
The person’s or location’s name
A count, or minutes for the typical first reply
So far this month, in what you can see (null: nothing to measure yet)
How much is done, 0 to 1
At or past the target (at or under it for reply times)
On course for the month
Example
{ "month": "2026-10", "targets": [ { "scope": "person", "name": "Sam Patel", "metric": "leads_handled", "label": "Sales", "value": 12 } ]}object
Stable machine-readable reason
With code invalid: every problem with the request, by field (message is the first)
object
Dotted path inside the item, e.g. attributes.price.amountMinor
Example
{ "statusCode": 403, "code": "forbidden", "message": "You do not have permission to do that.", "errors": [ { "message": "Enter the make" } ]}Missing or invalid API key
object
Stable machine-readable reason
With code invalid: every problem with the request, by field (message is the first)
object
Dotted path inside the item, e.g. attributes.price.amountMinor
Example
{ "statusCode": 403, "code": "forbidden", "message": "You do not have permission to do that.", "errors": [ { "message": "Enter the make" } ]}The organisation is on the Free plan (code upgrade_required)
object
Stable machine-readable reason
The feature that needs Pro
Where to upgrade or pay, in the web app
Example
{ "statusCode": 402, "code": "upgrade_required", "message": "Connections are part of Pro. Upgrade to connect texts, calls and more.", "feature": "extraSeats", "upgradePath": "/settings/billing"}The key does not have the scope (or the person the permission)
object
Stable machine-readable reason
With code invalid: every problem with the request, by field (message is the first)
object
Dotted path inside the item, e.g. attributes.price.amountMinor
Example
{ "statusCode": 403, "code": "forbidden", "message": "You do not have permission to do that.", "errors": [ { "message": "Enter the make" } ]}Rate limit reached
object
Stable machine-readable reason
Seconds until another request will be accepted
Example
{ "statusCode": 429, "code": "rate_limited", "message": "Too many requests. Each key can make 120 requests a minute; try again in 12 seconds.", "retryAfter": 12}