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

# Resolve Profile from Email

> Resolve a person's LinkedIn profile, title, company, and location from their email (or name + company / LinkedIn URL) using Octave's enrichment data. Supports a confidence threshold and an optional thorough effort mode with LLM validation. Charges credits only when a profile is found at or above the requested confidence.



## OpenAPI

````yaml post /api/v2/person/resolve-profile
openapi: 3.0.0
info:
  version: 1.0.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/person/resolve-profile:
    post:
      tags:
        - Research
      summary: Resolve Profile from Email
      description: >-
        Resolve a person's LinkedIn profile, title, company, and location from
        their email (or name + company / LinkedIn URL) using Octave's enrichment
        data. Supports a confidence threshold and an optional thorough effort
        mode with LLM validation. Charges credits only when a profile is found
        at or above the requested confidence.
      operationId: resolveProfile
      requestBody:
        description: Identifiers to resolve a profile from
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  nullable: true
                  format: email
                  description: >-
                    Email address to resolve a profile from. The primary
                    identifier for the signup use case.
                  example: jane@acme.com
                firstName:
                  type: string
                  nullable: true
                  description: Optional first name to improve match accuracy
                lastName:
                  type: string
                  nullable: true
                  description: Optional last name to improve match accuracy
                linkedInProfile:
                  type: string
                  nullable: true
                  description: >-
                    Optional LinkedIn profile URL or slug. When provided it is
                    the strongest identifier.
                  example: https://www.linkedin.com/in/jane-doe
                companyName:
                  type: string
                  nullable: true
                  description: Optional company name to disambiguate
                companyDomain:
                  type: string
                  nullable: true
                  description: Optional company domain to disambiguate
                minConfidence:
                  type: string
                  enum:
                    - LOW
                    - MEDIUM
                    - HIGH
                  default: LOW
                  description: >-
                    Minimum match confidence required for a result to count as
                    found. Matches below this are returned as found=false (no
                    credits charged).
                effort:
                  type: string
                  enum:
                    - standard
                    - thorough
                  default: standard
                  description: >-
                    `standard` does a single exact lookup; `thorough` adds
                    fallback strategies and an LLM validation pass.
      responses:
        '200':
          description: Resolution result (found may be false)
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  found:
                    type: boolean
                    description: Whether a profile met the confidence threshold
                  profile:
                    $ref: '#/components/schemas/ResolvedProfile'
                  confidence:
                    type: string
                    nullable: true
                    enum:
                      - LOW
                      - MEDIUM
                      - HIGH
                      - null
                    description: Confidence of the (best) match, if any
                  meetsConfidenceThreshold:
                    type: boolean
                    description: >-
                      Whether the best match's confidence is >= the requested
                      minConfidence
                  effort:
                    type: string
                    enum:
                      - standard
                      - thorough
                  creditsCharged:
                    type: number
                    description: Credits charged for this call (0 if not found)
                  message:
                    type: string
                    nullable: true
                required:
                  - _metadata
                  - found
                  - meetsConfidenceThreshold
                  - effort
                  - creditsCharged
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    ResolvedProfile:
      type: object
      nullable: true
      properties:
        firstName:
          type: string
          nullable: true
          example: Jane
        lastName:
          type: string
          nullable: true
          example: Doe
        fullName:
          type: string
          nullable: true
          example: Jane Doe
        title:
          type: string
          nullable: true
          example: VP of Engineering
        headline:
          type: string
          nullable: true
          description: LinkedIn headline
        seniority:
          type: string
          nullable: true
          description: Normalized current seniority
        jobFunction:
          type: string
          nullable: true
          description: Normalized current job function
        linkedInUrl:
          type: string
          nullable: true
          example: https://www.linkedin.com/in/jane-doe
        linkedInSlug:
          type: string
          nullable: true
          example: jane-doe
        companyName:
          type: string
          nullable: true
          example: Acme
        companyDomain:
          type: string
          nullable: true
          example: acme.com
        companyLinkedInUrl:
          type: string
          nullable: true
        location:
          type: string
          nullable: true
          example: San Francisco, CA
        city:
          type: string
          nullable: true
          example: San Francisco
        countryCode:
          type: string
          nullable: true
          example: US
        summary:
          type: string
          nullable: true
        photoUrl:
          type: string
          nullable: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````