API reference

Phone widgets

Data for the Home app's widgets: custom endpoint values, stock prices, speed tests and what's next.
POST/v1/me/widgets/endpoint

A 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.
Get an API key

Request body

  • itemIdstringrequired

    Matches ^[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>"
  }'
Send it from this page with your session or a key.

Response 200

{
  value: string
  at: number
}
GET/v1/me/widgets/quotes

Stock 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.
Get an API key

Query parameters

  • symbolsstringrequired

    Up 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"
Send it from this page with your session or a key.

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
}
GET/v1/me/widgets/speedtest

bytes 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.
Get an API key

Query parameters

  • bytesinteger

    Default 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"
Send it from this page with your session or a key.

Response 200 with no body

GET/v1/me/agenda/next

The 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.
Get an API key

Query parameters

  • limitinteger

    Default 3. 1–10. Coerced from a string.

  • daysinteger

    Default 7. 1–14. Coerced from a string.

  • events"0" | "1"

    Default "1".

  • tasks"0" | "1"

    Default "1".

  • overdue"0" | "1"

    Default "1".

  • tzOffsetinteger

    Default 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"
Send it from this page with your session or a key.

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
}