Ando Tasks API

Task routes.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ando-tasks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ando-tasks-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: Generated from Ando's accepted public API v1 contract metadata. Current routes preserve legacy /api/v1 response envelopes while converging on the public https://api.ando.so/v1 shape.
  title: Ando Public Calls Tasks API
  version: v1
servers:
- description: Canonical public API host.
  url: https://api.ando.so/v1
tags:
- description: Task routes.
  name: Tasks
paths:
  /search/tasks:
    get:
      description: Searches tasks visible to the authenticated API key.
      operationId: searchTasks
      parameters:
      - description: Search query text. When omitted, returns the default task list ordering.
        in: query
        name: q
        schema:
          description: Search query text. When omitted, returns the default task list ordering.
          type: string
      - description: Maximum number of records to return.
        in: query
        name: limit
        schema:
          description: Maximum number of records to return.
          type: integer
          minimum: 1
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchTasksResponse'
          description: Task search results.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Search tasks
      tags:
      - Tasks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: implicit_legacy
      x-ando-route-id: api.api_v1_search_tasks.get
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: public_data
      x-ando-public-path: /v1/search/tasks
      x-ando-runtime-owner: api_platform
      x-ando-status-probe-owner: public_api_search_read_shadow
      x-ando-rollback-runtime: express
      x-ando-selected-runtime: express
      x-ando-target-runtime: convex_http
  /tasks/{taskId}:
    get:
      description: Returns task context, including task entries and resources.
      operationId: getTask
      parameters:
      - description: Task identifier.
        in: path
        name: taskId
        required: true
        schema:
          description: Task identifier.
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskContextResponse'
          description: Task context.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Get a task
      tags:
      - Tasks
      x-ando-compatibility-mode: legacy_api_v1_compatibility
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: implicit_legacy
      x-ando-route-id: api.api_v1_tasks_by_taskid.get
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: public_data
      x-ando-public-path: /v1/tasks/:taskId
      x-ando-runtime-owner: api_platform
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: express
      x-ando-selected-runtime: express
      x-ando-target-runtime: convex_http
  /tasks/{taskId}/updates:
    post:
      description: Records a task update and optional task/resource changes.
      operationId: recordTaskUpdate
      parameters:
      - description: Task identifier.
        in: path
        name: taskId
        required: true
        schema:
          description: Task identifier.
          type: string
      - description: Idempotency key for safely retrying this write.
        in: header
        name: Idempotency-Key
        required: false
        schema:
          description: Idempotency key.
          type: string
          maxLength: 255
      requestBody:
        content:
          application/json:
            examples:
              worklog:
                summary: Record a worklog and move a task to review.
                value:
                  entry:
                    kind: worklog
                    author_kind: local_agent
                    author_label: Local agent
                    body_markdown: Validated the route migration.
                  task_patch:
                    phase: review
                    summary: Ready for validation.
                  resource_ops:
                  - op: add
                    label: Pull request
                    url: https://github.com/Ando-Corporation/ando/pull/3628
            schema:
              $ref: '#/components/schemas/RecordTaskUpdateBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordTaskUpdateResponse'
          description: Recorded task update.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Record a task update
      tags:
      - Tasks
      x-ando-compatibility-mode: legacy_api_v1_compatibility
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: implicit_legacy
      x-ando-route-id: api.api_v1_tasks_by_taskid_updates.post
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/tasks/:taskId/updates
      x-ando-runtime-owner: api_platform
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: express
      x-ando-selected-runtime: express
      x-ando-target-runtime: convex_http
