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

# Get Enrichment Results

> Returns the current state of an enrichment run. Responds with 202 and status 'processing' while the run is in progress, or 200 with full per-profile results when it has completed.

Returns the current state of an enrichment run. While the run is in progress the response is `202 Accepted` with `status: "processing"`. Once finished it becomes `200 OK` with per-profile results.

## Overview

Use this endpoint to poll for enrichment results when you do not have a webhook configured. The `id` path parameter is the `requestId` returned by [POST /sourcing/enrich](/api-reference/sourcing/initiate-enrichment).

## Response Examples

### Still Processing (202 Accepted)

```json theme={null}
{
  "success": true,
  "requestId": "enr_550e8400-e29b-41d4-a716-446655440001",
  "status": "processing",
  "message": "Enrichment is in progress. Please poll again in a few seconds.",
  "createdAt": "2026-05-20T13:21:00.000Z"
}
```

### Completed (200 OK)

```json theme={null}
{
  "success": true,
  "requestId": "enr_550e8400-e29b-41d4-a716-446655440001",
  "status": "completed",
  "enrichedCount": 2,
  "failureCount": 0,
  "creditsConsumed": 2,
  "createdAt": "2026-05-20T13:21:00.000Z",
  "completedAt": "2026-05-20T13:21:22.000Z",
  "data": [
    {
      "profileId": "prof_a9238f82-a723",
      "success": true,
      "candidate": {
        "profileId": "prof_a9238f82-a723",
        "name": "Jane Doe",
        "linkedinUrl": "https://www.linkedin.com/in/janedoe-ml",
        "emails": ["jane.doe@techcorp.com", "jdoe.infra@gmail.com"],
        "headline": "Staff ML Infrastructure Engineer at TechCorp",
        "currentCompany": "TechCorp",
        "location": "Seattle, WA, USA",
        "matchScore": 96,
        "skills": ["vLLM", "PyTorch", "Kubernetes", "LLMs", "Vector Databases"],
        "detailedExperience": [
          {
            "role": "Staff ML Infrastructure Engineer",
            "company": "TechCorp",
            "duration": "2023 - Present",
            "highlights": [
              "Architected low-latency prompt caching server decreasing LLM inference cost by 42%.",
              "Deployed production-level multi-agent workflow system servicing 2M DAU."
            ]
          }
        ]
      }
    },
    {
      "profileId": "prof_e8321c12-b912",
      "success": true,
      "candidate": {
        "profileId": "prof_e8321c12-b912",
        "name": "Alex Smith",
        "linkedinUrl": "https://www.linkedin.com/in/alexsmith-ai",
        "emails": ["alex.smith@automateglobal.com"],
        "headline": "Senior AI Systems Engineer at AutomateGlobal",
        "currentCompany": "AutomateGlobal",
        "location": "Austin, TX, USA",
        "matchScore": 88,
        "skills": ["LangChain", "Python", "LlamaIndex", "FastAPI"]
      }
    }
  ]
}
```

### Completed with Partial Failure (200 OK)

```json theme={null}
{
  "success": true,
  "requestId": "enr_550e8400-e29b-41d4-a716-446655440001",
  "status": "completed",
  "enrichedCount": 1,
  "failureCount": 1,
  "creditsConsumed": 1,
  "createdAt": "2026-05-20T13:21:00.000Z",
  "completedAt": "2026-05-20T13:21:22.000Z",
  "data": [
    {
      "profileId": "prof_a9238f82-a723",
      "success": true,
      "candidate": { "..." : "..." }
    },
    {
      "profileId": "prof_unknown-xyz",
      "success": false,
      "errorCode": "PROFILE_NOT_FOUND",
      "errorMessage": "Profile not found in any sourcing session for this company."
    }
  ]
}
```

### Failed (200 OK with `status: "failed"`)

```json theme={null}
{
  "success": true,
  "requestId": "enr_550e8400-e29b-41d4-a716-446655440001",
  "status": "failed",
  "errorCode": "INTERNAL_ERROR",
  "errorMessage": "An unexpected error occurred during enrichment.",
  "createdAt": "2026-05-20T13:21:00.000Z",
  "completedAt": "2026-05-20T13:21:05.000Z"
}
```

## Partial Success vs. Run Failure

A `status: "completed"` response can include individual per-profile failures — those profiles have `success: false` in the `data` array and are not billed. A `status: "failed"` response indicates the entire run encountered an unrecoverable error before any profile could be processed.


## OpenAPI

````yaml GET /sourcing/enrich/{id}/results
openapi: 3.0.0
info:
  title: InstaView API
  description: |-
    InstaView API Documentation

    ## Authentication

    All endpoints require API key authentication using Bearer token:
    ```
    Authorization: Bearer sk_your_api_key_here
    ```

    ## API Key Management

    The API Key module provides comprehensive key management for:
    - **Direct Client Keys**: Company-scoped keys for your applications
    - **ATS Partner Keys**: Resource-scoped keys for ATS integrations

    ### Key Features
    - HMAC-SHA256 hashing for API key storage
    - Configurable rate limiting
    - Comprehensive audit logging
    - Company-level isolation
    - Resource scoping for ATS partners
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.instaview.sk
    description: Production API Gateway
