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

# Get unified person activities

> Retrieve a unified, paginated timeline of all activities for a person. Aggregates notes, emails, tasks, calendar events, sequence enrollments, pipeline stage changes, and assessments. Supports filtering by activity type, team member, job, date range (created_at_gte / created_at_lte), and text search.

**When to use**: Use this for full activity pagination with filtering. You can also pass `include=activities` when calling `GET /v1/persons/{id}` for a simpler response.



## OpenAPI

````yaml /api-reference/openapi-v1.json get /v1/persons/{id}/activities
openapi: 3.1.0
info:
  title: Stardex API (v1)
  version: 1.0.0
  description: >-
    Stardex ATS API — manage candidates, jobs, companies, and recruiting
    workflows.
servers:
  - url: https://api.stardex.ai
    description: Production API server
security:
  - bearerAuth: []
tags:
  - name: Persons
    description: Manage person records — contacts, work history, and custom fields.
  - name: Jobs
    description: Manage job postings — pipeline stages, team members, and custom fields.
  - name: Candidates
    description: Manage candidate records and pipeline stage transitions.
  - name: Companies
    description: Browse and retrieve company records.
  - name: Lists
    description: Create, search, and retrieve saved person and company lists.
  - name: Person Activities
    description: Create and manage activity records (notes, emails, meetings) for persons.
  - name: Team Members
    description: List team members for use in search filters and assignments.
  - name: Custom Fields
    description: Retrieve custom field definitions and tag options for search filters.