components:
  schemas:
    TaskResourceOperation:
      description: Task resource operation.
      oneOf:
      - additionalProperties: false
        description: Add a task resource.
        properties:
          label:
            description: Resource label.
            type: string
          op:
            description: Operation.
            enum:
            - add
            type: string
          url:
            description: Resource URL.
            type: string
            format: uri
        required:
        - op
        - label
        - url
        type: object
      - additionalProperties: false
        description: Update a task resource.
        properties:
          label:
            description: Resource label.
            type: string
          op:
            description: Operation.
            enum:
            - update
            type: string
          resource_id:
            description: Resource identifier.
            type: string
            example: 01jzn7e61x3a7v9h2r7t2m3q4p
          url:
            description: Resource URL.
            type: string
            format: uri
        required:
        - op
        - resource_id
        type: object
      - additionalProperties: false
        description: Archive a task resource.
        properties:
          op:
            description: Operation.
            enum:
            - archive
            type: string
          resource_id:
            description: Resource identifier.
            type: string
            example: 01jzn7e61x3a7v9h2r7t2m3q4p
        required:
        - op
        - resource_id
        type: object
    TaskEntryKind:
      description: Task entry kind.
      enum:
      - memory
      - note
      - worklog
      - checkpoint
      - handoff
      type: string
    TaskPhase:
      description: Task phase.
      enum:
      - idea
      - building
      - review
      - done
      type: string
    LegacyErrorResponse:
      additionalProperties: false
      description: Current compatibility error envelope used by legacy /api/v1 routes.
      properties:
        error:
          description: Error message.
          type: string
        error_code:
          description: Optional machine-readable error code.
          type: string
          nullable: true
        missing_scopes:
          description: Missing scopes.
          items:
            description: Scope.
            type: string
          type: array
      required:
      - error
      type: object
    TaskResult:
      additionalProperties: false
      description: Task result.
      properties:
        conversation_id:
          description: Conversation identifier.
          type: string
          nullable: true
        conversation_name:
          description: Conversation name.
          type: string
          nullable: true
        created_at:
          description: Task creation timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        creatorWorkspaceMembershipId:
          description: Canonical creator workspace membership identifier. Matches legacy creator_member_id during the compatibility window.
          type: string
          nullable: true
        creator_member_id:
          description: 'Creator workspace member identifier. Deprecated: read creatorWorkspaceMembershipId instead.'
          type: string
          nullable: true
          deprecated: true
        id:
          description: Task identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        last_activity_at:
          description: Last activity timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        name:
          description: Task name.
          type: string
        objective:
          description: Task objective.
          type: string
        phase:
          $ref: '#/components/schemas/TaskPhase'
        state_version:
          description: Optimistic task state version.
          type: integer
        summary:
          description: Task summary.
          type: string
          nullable: true
        updated_at:
          description: Task update timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
      required:
      - id
      - name
      - objective
      - phase
      - summary
      - conversation_id
      - conversation_name
      - creatorWorkspaceMembershipId
      - creator_member_id
      - state_version
      - last_activity_at
      - created_at
      - updated_at
      type: object
    TaskResourceResult:
      additionalProperties: false
      description: Task resource.
      properties:
        archived_at:
          description: Archive timestamp.
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Resource creation timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        created_by_entry_id:
          description: Creating entry identifier.
          type: string
          nullable: true
        id:
          description: Resource identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        label:
          description: Resource label.
          type: string
        task_id:
          description: Task identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        updated_at:
          description: Resource update timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        url:
          description: Resource URL.
          type: string
          format: uri
        workspace_id:
          description: Workspace identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
      required:
      - id
      - task_id
      - workspace_id
      - label
      - url
      - created_by_entry_id
      - archived_at
      - created_at
      - updated_at
      type: object
    RecordTaskUpdateBody:
      additionalProperties: false
      description: Record a task worklog/checkpoint update and optional task/resource changes.
      properties:
        entry:
          additionalProperties: false
          description: Task update entry.
          properties:
            author_kind:
              $ref: '#/components/schemas/TaskEntryAuthorKind'
            author_label:
              description: Author display label.
              type: string
            body_markdown:
              description: Entry markdown body.
              type: string
              nullable: true
            kind:
              $ref: '#/components/schemas/TaskEntryKind'
            run_id:
              description: Agent or local run identifier.
              type: string
              nullable: true
            source_message_id:
              description: Source message identifier.
              type: string
              nullable: true
          required:
          - kind
          - author_kind
          - author_label
          type: object
        expected_state_version:
          description: Optimistic task state version expected by the caller.
          type: integer
          minimum: 0
        resource_ops:
          description: Resource changes.
          items:
            $ref: '#/components/schemas/TaskResourceOperation'
          type: array
        task_patch:
          additionalProperties: false
          description: Task fields to update.
          properties:
            phase:
              $ref: '#/components/schemas/TaskPhase'
            summary:
              description: Task summary.
              type: string
              nullable: true
          type: object
      required:
      - entry
      type: object
    RecordTaskUpdateResponse:
      additionalProperties: false
      description: Recorded task update response.
      properties:
        changed_resources:
          description: Resources changed by this update.
          items:
            $ref: '#/components/schemas/TaskResourceResult'
          type: array
        entry:
          $ref: '#/components/schemas/TaskEntryResult'
        task:
          $ref: '#/components/schemas/TaskResult'
      required:
      - task
      - entry
      - changed_resources
      type: object
    PublicApiErrorResponse:
      additionalProperties: false
      description: Target public API error envelope.
      properties:
        error:
          additionalProperties: false
          description: Error details.
          properties:
            code:
              description: Machine-readable error code.
              type: string
            message:
              description: Human-readable error message.
              type: string
            request_id:
              description: Request identifier.
              type: string
              nullable: true
          required:
          - code
          - message
          type: object
      required:
      - error
      type: object
    TaskEntryResult:
      additionalProperties: false
      description: Task entry.
      properties:
        author_kind:
          $ref: '#/components/schemas/TaskEntryAuthorKind'
        author_label:
          description: Author display label.
          type: string
        authorWorkspaceMembershipId:
          description: Canonical author workspace membership identifier. Matches legacy author_member_id during the compatibility window.
          type: string
          nullable: true
        author_member_id:
          description: 'Author workspace member identifier. Deprecated: read authorWorkspaceMembershipId instead.'
          type: string
          nullable: true
          deprecated: true
        body_markdown:
          description: Entry markdown body.
          type: string
          nullable: true
        created_at:
          description: Entry creation timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        id:
          description: Entry identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        kind:
          $ref: '#/components/schemas/TaskEntryKind'
        run_id:
          description: Run identifier.
          type: string
          nullable: true
        source_message_id:
          description: Source message identifier.
          type: string
          nullable: true
        task_id:
          description: Task identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        updated_at:
          description: Entry update timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        workspace_id:
          description: Workspace identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
      required:
      - id
      - task_id
      - workspace_id
      - kind
      - author_kind
      - authorWorkspaceMembershipId
      - author_member_id
      - author_label
      - run_id
      - source_message_id
      - body_markdown
      - created_at
      - updated_at
      type: object
    TaskEntryAuthorKind:
      description: Task entry author kind. The member value is a v1 compatibility spelling for a human workspace member author.
      enum:
      - member
      - managed_agent
      - connected_agent
      - local_agent
      - system
      type: string
    TaskContextResponse:
      additionalProperties: false
      description: Task context response.
      properties:
        entries:
          description: Task entries.
          items:
            $ref: '#/components/schemas/TaskEntryResult'
          type: array
        resources:
          description: Task resources.
          items:
            $ref: '#/components/schemas/TaskResourceResult'
          type: array
        task:
          $ref: '#/components/schemas/TaskResult'
      required:
      - task
      - entries
      - resources
      type: object
    SearchTasksResponse:
      additionalProperties: false
      description: Search tasks response. Results are returned in data.items; top-level items is a compatibility alias.
      properties:
        data:
          additionalProperties: false
          description: Standard public response data. New clients should read data.items.
          properties:
            items:
              description: Task results.
              items:
                $ref: '#/components/schemas/TaskResult'
              type: array
          required:
          - items
          type: object
        items:
          description: Compatibility alias for data.items. New clients should read data.items.
          items:
            $ref: '#/components/schemas/TaskResult'
          type: array
          deprecated: true
      required:
      - data
      - items
      type: object
  responses:
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Forbidden.
    RateLimited:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicApiErrorResponse'
      description: Rate limit or quota exceeded.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Not found.
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Internal server error.
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Conflict.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Missing or invalid API key.
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Bad request.
  securitySchemes:
    AndoApiKey:
      description: Workspace API key. Current accepted keys use the ando_sk_ prefix.
      in: header
      name: x-api-key
      type: apiKey
    BearerApiKey:
      bearerFormat: ando_sk
      description: Compatibility transport for workspace API keys.
      scheme: bearer
      type: http