API reference
Phone widgets
/ v1/ me/ widgets/ endpointA custom endpoint widget's value: reads the address saved in that widget (itemId, one of the person's own endpoint widgets; https only, public addresses, at most 64 KB in 4 seconds) and returns what's at its path in the JSON answer (or the plain-text answer), at most 64 characters with its decimal places applied. A widget's value is kept for a minute. 422: the widget has no address, or nothing usable at its path; 502: the address couldn't be read.
- Auth
- A person's token or an API key, as Authorization: Bearer.
Request body
itemIdstringrequiredMatches
^[a-z0-9][a-z0-9_-]{0,31}$.
Errors
403Widgets belong to people.403Widgets are read by the app.
curl -X POST 'https://api.cactive.com.au/v1/me/widgets/endpoint' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemId": "<itemId>"
}'Response 200
{
value: string
at: number
}/ v1/ me/ widgets/ quotesStock prices for up to 10 comma-separated symbols, in the order asked (missing: ones the provider doesn't know or couldn't price just now; stale: the provider is down and this is its last price, up to an hour old). Indices are priced through a fund that tracks them (index names it: SPY for the S&P 500). Each symbol is fetched at most once a minute for everyone. 503 until the platform has a stock price provider.
- Auth
- A person's token or an API key, as Authorization: Bearer.
Query parameters
symbolsstringrequiredUp to 200 characters.
Errors
400symbols: up to 10 ticker symbols, separated by commas.403Widgets belong to people.403Widgets are read by the app.
curl 'https://api.cactive.com.au/v1/me/widgets/quotes?symbols=example' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
quotes: {
index?: string
symbol: string
price: number
change: null | number
changePercent: null | number
previousClose: null | number
open: null | number
high: null | number
low: null | number
at: number
stale?: boolean
}[]
missing: string[]
source: {
id: string
name: string
url: string
}
at: number
}/ v1/ me/ widgets/ speedtestbytes random bytes (up to 1,000,000; 250,000 by default) for the network widget to time the download. Never cached or compressed on the way.
- Auth
- A person's token or an API key, as Authorization: Bearer.
Query parameters
bytesintegerDefault
250000. 1–1000000. Coerced from a string.
Errors
403Widgets belong to people.403Widgets are read by the app.
curl 'https://api.cactive.com.au/v1/me/widgets/speedtest' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200 with no body
/ v1/ me/ agenda/ nextThe person's next events and tasks due, across every org (the Up next widget), each list nearest first and at most limit (1–10, default 3). events: from the calendars of the mailboxes they're a member of (under way now or starting within days, 1–14, default 7; cancelled, free and declined ones left out). tasks: open tasks assigned to them due within days, with overdue ones first unless overdue=0. tzOffset (minutes east of UTC) says which day is today for all-day events and due dates.
- Auth
- A person's token or an API key, as Authorization: Bearer.
Query parameters
limitintegerDefault
3. 1–10. Coerced from a string.daysintegerDefault
7. 1–14. Coerced from a string.events"0" | "1"Default
"1".tasks"0" | "1"Default
"1".overdue"0" | "1"Default
"1".tzOffsetintegerDefault
0. -840–840. Coerced from a string.
Errors
403Widgets belong to people.403Widgets are read by the app.
curl 'https://api.cactive.com.au/v1/me/agenda/next' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: [] | {
orgId: string
mailboxId: string
calendarId: string
calendarName: string
eventId: string
summary: string
location?: string
start: number
end: number
allDay: boolean
startDate?: string
endDate?: string
now: boolean
}[]
tasks: [] | {
orgId: string
key: string
summary: string
due: string
overdue: boolean
url: string
}[]
at: number
}