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

# List activities

> Returns paginated scheduling activity log entries for the authenticated organization. Each entry is a flat object with a subject_type discriminant (TASK, APPLICATION, or CANDIDATE) and sparse, top-level relationship refs (task, application, candidate, job, job_stage) that are populated when the underlying rows hydrate and null otherwise. Requires a timestamp range and optionally filters by activity type. Results are ordered by activity timestamp; use the cursor to continue the same filtered result set.



## OpenAPI

````yaml /openapi.json get /v1/activities
openapi: 3.1.0
info:
  title: ModernLoop Platform API
  version: 0.1.0
  description: The ModernLoop Platform API for managing recruiting workflows.
  contact:
    email: support@modernloop.io
servers:
  - url: https://api.modernloop.io
security: []
tags:
  - name: Activity
  - name: Application
  - name: Candidate
  - name: Interview Event
  - name: Interview Module
  - name: Job
  - name: Job Stage
  - name: Me
  - name: Organization
  - name: Schedule
  - name: Scheduling Task
  - name: Task Queue
  - name: Template
  - name: User
paths:
  /v1/activities:
    get:
      tags:
        - Activity
      summary: List activities
      description: >-
        Returns paginated scheduling activity log entries for the authenticated
        organization. Each entry is a flat object with a subject_type
        discriminant (TASK, APPLICATION, or CANDIDATE) and sparse, top-level
        relationship refs (task, application, candidate, job, job_stage) that
        are populated when the underlying rows hydrate and null otherwise.
        Requires a timestamp range and optionally filters by activity type.
        Results are ordered by activity timestamp; use the cursor to continue
        the same filtered result set.
      operationId: listActivities
      parameters:
        - schema:
            type: string
            description: >-
              Opaque pagination cursor from the previous page's
              pagination.next_cursor, bound to the same query filters.
          required: false
          description: >-
            Opaque pagination cursor from the previous page's
            pagination.next_cursor, bound to the same query filters.
          name: cursor
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Page size. Must be between 1 and 100; defaults to 25.
          required: false
          description: Page size. Must be between 1 and 100; defaults to 25.
          name: limit
          in: query
        - schema:
            type: array
            items:
              type: string
              pattern: >-
                ^(?:act_)?(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
              description: >-
                an activity ID. Accepts the canonical prefixed compact UUID, a
                prefixed dashed UUID, a bare dashed UUID, or a bare compact
                UUID; input is case-insensitive.
              example: act_a1b2c3d4e5f64789a1b2c3d4e5f64789
            minItems: 1
            description: Comma-separated list of IDs; maximum 100 values.
          required: false
          description: Comma-separated list of IDs; maximum 100 values.
          name: ids
          in: query
          style: form
          explode: false
        - schema:
            type: string
            format: date-time
            description: Filters activities occurring at or after this timestamp.
          required: true
          description: Filters activities occurring at or after this timestamp.
          name: timestamp_gte
          in: query
        - schema:
            type: string
            format: date-time
            description: Filters activities occurring at or before this timestamp.
          required: true
          description: Filters activities occurring at or before this timestamp.
          name: timestamp_lte
          in: query
        - schema:
            type: array
            items:
              type: string
              enum:
                - TASK_CREATED
                - TASK_ASSIGNED
                - CANDIDATE_AVAILABILITY_REQUESTED
                - CANDIDATE_AVAILABILITY_SUBMITTED
                - SELF_SCHEDULE_REQUESTED
                - SCHEDULE_CREATED
                - SCHEDULE_UPDATED
                - SCHEDULE_RESCHEDULED
                - SCHEDULE_CANCELED
                - SELF_SCHEDULE_CREATED
                - SELF_SCHEDULE_RESCHEDULED
                - SELF_SCHEDULE_CANCELED
                - INTERVIEWER_RSVP_ACCEPTED
                - INTERVIEWER_RSVP_DECLINED
                - INTERVIEWER_RSVP_TENTATIVE
                - CANDIDATE_RSVP_ACCEPTED
                - CANDIDATE_RSVP_DECLINED
                - CANDIDATE_RSVP_TENTATIVE
                - COMMENT
                - INTERVIEWER_AUTO_REPLACED
                - CANDIDATE_INTERVIEW_REMINDER_SENT
                - CANDIDATE_SELF_SCHEDULE_REMINDER_SENT
                - CANDIDATE_AVAILABILITY_REMINDER_SENT
                - SCHEDULE_INTERVIEW_ADDED
                - SCHEDULE_INTERVIEW_UPDATED
                - SCHEDULE_INTERVIEW_CANCELED
                - DEBRIEF_CREATED
                - DEBRIEF_CANCELED
                - DEBRIEF_UPDATED
                - DEBRIEF_RESCHEDULED
                - CHANGE_REQUESTED
                - FLAG_RESOLVED_CHANGE_REQUESTED
                - FLAG_RESOLVED_INTERVIEW_DECLINED
                - FLAG_RESOLVED_DEBRIEF_DECLINED
                - FLAG_RESOLVED_CANDIDATE_DECLINED
                - FLAG_RESOLVED_INTERVIEWER_DEACTIVATED
                - FLAG_RESOLVED_INTERVIEWER_TENTATIVE
                - FLAG_RESOLVED_DEBRIEF_ATTENDEE_TENTATIVE
                - FLAG_RESOLVED_DEBRIEF_ATTENDEE_DEACTIVATED
                - FLAG_RESOLVED_CANDIDATE_TENTATIVE
            minItems: 1
            description: >-
              Matches activities with any listed action type; combines with
              other filters using AND.
          required: false
          description: >-
            Matches activities with any listed action type; combines with other
            filters using AND.
          name: types
          in: query
          style: form
          explode: false
        - schema:
            type: string
            enum:
              - ASC
              - DESC
            default: ASC
            description: >-
              Sorts activities by timestamp ascending or descending; defaults to
              ASC.
          required: false
          description: >-
            Sorts activities by timestamp ascending or descending; defaults to
            ASC.
          name: sort
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Activity'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                required:
                  - data
                  - pagination
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: Gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    Activity:
      type: object
      properties:
        id:
          type: string
          pattern: ^act_[0-9a-f]{32}$
          description: >-
            Canonical activity ID (act_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: act_a1b2c3d4e5f64789a1b2c3d4e5f64789
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp. Responses are normalized to UTC with a Z suffix.
        actor:
          $ref: '#/components/schemas/ActivityActor'
        action:
          type: object
          properties:
            type:
              type: string
              enum:
                - TASK_CREATED
                - TASK_ASSIGNED
                - CANDIDATE_AVAILABILITY_REQUESTED
                - CANDIDATE_AVAILABILITY_SUBMITTED
                - SELF_SCHEDULE_REQUESTED
                - SCHEDULE_CREATED
                - SCHEDULE_UPDATED
                - SCHEDULE_RESCHEDULED
                - SCHEDULE_CANCELED
                - SELF_SCHEDULE_CREATED
                - SELF_SCHEDULE_RESCHEDULED
                - SELF_SCHEDULE_CANCELED
                - INTERVIEWER_RSVP_ACCEPTED
                - INTERVIEWER_RSVP_DECLINED
                - INTERVIEWER_RSVP_TENTATIVE
                - CANDIDATE_RSVP_ACCEPTED
                - CANDIDATE_RSVP_DECLINED
                - CANDIDATE_RSVP_TENTATIVE
                - COMMENT
                - INTERVIEWER_AUTO_REPLACED
                - CANDIDATE_INTERVIEW_REMINDER_SENT
                - CANDIDATE_SELF_SCHEDULE_REMINDER_SENT
                - CANDIDATE_AVAILABILITY_REMINDER_SENT
                - SCHEDULE_INTERVIEW_ADDED
                - SCHEDULE_INTERVIEW_UPDATED
                - SCHEDULE_INTERVIEW_CANCELED
                - DEBRIEF_CREATED
                - DEBRIEF_CANCELED
                - DEBRIEF_UPDATED
                - DEBRIEF_RESCHEDULED
                - CHANGE_REQUESTED
                - FLAG_RESOLVED_CHANGE_REQUESTED
                - FLAG_RESOLVED_INTERVIEW_DECLINED
                - FLAG_RESOLVED_DEBRIEF_DECLINED
                - FLAG_RESOLVED_CANDIDATE_DECLINED
                - FLAG_RESOLVED_INTERVIEWER_DEACTIVATED
                - FLAG_RESOLVED_INTERVIEWER_TENTATIVE
                - FLAG_RESOLVED_DEBRIEF_ATTENDEE_TENTATIVE
                - FLAG_RESOLVED_DEBRIEF_ATTENDEE_DEACTIVATED
                - FLAG_RESOLVED_CANDIDATE_TENTATIVE
              description: >-
                Activity action type. This enum is open; clients must tolerate
                unknown values.
            details:
              anyOf:
                - $ref: '#/components/schemas/ActivityAvailabilityDetails'
                - $ref: '#/components/schemas/ActivityScheduleTimeDetails'
                - $ref: '#/components/schemas/ActivityRsvpDetails'
                - $ref: '#/components/schemas/ActivityAssigneeDetails'
                - $ref: '#/components/schemas/ActivityCommentDetails'
                - $ref: '#/components/schemas/ActivityFlagDetails'
                - type: 'null'
          required:
            - type
            - details
        subject_type:
          type: string
          enum:
            - TASK
            - APPLICATION
            - CANDIDATE
          description: >-
            What the activity is about. This enum may grow; clients must
            tolerate unknown values.
        task:
          $ref: '#/components/schemas/ActivityTaskRef'
        application:
          $ref: '#/components/schemas/ActivityApplicationRef'
        candidate:
          $ref: '#/components/schemas/ActivityCandidate'
        job:
          $ref: '#/components/schemas/ActivityJob'
        job_stage:
          $ref: '#/components/schemas/ActivityJobStage'
      required:
        - id
        - timestamp
        - actor
        - action
        - subject_type
        - task
        - application
        - candidate
        - job
        - job_stage
    Pagination:
      type: object
      properties:
        next_cursor:
          type:
            - string
            - 'null'
      required:
        - next_cursor
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHENTICATED
                - INSUFFICIENT_SCOPE
                - VALIDATION_FAILED
                - INVALID_CURSOR
                - PAYLOAD_TOO_LARGE
                - NOT_FOUND
                - PERMISSION_DENIED
                - IDEMPOTENCY_KEY_REQUIRED
                - IDEMPOTENCY_KEY_REUSED
                - RATE_LIMITED
                - CONFLICT
                - CANNOT_UPDATE_SYNC_MANAGED_FIELDS
                - NOT_IMPLEMENTED
                - INTERNAL
                - UPSTREAM_TIMEOUT
                - UNAVAILABLE
            message:
              type: string
            docs_url:
              type: string
              format: uri
            details:
              type: array
              items:
                type: object
                additionalProperties:
                  type: string
          required:
            - code
            - message
      required:
        - error
    ActivityActor:
      oneOf:
        - $ref: '#/components/schemas/ActivityUserActor'
        - $ref: '#/components/schemas/ActivityCandidateActor'
        - $ref: '#/components/schemas/ActivitySystemActor'
      discriminator:
        propertyName: actor_type
        mapping:
          USER:
            $ref: '#/components/schemas/ActivityUserActor'
          CANDIDATE:
            $ref: '#/components/schemas/ActivityCandidateActor'
          SYSTEM:
            $ref: '#/components/schemas/ActivitySystemActor'
    ActivityAvailabilityDetails:
      type: object
      properties:
        availability:
          type: array
          items:
            type: object
            properties:
              start:
                type: string
                format: date-time
                description: >-
                  ISO 8601 timestamp. Responses are normalized to UTC with a Z
                  suffix.
              end:
                type: string
                format: date-time
                description: >-
                  ISO 8601 timestamp. Responses are normalized to UTC with a Z
                  suffix.
            required:
              - start
              - end
      required:
        - availability
    ActivityScheduleTimeDetails:
      type: object
      properties:
        start:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 timestamp. Responses are normalized to UTC with a Z suffix.
        end:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 timestamp. Responses are normalized to UTC with a Z suffix.
      required:
        - start
        - end
    ActivityRsvpDetails:
      type: object
      properties:
        interview:
          type:
            - string
            - 'null'
        comment:
          type:
            - string
            - 'null'
      required:
        - interview
        - comment
    ActivityAssigneeDetails:
      type: object
      properties:
        assignee:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              pattern: ^usr_[0-9a-f]{32}$
              description: >-
                Canonical user ID (usr_ followed by 32 lowercase hexadecimal
                UUID characters).
              example: usr_a1b2c3d4e5f64789a1b2c3d4e5f64789
            name:
              type:
                - string
                - 'null'
            email:
              type:
                - string
                - 'null'
          required:
            - id
            - name
            - email
          description: >-
            The user the task was assigned to, or null when the assignee could
            not be resolved. name and email are null when the employee record
            does not hydrate; the id is always present when assignee is
            non-null.
      required:
        - assignee
    ActivityCommentDetails:
      type: object
      properties:
        body:
          type: string
          description: Plain-text comment body when the comment has visible text.
        edited:
          type: boolean
          description: True when the comment was edited.
      required:
        - body
        - edited
    ActivityFlagDetails:
      type: object
      properties:
        content:
          type: string
          description: Flag content text.
      required:
        - content
    ActivityTaskRef:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          pattern: ^tsk_[0-9a-f]{32}$
          description: >-
            Canonical task ID (tsk_ followed by 32 lowercase hexadecimal UUID
            characters).
          example: tsk_a1b2c3d4e5f64789a1b2c3d4e5f64789
      required:
        - id
      description: Non-null only for TASK-subject activities (the task id is always known).
    ActivityApplicationRef:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          pattern: ^app_[0-9a-f]{32}$
          description: >-
            Canonical application ID (app_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: app_a1b2c3d4e5f64789a1b2c3d4e5f64789
        ats_id:
          type:
            - string
            - 'null'
          description: ATS application id; null when hydration misses.
      required:
        - id
        - ats_id
      description: >-
        Non-null for APPLICATION-subject activities (id always known) and for
        TASK-subject activities whose task row hydrates; otherwise null.
    ActivityCandidate:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          pattern: ^can_[0-9a-f]{32}$
          description: >-
            Canonical candidate ID (can_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: can_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
        timezone:
          type:
            - string
            - 'null'
        ats_id:
          type:
            - string
            - 'null'
      required:
        - id
        - name
        - email
        - timezone
        - ats_id
      description: >-
        Non-null for CANDIDATE-subject activities (id always known) and for
        TASK/APPLICATION subjects whose row hydrates; otherwise null.
    ActivityJob:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          pattern: ^job_[0-9a-f]{32}$
          description: >-
            Canonical job ID (job_ followed by 32 lowercase hexadecimal UUID
            characters).
          example: job_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type:
            - string
            - 'null'
        ats_id:
          type:
            - string
            - 'null'
      required:
        - id
        - name
        - ats_id
      description: >-
        Populated for TASK/APPLICATION subjects when hydration succeeds;
        otherwise null.
    ActivityJobStage:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          pattern: ^stg_[0-9a-f]{32}$
          description: >-
            Canonical job stage ID (stg_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: stg_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type:
            - string
            - 'null'
        index:
          type:
            - integer
            - 'null'
        ats_id:
          type:
            - string
            - 'null'
      required:
        - id
        - name
        - index
        - ats_id
      description: >-
        Populated only for TASK-subject activities whose task row hydrates;
        otherwise null.
    ActivityUserActor:
      type: object
      properties:
        actor_type:
          type: string
          enum:
            - USER
        id:
          type: string
          pattern: ^usr_[0-9a-f]{32}$
          description: >-
            Canonical user ID (usr_ followed by 32 lowercase hexadecimal UUID
            characters).
          example: usr_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type: string
        email:
          type: string
        ats_id:
          type: string
      required:
        - actor_type
        - id
        - name
        - email
        - ats_id
    ActivityCandidateActor:
      type: object
      properties:
        actor_type:
          type: string
          enum:
            - CANDIDATE
        id:
          type: string
          pattern: ^can_[0-9a-f]{32}$
          description: >-
            Canonical candidate ID (can_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: can_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type: string
        email:
          type: string
        timezone:
          type:
            - string
            - 'null'
        ats_id:
          type: string
      required:
        - actor_type
        - id
        - name
        - email
        - timezone
        - ats_id
    ActivitySystemActor:
      type: object
      properties:
        actor_type:
          type: string
          enum:
            - SYSTEM
        system_actor_type:
          type:
            - string
            - 'null'
          enum:
            - MODERNLOOP
            - MODERNLOOP_SUPPORT
            - SCIM_PROVIDER
        name:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
      required:
        - actor_type
        - system_actor_type
        - name
        - email
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API tokens are passed as Bearer tokens.

````