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

# Start People Intelligence

> Starts intelligence research on a person and returns a job to poll.



## OpenAPI

````yaml /openapi.json post /v1/people-intelligence
openapi: 3.1.0
info:
  title: Sixtyfour API
  description: >-
    Intelligence API for people and companies: research agents that investigate,
    resolve identities, map relationships and surface risk signals.
  contact:
    name: Sixtyfour
    url: https://sixtyfour.ai/
    email: support@sixtyfour.ai
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sixtyfour.ai
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Enrichment
    description: Find and enrich emails, phones, and LinkedIn for people and companies.
  - name: Search
    description: Run deep and filter searches over Sixtyfour's data.
  - name: Workflow
    description: Create, run, and manage enrichment workflows.
  - name: Workflow Schedules
    description: Create and manage recurring schedules for workflows.
  - name: Account
    description: Manage and inspect your account and credit balance.
  - name: Feedback
    description: >-
      Tell us a result was wrong, missing or outdated, and report problems with
      the API, the docs or a tool.
  - name: Intelligence
    description: Verify identity attributes such as age using high-tier OSINT research.
  - name: Atlas
    description: >-
      Start, continue and read Atlas investigations: attribution graph,
      workspace files, reports and exports.
paths:
  /v1/people-intelligence:
    post:
      tags:
        - Jobs
      summary: Start People Intelligence
      description: Starts intelligence research on a person and returns a job to poll.
      operationId: start_people_intelligence_v1_people_intelligence_post
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 1
                maxLength: 255
              - type: 'null'
            description: >-
              - Scoped to organization + operation.

              - Same key + body: same job, no new charge, `Idempotent-Replayed:
              true`.

              - Different body: 409 `idempotency_key_reused`.

              - Uploads must match filename + contents.

              - Omit for no replay protection.

              - JSON replay lasts through the workflow retention window; CSV
              replay lasts 24 hours.
            title: Idempotency-Key
          description: >-
            - Scoped to organization + operation.

            - Same key + body: same job, no new charge, `Idempotent-Replayed:
            true`.

            - Different body: 409 `idempotency_key_reused`.

            - Uploads must match filename + contents.

            - Omit for no replay protection.

            - JSON replay lasts through the workflow retention window; CSV
            replay lasts 24 hours.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1EnrichLeadInfo'
            example:
              lead_info:
                name: Jane Doe
                company: Acme Robotics
              struct:
                title: Current title
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
              example:
                job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
                status: running
                created_at: '2026-11-03T18:04:12Z'
                next_poll_after: 5
          headers:
            Location:
              schema:
                type: string
              description: URL to poll for this job.
            Retry-After:
              schema:
                type: integer
              description: Seconds before polling again.
            Idempotent-Replayed:
              schema:
                type: boolean
              description: True when this submission replays an existing job.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Unauthorized
        '402':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Payment Required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
              example:
                detail: >-
                  This Idempotency-Key is already in use. Use a new key for a
                  new request.
                error_code: idempotency_key_reused
                request_id: enrich_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
                retryable: false
                param: null
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobValidationError'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Service Unavailable
components:
  schemas:
    V1EnrichLeadInfo:
      properties:
        struct:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Struct
          description: >-
            Fields to return: output field name to a description of what to
            find. An image field returns a
            `https://api.sixtyfour.ai/v1/media/...` URL you can embed. Required
            except on Atlas runs (`xhigh`, or `scout` with `graph`).
        research_plan:
          anyOf:
            - type: string
              maxLength: 100000
            - type: 'null'
          title: Research Plan
          description: 'A plan, in plain language, that guides the research. Default: none.'
        tier:
          anyOf:
            - type: string
              enum:
                - low
                - micro
                - medium
                - high
                - xhigh
                - scout
            - type: 'null'
          title: Tier
          description: >-
            Research depth and price. See [Credits &
            Pricing](/guides/credits-and-pricing). Default: `low`.
        webhook_url:
          anyOf:
            - type: string
              maxLength: 2048
              minLength: 1
              format: uri
            - type: 'null'
          title: Webhook Url
          description: >-
            HTTPS URL that receives the result when the job completes. Default:
            none.
        field_confidence:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Field Confidence
          description: >-
            If true, returns each requested field's confidence (0-100),
            justification and source URLs, nested like the request. Default:
            false.
        lead_info:
          additionalProperties: true
          type: object
          title: Lead Info
          description: >-
            The person to look up: any combination of `name`, `email`,
            `company`, `linkedin` and other known details.
        graph:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Graph
          description: >-
            `scout` only. If true, runs Scout as an Atlas investigation, billed
            per unit of research. It enables the Atlas run options
            (`max_credits`, `max_minutes`, `relentless`, `investigation_id`,
            `investigation_name`, `include_workspace`), makes `struct` optional,
            and the async response returns the `investigation`. Requires Scout
            in Atlas for your organization. If false or omitted, Scout runs as
            usual.
        include_workspace:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Include Workspace
          description: >-
            Atlas runs only. If true, includes the investigation's workspace
            files in the result; they are read from the investigation, so they
            include later runs' changes. Default: true.
        investigation_id:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
          title: Investigation Id
          description: >-
            Atlas runs only: continues this investigation, reusing its graph and
            workspace, instead of creating one. Default: creates one.
        investigation_name:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Investigation Name
          description: >-
            Atlas runs only: the title of a new investigation. Ignored with
            `investigation_id`. Default: taken from `lead_info`.
        private:
          type: boolean
          title: Private
          description: >-
            If true, shows the run's result, status and usage log only to you
            (with an API key, to the key's creator). Your team must allow
            private runs. Atlas runs need the async endpoint and a new
            investigation.
          default: false
        connections:
          anyOf:
            - items:
                type: string
                maxLength: 63
              type: array
              maxItems: 10
            - type: 'null'
          title: Connections
          description: >-
            Your team's connected APIs the run's agents may call, by name. Leave
            it out to allow all of them; an empty list allows none. Taken by
            `xhigh`, by `scout` with `graph`, and by `high`; refused on other
            tiers.
        relentless:
          type: boolean
          title: Relentless
          description: >-
            Atlas runs with `struct` only. If true, researches until the budget
            runs out. If false, a run may stop once every requested field is
            answered, and is charged for the research it used (at least one
            unit). Default: false.
          default: false
        agent_trace:
          type: boolean
          title: Agent Trace
          description: >-
            Atlas runs only. If true, the investigation's Agents tab in Atlas
            shows a short, readable summary of each agent's reasoning and
            actions as it works. The trace is for people reading along: it does
            not change the research or the results. Leave it off when you only
            read results through the API. Default: false.
          default: false
        generate_report:
          type: boolean
          title: Generate Report
          description: >-
            Atlas runs only. If true, starts the investigation's PDF
            intelligence report when research completes. You can also generate
            one at any time with `POST
            /investigations/{investigation_id}/report` or from the Report tab in
            Atlas. Default: false.
          default: false
        max_credits:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Credits
          description: >-
            Atlas runs only: research budget in credits, from one to 10 units of
            the tier price. Default: one unit. The whole budget is used and
            charged unless the run stops early (see `relentless` and
            `max_minutes`).
        max_minutes:
          anyOf:
            - type: integer
              maximum: 1440
              minimum: 10
            - type: 'null'
          title: Max Minutes
          description: >-
            Atlas runs only: the most minutes of research time; waiting to retry
            does not count. When reached, the run writes up its findings, which
            can take a few minutes, and is charged only for the research it
            used. Default: no limit.
        skills:
          anyOf:
            - items:
                type: string
                maxLength: 74
                minLength: 1
              type: array
            - type: 'null'
          title: Skills
          description: >-
            Skills the run's agents follow, by name: `team/<name>` for one of
            your team's skills, `sixtyfour/<name>` for one of ours. Up to 25,000
            tokens in total. Taken by `xhigh`, by `scout` with `graph`, and by
            `high`; refused on other tiers.
        exclusive_run:
          type: boolean
          title: Exclusive Run
          description: >-
            Atlas runs on an existing investigation only. If true, returns 409
            while that investigation has a run starting or running, instead of
            starting and charging a second one. Default: false.
          default: false
      additionalProperties: true
      type: object
      required:
        - lead_info
      title: V1EnrichLeadInfo
      examples:
        - lead_info:
            company: Sixtyfour
            linkedin: https://www.linkedin.com/in/saarthshah
            name: Saarth Shah
          struct:
            company: The company the individual works at
            linkedin: LinkedIn URL for the person
            name: The individual's full name
            title: The individual's current job title
            website: Company website URL
          tier: medium
    Job:
      properties:
        job_id:
          type: string
          title: Job Id
          description: >-
            Job identifier, normally prefixed with `job_`. Store it exactly as
            returned. GET /v1/jobs/{job_id} also accepts IDs returned by
            unversioned endpoints.
        status:
          type: string
          enum:
            - queued
            - running
            - succeeded
            - failed
            - canceled
          title: Status
          description: >-
            `queued`: accepted and waiting to start. `running`: work is in
            progress. `succeeded`: work finished successfully. `failed`: work
            ended with an error. `canceled`: work was canceled. The last three
            states are terminal; stop polling.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: UTC timestamp when the job was created, in ISO 8601 format.
        next_poll_after:
          anyOf:
            - type: integer
            - type: 'null'
          title: Next Poll After
          description: >-
            Seconds before polling again while queued or running; omitted for
            terminal states.
        progress:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Progress
          description: >-
            Operation-specific progress while queued or running; omitted when
            unavailable.
        result:
          title: Result
          description: >-
            Successful output when available; bulk jobs may return download
            links.
        error:
          anyOf:
            - $ref: '#/components/schemas/JobError'
            - type: 'null'
          description: Failure details when available; omitted otherwise.
      type: object
      required:
        - job_id
        - status
        - created_at
      title: Job
      examples:
        - job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
          status: running
          created_at: '2026-11-03T18:04:12Z'
          next_poll_after: 5
        - job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
          status: succeeded
          created_at: '2026-11-03T18:04:12Z'
          result:
            structured_data:
              name: Saarth Shah
              title: CEO & Co-Founder
              company: Sixtyfour
              linkedin: https://www.linkedin.com/in/saarthshah
            notes: >-
              Confirmed current role from the LinkedIn profile and the company
              site.
            references:
              https://www.linkedin.com/in/saarthshah: LinkedIn profile with current title
            confidence_score: 9
    PublicJobError:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of why the request failed.
        error_code:
          type: string
          title: Error Code
          description: >-
            Stable error code for handling the failure in code. Do not branch on
            the wording of `detail`.
        request_id:
          type: string
          title: Request Id
          description: >-
            Request identifier, equal to the X-Request-Id response header. Quote
            this value when contacting support.
        retryable:
          type: boolean
          title: Retryable
          description: >-
            If true, retrying the request can succeed without changing its
            inputs; respect Retry-After when present. If false, correct the
            request or resolve the reported condition before retrying.
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: >-
            Dot-separated path to the parameter that caused the error, such as
            `body.lead` or `header.Idempotency-Key`. Null when the error is not
            tied to a parameter.
      type: object
      required:
        - detail
        - error_code
        - request_id
        - retryable
      title: PublicJobError
    PublicJobValidationError:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of why the request failed.
        error_code:
          type: string
          title: Error Code
          description: >-
            Stable error code for handling the failure in code. Do not branch on
            the wording of `detail`.
        request_id:
          type: string
          title: Request Id
          description: >-
            Request identifier, equal to the X-Request-Id response header. Quote
            this value when contacting support.
        retryable:
          type: boolean
          title: Retryable
          description: >-
            If true, retrying the request can succeed without changing its
            inputs; respect Retry-After when present. If false, correct the
            request or resolve the reported condition before retrying.
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: >-
            Dot-separated path to the parameter that caused the error, such as
            `body.lead` or `header.Idempotency-Key`. Null when the error is not
            tied to a parameter.
        errors:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Errors
          description: >-
            Individual validation failures, each with a parameter location
            (`loc`), message (`msg`), and error type (`type`).
      type: object
      required:
        - detail
        - error_code
        - request_id
        - retryable
        - errors
      title: PublicJobValidationError
    JobError:
      properties:
        error_code:
          type: string
          title: Error Code
          description: Stable error code for identifying the job failure in code.
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of the job failure.
      type: object
      required:
        - error_code
        - detail
      title: JobError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Sixtyfour API key.
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        An OAuth access token from `POST /oauth/token`, sent as `Authorization:
        Bearer <token>`. An API key sent as a bearer token is refused with 401.
        When both headers are sent, the bearer token is used.

````

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