security: []
tags: []
paths:
  /sourcing/enrich/{id}/results:
    get:
      tags:
        - Public Sourcing
      summary: Get enrichment results
      description: >-
        Returns the current state of an enrichment run. Responds with 202 and
        status 'processing' while the run is in progress, or 200 with full
        per-profile results when it has completed.
      operationId: PublicSourcingController_getEnrichResults_v1
      parameters:
        - name: id
          required: true
          in: path
          description: >-
            The requestId returned by POST /sourcing/enrich (e.g.
            enr_550e8400-…).
          schema:
            type: string
      responses:
        '200':
          description: Enrichment results (completed or failed)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicGetEnrichResultsResponseDto'
        '202':
          description: Enrichment run still in progress
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicGetEnrichResultsResponseDto'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - Insufficient scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found - Enrichment run not found or belongs to another company
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests - Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearer: []
components:
  schemas:
    PublicGetEnrichResultsResponseDto:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request succeeded.
          example: true
        requestId:
          type: string
          description: The enrichment run request ID.
          example: enr_550e8400-e29b-41d4-a716-446655440000
        status:
          type: string
          description: Current status of the enrichment run.
          enum:
            - processing
            - completed
            - failed
          example: processing
        message:
          type: string
          description: Human-readable message. Present while the run is still processing.
          example: Enrichment is in progress. Please poll again in a few seconds.
        createdAt:
          type: string
          description: ISO 8601 timestamp when the run was created.
          example: '2025-01-01T00:00:00.000Z'
        completedAt:
          type: string
          description: ISO 8601 timestamp when the run completed or failed.
          example: '2025-01-01T00:00:05.000Z'
        enrichedCount:
          type: integer
          description: Number of profiles successfully enriched.
          example: 3
        failureCount:
          type: integer
          description: Number of profiles that failed enrichment.
          example: 1
        creditsConsumed:
          type: integer
          description: Credits consumed by this enrichment run.
          example: 3
        data:
          type: array
          description: Per-profile enrichment results. Present when status = 'completed'.
          items:
            $ref: '#/components/schemas/PublicEnrichProfileResultDto'
        errorCode:
          type: string
          description: Machine-readable error code when status = 'failed'.
          example: INTERNAL_ERROR
        errorMessage:
          type: string
          description: Human-readable error message when status = 'failed'.
          example: An unexpected error occurred during enrichment.
      required:
        - success
        - requestId
        - status
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: Validation failed
        error:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
    PublicEnrichProfileResultDto:
      type: object
      properties:
        profileId:
          type: string
          description: The profile ID that was enriched.
          example: a1b2c3d4e5f6
        success:
          type: boolean
          description: Whether enrichment succeeded for this profile.
          example: true
        candidate:
          $ref: '#/components/schemas/PublicSourcingCandidateDto'
          description: >-
            Updated candidate data after enrichment. Present when success =
            true.
        errorCode:
          type: string
          description: Machine-readable error code when success = false.
          example: PROFILE_NOT_FOUND
        errorMessage:
          type: string
          description: Error message when success = false.
          example: Profile not found in any sourcing session for this company.
      required:
        - profileId
        - success
    PublicSourcingCandidateDto:
      type: object
      properties:
        profileId:
          type: string
          description: Opaque profile identifier (MD5 of LinkedIn URL).
          example: a1b2c3d4e5f6
        name:
          type: string
          description: Full name of the candidate.
          example: Jane Smith
        linkedinUrl:
          type: string
          description: LinkedIn profile URL.
          example: https://www.linkedin.com/in/janesmith
        matchScore:
          type: integer
          description: AI match score (0-100).
          example: 87
        rationale:
          type: string
          description: AI-generated rationale for the match.
          example: Strong fintech background with Node.js expertise.
        skills:
          type: array
          description: Primary skills extracted from the profile.
          items:
            type: string
          example:
            - Node.js
            - TypeScript
            - PostgreSQL
        headline:
          type: string
          description: Job headline or current title.
          example: Senior Software Engineer at Stripe
        location:
          type: string
          description: Candidate's location.
          example: San Francisco, CA
        currentCompany:
          type: string
          description: Candidate's current company.
          example: Stripe
        currentRole:
          type: string
          description: Candidate's current role/title.
          example: Senior Software Engineer
        aiFitPoints:
          type: array
          description: >-
            AI-generated fit points — specific reasons the candidate matches the
            role.
          items:
            type: string
          example:
            - 5+ years Node.js
            - FinTech background
        aiRedFlags:
          type: array
          description: AI-generated red flags or concerns about the candidate.
          items:
            type: string
          example:
            - No public cloud experience
        aiDetailedRationale:
          type: array
          description: AI-annotated relevant experience items from the candidate's history.
          items:
            $ref: '#/components/schemas/RelevantExperienceItem'
        detailedExperience:
          type: array
          description: >-
            Raw work history items scraped from the profile. Present after
            enrichment.
          items:
            $ref: '#/components/schemas/PublicDetailedExperienceItem'
        emails:
          type: array
          description: Discovered email addresses. Present after enrichment.
          items:
            type: string
          example:
            - jane.smith@example.com
      required:
        - profileId
        - name
    RelevantExperienceItem:
      type: object
      properties:
        title:
          type: string
          description: Job title
          example: Senior Developer
        company:
          type: string
          description: Company name
          example: Tech Corp
        duration:
          type: string
          description: Duration of the job
          example: 2 years
        relevanceExplanation:
          type: string
          description: Explanation of why this experience is relevant
          example: Led a team of 5 developers using Python/Django.
      required:
        - title
        - company
        - duration
        - relevanceExplanation
    PublicDetailedExperienceItem:
      type: object
      properties:
        role:
          type: string
          description: Job title / role.
          example: Staff ML Infrastructure Engineer
        company:
          type: string
          description: Company name.
          example: TechCorp
        duration:
          type: string
          description: Employment duration string.
          example: 2023 - Present
        highlights:
          type: array
          description: Notable accomplishments or responsibilities from this role.
          items:
            type: string
          example:
            - >-
              Architected low-latency prompt caching server decreasing LLM
              inference cost by 42%.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: API key for authentication using Bearer scheme

````