paths:
  /v1/persons/{id}/activities:
    get:
      tags:
        - Persons
      summary: Get unified person activities
      description: >-
        Retrieve a unified, paginated timeline of all activities for a person.
        Aggregates notes, emails, tasks, calendar events, sequence enrollments,
        pipeline stage changes, and assessments. Supports filtering by activity
        type, team member, job, date range (created_at_gte / created_at_lte),
        and text search.


        **When to use**: Use this for full activity pagination with filtering.
        You can also pass `include=activities` when calling `GET
        /v1/persons/{id}` for a simpler response.
      operationId: getPersonActivities
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            description: Person ID
        - schema:
            type:
              - integer
              - 'null'
            minimum: 0
            default: 0
            description: Records to skip for pagination. Defaults to 0.
          required: false
          name: offset
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
            description: Max records per page (1–100). Defaults to 100.
          required: false
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Keyword search across activity content (whole words; matches any
              term). A match returns activity_content_match — the passage where
              the terms cluster.
          required: false
          name: search
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: string
              format: uuid
            description: >-
              Comma-separated team member UUIDs to filter by activity
              creator/owner. Get IDs from GET /v1/team-members.
          required: false
          name: team_member_ids
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: string
              format: uuid
            description: >-
              Comma-separated job UUIDs to filter activities by associated job.
              Get IDs from POST /v1/jobs/search.
          required: false
          name: job_ids
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: string
            description: >-
              Comma-separated activity types to include. Valid values — Notes:
              primary_note, secondary_note, interview_note, call_note,
              meeting_note, client_note, client_created_note, candidate_summary,
              meeting_transcript, client_rating. Communication: email,
              email_response, linkedin_message, linkedin_message_response,
              text_message. Synthetic: task, calendar_event,
              sequence_enrollment, pipeline_status, assessment. Example:
              "email,secondary_note,task".
          required: false
          name: activity_types
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: string
            description: >-
              Comma-separated activity types to exclude. Accepts the same values
              as activity_types. Example: "pipeline_status,assessment".
          required: false
          name: excluded_activity_types
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: string
              format: uuid
            description: >-
              Comma-separated stage UUIDs to filter pipeline_status activities.
              Get IDs from GET /v1/jobs/{id} → pipeline_stages.
          required: false
          name: pipeline_stage_ids
          in: query
        - schema:
            type: string
            description: >-
              Return only activities created at or after this timestamp (ISO
              8601). Example: "2026-03-22T00:00:00Z". Use with created_at_lte
              for a date range.
          required: false
          name: created_at_gte
          in: query
        - schema:
            type: string
            description: >-
              Return only activities created at or before this timestamp (ISO
              8601). Example: "2026-03-28T23:59:59Z". Use with created_at_gte
              for a date range.
          required: false
          name: created_at_lte
          in: query
      responses:
        '200':
          description: Activities fetched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonActivitiesResponse'
              example:
                success: true
                data:
                  - id: 901e2345-e67f-89a0-b123-456789012345
                    activity_type: secondary_note
                    created_at: '2024-01-14T16:00:00Z'
                    updated_at: '2024-01-14T16:45:00Z'
                    activity_content: Great initial call. Strong system design skills.
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                  - id: 902e3456-f78a-90b1-c234-567890123456
                    activity_type: email
                    created_at: '2024-01-13T11:00:00Z'
                    updated_at: '2024-01-13T11:00:00Z'
                    activity_content: Hi John, following up on our conversation...
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    email_details:
                      subject: Following up — Senior SWE role
                      from_email: jane@startup.xyz
                      to_email: john@techcorp.com
                      status: sent
                  - id: 903e4567-0123-4567-890a-bcdef0123456
                    activity_type: email_response
                    created_at: '2024-01-13T14:30:00Z'
                    updated_at: '2024-01-13T14:30:00Z'
                    activity_content: Thanks Jane! I am interested, lets schedule a call.
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    email_details:
                      subject: 'Re: Following up — Senior SWE role'
                      from_email: john@techcorp.com
                      to_email: jane@startup.xyz
                      status: replied
                  - id: ddd44444-eeee-ffff-0000-111111114444
                    activity_type: task
                    created_at: '2024-01-12T09:00:00Z'
                    updated_at: '2024-01-12T09:30:00Z'
                    activity_content: Schedule technical interview with John
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    task_details:
                      status: open
                      due_date: '2024-01-20T17:00:00Z'
                      task_type: follow_up
                      assigned_to:
                        id: 234e5678-e90a-12b3-c456-789012345678
                        name: Jane Smith
                  - id: ccc33333-dddd-eeee-ffff-000000003333
                    activity_type: calendar_event
                    created_at: '2024-01-18T14:00:00Z'
                    updated_at: '2024-01-18T14:00:00Z'
                    activity_content: Technical Interview — John Doe
                    team_member: null
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    calendar_event_details:
                      start_time: '2024-01-18T14:00:00Z'
                      end_time: '2024-01-18T15:00:00Z'
                      location: Google Meet
                      description: Technical screen for Senior SWE position.
                      conferencing:
                        provider: Google Meet
                        url: https://meet.google.com/abc-defg-hij
                      is_shadow_invite: false
                  - id: eee55555-ffff-0000-1111-222222225555
                    activity_type: sequence_enrollment
                    created_at: '2024-01-10T08:00:00Z'
                    updated_at: '2024-01-10T08:00:00Z'
                    activity_content: Enrolled in Outreach Campaign Q1 — active
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    sequence_enrollment_details:
                      sequence_id: aaa11111-bbbb-cccc-dddd-eeeeeeee1111
                      sequence_name: Outreach Campaign Q1
                      status: active
                  - id: fff66666-0000-1111-2222-333333336666
                    activity_type: pipeline_status
                    created_at: '2024-01-15T10:00:00Z'
                    updated_at: '2024-01-15T10:00:00Z'
                    activity_content: Moved to Technical Interview
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    pipeline_status_details:
                      stage_name: Technical Interview
                      is_rejection_stage: false
                      entered_at: '2024-01-15T10:00:00Z'
                      exited_at: null
                      reason_text: null
                  - id: 00077777-1111-2222-3333-444444447777
                    activity_type: assessment
                    created_at: '2024-01-19T11:30:00Z'
                    updated_at: '2024-01-19T11:30:00Z'
                    activity_content: Technical Assessment — 4/5
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                    assessment_details:
                      score: 4
                      template_name: Technical Assessment
                      template_id: bbb22222-cccc-dddd-eeee-ffffffff2222
                      rating_scale: 5
                      assessor:
                        id: 234e5678-e90a-12b3-c456-789012345678
                        name: Jane Smith
                      candidate_id: 789e0123-e45f-67a8-b901-234567890123
                      assessment_content: >-
                        Strong candidate for the role. Problem Solving: Strong
                        analytical skills. Communication: Clear and concise.
                      overall_comment:
                        content_text: Strong candidate for the role.
                      criteria:
                        - id: eee55555-6666-7777-8888-999999990001
                          name: Problem Solving
                          importance: must_have
                          position: 1
                          rating: 4
                          comment:
                            content_text: Strong analytical skills.
                        - id: eee55555-6666-7777-8888-999999990002
                          name: Communication
                          importance: nice_to_have
                          position: 2
                          rating: 5
                          comment:
                            content_text: Clear and concise.
                  - id: 11188888-2222-3333-4444-555555558888
                    activity_type: linkedin_message
                    created_at: '2024-01-09T15:00:00Z'
                    updated_at: '2024-01-09T15:00:00Z'
                    activity_content: >-
                      Hi John, I came across your profile and would love to
                      connect.
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                  - id: 22299999-3333-4444-5555-66666666aaaa
                    activity_type: client_rating
                    created_at: '2024-01-20T09:00:00Z'
                    updated_at: '2024-01-20T09:00:00Z'
                    activity_content: 4 stars
                    team_member: null
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                  - id: 333aaaaa-4444-5555-6666-77777777bbbb
                    activity_type: candidate_summary
                    created_at: '2024-01-11T12:00:00Z'
                    updated_at: '2024-01-11T12:00:00Z'
                    activity_content: >-
                      Strong backend engineer with 8 years of experience in
                      distributed systems.
                    team_member:
                      id: 234e5678-e90a-12b3-c456-789012345678
                      name: Jane Smith
                    job:
                      id: 345e6789-e01b-23c4-d567-890123456789
                      title: Senior Software Engineer
                      company_name: StartupXYZ
                meta:
                  total: 48
                  offset: 0
                  limit: 20
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
components:
  schemas:
    PersonActivitiesResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: array
          items:
            $ref: '#/components/schemas/Activity'
        meta:
          type: object
          properties:
            total:
              type: number
              description: Total matching records across all pages.
            offset:
              type: number
              description: Current pagination offset.
            limit:
              type: number
              description: Page size used for this request.
          required:
            - total
            - offset
            - limit
      required:
        - success
        - data
        - meta
    Activity:
      type: object
      properties:
        id:
          type: string
        activity_type:
          type: string
          description: >-
            Activity type key. Notes: primary_note, secondary_note,
            interview_note, call_note, meeting_note, client_note,
            client_created_note, candidate_summary, meeting_transcript,
            client_rating. Communication: email, email_response,
            linkedin_message, linkedin_message_response, text_message.
            Synthetic: task, calendar_event, sequence_enrollment,
            pipeline_status, assessment.
        created_at:
          type: string
          description: ISO 8601 timestamp.
        updated_at:
          type:
            - string
            - 'null'
          description: >-
            Last modification timestamp. Compare with created_at to detect
            edited activities.
        activity_content:
          type: string
          description: Plain text content — the body/summary of the activity.
        activity_content_match:
          type: string
          description: >-
            Present only when a `search` filter matched this activity. The
            passage where the search terms cluster, so the relevant section
            surfaces even when activity_content is long.
        team_member:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              description: Team member UUID. Matches IDs from GET /v1/team-members.
            name:
              type: string
              description: Team member full name.
          required:
            - id
            - name
          description: Team member who created or owns this activity.
        job:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              description: Job UUID. Use in GET /v1/jobs/{id} for full job details.
            title:
              type: string
              description: Job title.
            company_name:
              type:
                - string
                - 'null'
              description: Client company name for this job.
          required:
            - id
            - title
            - company_name
          description: Associated job, if any.
        email_details:
          type: object
          properties:
            subject:
              type:
                - string
                - 'null'
            from_email:
              type:
                - string
                - 'null'
            to_email:
              type:
                - string
                - 'null'
            status:
              type:
                - string
                - 'null'
              description: '"sent", "opened", "replied", "bounced", etc.'
          required:
            - subject
            - from_email
            - to_email
            - status
          description: Present only when activity_type is "email" or "email_response".
        task_details:
          type: object
          properties:
            status:
              type: string
              description: '"open" or "completed".'
            due_date:
              type:
                - string
                - 'null'
              description: ISO 8601 due date.
            task_type:
              type:
                - string
                - 'null'
              description: '"follow_up", "call", "email", "meeting", "other", etc.'
            assigned_to:
              type:
                - object
                - 'null'
              properties:
                id:
                  type: string
                  description: Team member UUID. Matches IDs from GET /v1/team-members.
                name:
                  type: string
                  description: Team member full name.
              required:
                - id
                - name
          required:
            - status
            - due_date
            - task_type
            - assigned_to
          description: Present only when activity_type is "task".
        calendar_event_details:
          type: object
          properties:
            start_time:
              type: string
              description: ISO 8601 start time.
            end_time:
              type: string
              description: ISO 8601 end time.
            location:
              type:
                - string
                - 'null'
            description:
              type:
                - string
                - 'null'
              description: Event description.
            conferencing:
              description: Conferencing details (provider, URL).
            is_shadow_invite:
              type: boolean
              description: >-
                When true, the event exists only on the organizer's calendar.
                Attendees are linked for activity tracking but were not invited
                and cannot see it on their calendar.
          required:
            - start_time
            - end_time
            - location
            - description
            - is_shadow_invite
          description: Present only when activity_type is "calendar_event".
        sequence_enrollment_details:
          type: object
          properties:
            sequence_id:
              type: string
            sequence_name:
              type: string
            status:
              type:
                - string
                - 'null'
              description: >-
                "active", "completed", "paused", "bounced", "replied", "failed",
                etc.
          required:
            - sequence_id
            - sequence_name
            - status
          description: Present only when activity_type is "sequence_enrollment".
        pipeline_status_details:
          type: object
          properties:
            stage_name:
              type:
                - string
                - 'null'
            is_rejection_stage:
              type:
                - boolean
                - 'null'
            entered_at:
              type: string
              description: ISO 8601 when candidate entered this stage.
            exited_at:
              type:
                - string
                - 'null'
              description: Null if still in stage.
            reason_text:
              type:
                - string
                - 'null'
              description: Free-text rejection or stage-change reason.
          required:
            - stage_name
            - is_rejection_stage
            - entered_at
            - exited_at
            - reason_text
          description: Present only when activity_type is "pipeline_status".
        assessment_details:
          type: object
          properties:
            score:
              type:
                - number
                - 'null'
              description: Rater's overall score, 0..rating_scale.
            template_name:
              type:
                - string
                - 'null'
            template_id:
              type:
                - string
                - 'null'
              format: uuid
              description: Assessment template UUID.
            rating_scale:
              type:
                - number
                - 'null'
              description: >-
                Maximum possible score on this template (3, 4, 5 or 10). Use to
                interpret `score` and `criteria[].rating`.
            assessor:
              type:
                - object
                - 'null'
              properties:
                id:
                  type: string
                  description: Team member UUID. Matches IDs from GET /v1/team-members.
                name:
                  type: string
                  description: Team member full name.
              required:
                - id
                - name
            candidate_id:
              type:
                - string
                - 'null'
              description: Candidate ID for this assessment.
            assessment_content:
              type: string
              description: >-
                Concatenated plain-text view of overall and per-criterion
                comments, in display order. Useful for previews and search;
                numeric scores live in `score` and `criteria[].rating`.
            overall_comment:
              type:
                - object
                - 'null'
              properties:
                content_text:
                  type: string
                  description: Plain-text view of the comment, derived from the tiptap doc.
              required:
                - content_text
              description: Rater's overall comment. Null when no comment was given.
            criteria:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Criterion UUID.
                  name:
                    type: string
                    description: Criterion display name.
                  importance:
                    type: string
                    enum:
                      - must_have
                      - nice_to_have
                    description: >-
                      Whether this criterion is a must-have or nice-to-have on
                      the template.
                  position:
                    type: number
                    description: Display order on the template (smaller = shown first).
                  rating:
                    type:
                      - number
                      - 'null'
                    description: >-
                      Rater's score for this criterion (0..rating_scale,
                      half-step). Null when only a comment was given.
                  comment:
                    type:
                      - object
                      - 'null'
                    properties:
                      content_text:
                        type: string
                        description: >-
                          Plain-text view of the comment, derived from the
                          tiptap doc.
                    required:
                      - content_text
                    description: Per-criterion comment. Null when no comment was given.
                required:
                  - id
                  - name
                  - importance
                  - position
                  - rating
                  - comment
              description: >-
                Per-criterion ratings sorted by template position. Empty array
                when the template has no criteria.
          required:
            - score
            - template_name
            - template_id
            - rating_scale
            - assessor
            - candidate_id
            - assessment_content
            - overall_comment
            - criteria
          description: Present only when activity_type is "assessment".
      required:
        - id
        - activity_type
        - created_at
        - updated_at
        - activity_content
        - team_member
        - job
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authenticate with a Bearer token: API key, OAuth token, or session
        token.

````