GET/vision-core/v1/apps/{app}/tasks

List tasks through an App's registered task-list operation

Core checks the caller's token, then forwards the read to the App's registered operation and returns the App's response. On live this read is open only where the App is admitted.

App
Vision Core
Contract
Platform API 1.0.0-preview.8
Lifecycle
preview
Runtime
acceptance-gated
Operation ID
listAppTasks
Canonical origin
https://app.runonvision.com

Purpose and use cases

List tasks through an App's registered task-list operation

The owning App is Vision Core. Vision owns machine identity and common API policy. Source Apps retain their resource and business authority.

Request

GET https://app.runonvision.com/vision-core/v1/apps/{app}/tasks

Authentication and authorization

Send a Vision-issued bearer token for the exact App audience. The token must include the vision-core entitlement and satisfy the vision organization and installation context binding.

  • Required scope: todo:tasks:read

Human roles are not declared in OpenAPI. Record-level and business permission checks remain the owning App's authority.

Headers

  • Authorization: Bearer <access-token> — required.
  • Accept: application/json — recommended where a JSON response is declared.

Undeclared tracing, idempotency, conditional-request, and version headers are not assumed on this page.

Path and query parameters

NameLocationTypeRulesDescription
apppathtodorequiredNot described in the contract.
statusquerystringoptional; maximum length 20; pattern ^(?:pending|in_progress|completed|cancelled)$Not described in the contract.
sortquerystringoptional; maximum length 20; pattern ^(?:dueAt|priority|createdAt|title|assignee|updatedAt)$Not described in the contract.
dirquerystringoptional; maximum length 4; pattern ^(?:asc|desc)$Not described in the contract.
scopequerystringoptional; maximum length 9; pattern ^(?:active|completed|archived)$Not described in the contract.
limitquerystringoptional; maximum length 3; pattern ^(?:[1-9]|[1-9][0-9]|100)$Not described in the contract.
cursorquerystringoptional; maximum length 400; pattern ^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$Not described in the contract.
viewquerystringoptional; maximum length 8; pattern ^(?:today|upcoming|overdue)$Not described in the contract.
qquerystringoptional; maximum length 120Not described in the contract.
groupquerystringoptional; maximum length 120Not described in the contract.

Request body

This operation declares no request body.

Runnable examples

cURL
curl 'https://app.runonvision.com/vision-core/v1/apps/${APP}/tasks' \
  --request GET \
  --header 'authorization: Bearer ${ACCESS_TOKEN}' \
  --header 'accept: application/json'
JavaScript (server-side)
const response = await fetch('https://app.runonvision.com/vision-core/v1/apps/${APP}/tasks', {
  method: 'GET',
  headers: {
    authorization: `Bearer ${ACCESS_TOKEN}`,
    accept: 'application/json',
  },
}

if (!response.ok) throw new Error(`Vision API ${response.status}`)
const result = await response.json()
Python 3 standard library
import json
import urllib.parse
import urllib.request

request = urllib.request.Request(
    'https://app.runonvision.com/vision-core/v1/apps/${APP}/tasks',
    data=None,
    headers={
    "Accept": "application/json",
    "Authorization": "Bearer <ACCESS_TOKEN>"
},
    method='GET',
)
with urllib.request.urlopen(request, timeout=30) as response:
    result = json.load(response)

The current TypeScript reference client covers Platform token exchange and core reads. No native SDK helper is declared for this operation; use the HTTP contract directly and follow the SDK guidance.

Responses

StatusMeaningSchema
200The App's task-list responseobject
400Safe Platform API errorobject
401Safe Platform API errorobject
403Safe Platform API errorobject
404No task-list read is registered for this Appnot specified
429Safe Platform API errorobject
503Safe Platform API errorobject

Success response schema

object
200 illustrative response
{}

Errors and troubleshooting

Error bodies and codes are shown only where the approved contract declares them. Use status, the declared error schema, and any correlation identifier returned by the App; do not infer that two Apps share one envelope.

  • 400 — Safe Platform API error
  • 401 — Safe Platform API error
  • 403 — Safe Platform API error
  • 404 — No task-list read is registered for this App
  • 429 — Safe Platform API error
  • 503 — Safe Platform API error

Collection behavior

Pagination: declared through the parameters above. Filtering/search: declared through the parameters above. Sorting: declared.

Cursor lifetime, cursor binding, stable ordering, maximum traversal, and unknown-filter behavior are not assumed unless stated by a parameter description or schema constraint above.

Operational behavior

  • Rate limit: The operation declares 429, but the numeric policy is not in OpenAPI.
  • Retry: Retry only when the documented error model or response headers authorize it. Timeout and backoff values are not declared by this operation.
  • Idempotency: No idempotency header or replay window is declared.
  • Concurrency: No ETag, If-Match, or optimistic-version header is declared.

Security and privacy

  • Keep client credentials and bearer tokens on trusted servers.
  • Send only to the exact approved HTTPS origin and audience.
  • Treat response data according to the owning App's classification and retention policy; the OpenAPI contract does not itself grant data access.
  • Do not log credentials, tokens, complete private payloads, or secrets.

Edge cases and known documentation gaps

  • One or more parameters have no field-level description.
  • Business roles, timeout, retry budget, rate value, idempotency window, and concurrency behavior are absent unless explicitly stated above.

No related operation is identified by the contract tags.

Contract history and evidence

  • Contract version: 1.0.0-preview.8
  • Approved snapshot SHA-256: e696d48690f5bd5983b044fb77eff04f29d112a51fe150409c1542386d1b74d3
  • Approval: Anthony, 2026-11-03T01:23:27.515Z (anthony-docs-live-20261102)
  • Download the authoritative OpenAPI 3.1 snapshot