> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quiva.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Read the changes feed

> Every task, comment and action write in the space, deletes included, for 30 days. The feed does not hide the caller's own writes: filter on `origin`. Needs `tasks:read`.



## OpenAPI

````yaml /api-reference/endpoint/workspaces/openapi.json get /workspaces/space/{space_id}/changes
openapi: 3.0.3
info:
  title: Workspaces Service API
  version: 1.0.0
  description: API for managing workspaces, tasks, and comments
servers:
  - url: https://api.quiva.ai
    description: Production API server
security:
  - bearerAuth: []
  - apiKeyAuth: []
paths:
  /workspaces/space/{space_id}/changes:
    get:
      tags:
        - Changes
      summary: Read the changes feed
      description: >-
        Every task, comment and action write in the space, deletes included, for
        30 days. The feed does not hide the caller's own writes: filter on
        `origin`. Needs `tasks:read`.
      parameters:
        - name: space_id
          in: path
          required: true
          description: Space id. Case-insensitive; canonical form is upper case.
          schema:
            type: string
        - name: cursor
          in: query
          required: false
          description: Opaque; the `next_cursor` of the previous page.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: 1 to 500. Default 100.
          schema:
            type: integer
            minimum: 1
            maximum: 500
        - name: since
          in: query
          required: false
          description: RFC 3339. Used only when there is no cursor.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: A page.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangesPage'
        '400':
          description: '`invalid_cursor`, or `invalid_request` for a bad `limit` or `since`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            Not authenticated, or the integration token was revoked
            (`token_revoked`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Forbidden: `scope_denied`, or `integration_not_allowed` for an
            integration bearer outside workspaces.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: >-
            `cursor_expired`: the cursor is older than retention. Resume from
            `next_cursor`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorExpired'
        '503':
          description: >-
            A backing store is unreachable. Retry. A feed read failure carries
            no `code`; `storage_unavailable` is set only when the integration
            check could not run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ChangesPage:
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/ChangeEvent'
        next_cursor:
          type: string
        has_more:
          type: boolean
        retention_days:
          type: integer
          enum:
            - 30
      required:
        - events
        - next_cursor
        - has_more
        - retention_days
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
          description: Stable machine code. Branch on this, not on `error`.
      required:
        - error
    CursorExpired:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
          enum:
            - cursor_expired
        next_cursor:
          type: string
          description: Resume from here.
        retention_days:
          type: integer
      required:
        - error
        - code
        - next_cursor
    ChangeEvent:
      type: object
      properties:
        event_id:
          type: string
          description: >-
            `<account_id>-<stream_sequence>`. Equals the `webhook-id` header of
            a delivery.
        event_type:
          type: string
          enum:
            - task-created
            - task-updated
            - task-status-changed
            - task-moved
            - task-deleted
            - task-action-added
            - task-action-completed
            - task-action-deleted
            - comment-created
            - comment-updated
            - comment-deleted
        occurred_at:
          type: string
          format: date-time
        account_id:
          type: string
        space_id:
          type: string
        folder:
          type: string
        origin:
          type: object
          properties:
            kind:
              type: string
              enum:
                - user
                - integration
                - api_key
                - flow
                - distribution
                - system
            id:
              type: string
          required:
            - kind
            - id
        actor:
          type: string
        task:
          $ref: '#/components/schemas/Task'
        changed_fields:
          type: array
          items:
            type: string
        status_from:
          type: string
          description: Set only on a status change.
        old_space_id:
          type: string
          description: Set only on a move.
        comment:
          type: object
          additionalProperties: true
          nullable: true
        action:
          type: object
          additionalProperties: true
          nullable: true
        old_folder:
          type: string
          description: Set only when a task moved between folders.
      required:
        - event_id
        - event_type
        - occurred_at
        - account_id
        - space_id
        - origin
        - task
    Task:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        url:
          type: string
          readOnly: true
          description: UI URL to navigate directly to this task
        title:
          type: string
        description:
          type: string
          description: Markdown / rich-text content
        assignees:
          type: array
          items:
            type: string
          nullable: true
          description: Assigned user IDs.
        attachments:
          type: array
          items:
            type: string
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        priority:
          type: string
        folder:
          type: string
        reporter:
          type: string
        status:
          type: string
          description: A status id of the space.
        space_id:
          type: string
        due_date:
          type: string
          format: date-time
        scheduled_at:
          type: string
          format: date-time
          description: >-
            RFC3339 date-time at which the task is scheduled. Archiving the task
            clears it.
        archived:
          type: boolean
          description: Whether the task is archived.
        order:
          type: number
          description: Sort order of the task within its column/board.
        tags:
          type: array
          items:
            type: string
          description: Free-form tag ids on the task.
        metadata:
          type: object
          additionalProperties: true
          description: Arbitrary metadata bag stored on the task.
        watchers:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            User ids watching the task. Only present on the get-task response,
            not stored on the task record.
        muted:
          type: array
          items:
            type: string
          readOnly: true
          description: User ids who muted the task. Only present on the get-task response.
        parent:
          type: string
          description: >-
            Id of the parent task, when this is a subtask. Setting it needs read
            access to the parent's space.
        source:
          type: string
        source_detail:
          type: string
        value:
          type: number
        currency:
          type: string
        expected_close:
          type: string
        time_tracking:
          $ref: '#/components/schemas/TimeTracking'
        version:
          type: integer
          readOnly: true
          description: >-
            1 on create, +1 on every task write. Comments, time logs and
            activity stamps never bump it.
        sync_key:
          type: string
          readOnly: true
          description: >-
            Set when the task is shared with a connected account. Its version
            then belongs to that shared lineage.
        sync_conflict:
          type: object
          additionalProperties: true
          readOnly: true
          description: >-
            Present when an incoming change from a connected account conflicted
            with a local edit.
        external_id:
          type: string
          maxLength: 256
          description: Your own id for the task, at most 256 bytes of UTF-8.
        activity_at:
          type: string
          format: date-time
          readOnly: true
          description: Moves on task, comment, time-log and action writes.
        subtasks:
          type: array
          items:
            type: object
            additionalProperties: true
          readOnly: true
          description: Present on list and get responses.
        task_actions:
          type: array
          items:
            $ref: '#/components/schemas/TaskAction'
          readOnly: true
        implementation_date:
          type: string
          description: Estimated go-live date, ISO. Stored only; nothing schedules on it.
        assigned_qa:
          type: string
          description: >-
            User id, offered from the Space's assigned QA users. Not validated
            against them.
    TimeTracking:
      type: object
      properties:
        estimate:
          type: object
          properties:
            time_in_seconds:
              type: integer
        logs:
          type: array
          items:
            $ref: '#/components/schemas/TimeLog'
        spent:
          type: object
          properties:
            time_in_seconds:
              type: integer
        remaining:
          type: object
          properties:
            time_in_seconds:
              type: integer
        progress_percent:
          type: number
    TaskAction:
      type: object
      required:
        - description
      description: >-
        A checklist item on a task. `description` is required on every write,
        not only on create — an update that only flips `done` still has to
        resend it.
      properties:
        id:
          type: string
          description: >-
            Action id. Omit on create and the server assigns one; pass an
            existing id to update that action.
          example: ta_a1b2c3
        description:
          type: string
          minLength: 1
          description: What the action is. Required on every write.
          example: Confirm the report has been proofread
        done:
          type: boolean
          description: Whether the item is ticked off.
        resources:
          type: array
          items:
            $ref: '#/components/schemas/TaskActionResource'
          description: Platform resources linked from this action.
    TimeLog:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Server-minted, `tl_` followed by random characters.
        time_spent:
          type: object
          required:
            - time_in_seconds
          properties:
            time_in_seconds:
              type: integer
              minimum: 1
        started_at:
          type: string
          format: date-time
        description:
          type: string
        user:
          type: object
          readOnly: true
          properties:
            id:
              type: string
            name:
              type: string
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - time_spent
        - started_at
    TaskActionResource:
      type: object
      required:
        - resource_id
        - resource_type
      description: >-
        A platform resource linked from a checklist action. Both fields are
        free-form strings — the resource is not validated to exist.
      properties:
        resource_id:
          type: string
          example: onboarding-checklist
        resource_type:
          type: string
          example: record-config
        metadata:
          type: object
          additionalProperties: true
          description: Free-form metadata carried alongside the link.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Authorization header using the Bearer scheme
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.