Ploid Enrichment API

The Enrichment API from Ploid — 1 operation(s) for enrichment.

Operations 1

POST /v1/enrich Enrich one person #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ploid:ploid-enrichment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ploid-enrichment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ploid Enrichment API
  version: 2.0.0
  description: 'Operations tagged Enrichment across 2 of this provider''s published API definitions: ploid-openapi.json, ploid-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ploid.com
security:
- bearerAuth: []
- apiKeyAuth: []
tags:
- name: Enrichment
paths:
  /v1/enrich:
    post:
      operationId: enrichPerson
      summary: Enrich one person
      description: Resolve contact fields for one person using a LinkedIn URL, permanent person_id, reverse email, or name plus company domain. Request work_email, personal_email, and/or phone; every field reports found, not_found, or unavailable with confidence, source, and last_seen. Responses include explicit usage.billed and usage.not_found. The legacy lightweight LinkedIn profile contract remains supported; use /v1/person for deep public evidence. Requires the people:enrich scope.
      tags:
      - Enrichment
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: Recommended on non-streaming POSTs. Reusing the same key and authenticated request within 24 hours replays the original response and bills once. Live SSE responses reject this header; use a durable async run for replayable work.
        schema:
          type: string
          maxLength: 255
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrichRequest'
      responses:
        '200':
          description: Enrichment results, including partial failures and clean not-found results. Complete provider failure returns 503.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichResponse'
            text/markdown:
              schema:
                type: string
        '401':
          description: Missing, invalid, expired, or revoked API credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '402':
          description: Public-API access is inactive, or the workspace has insufficient ACU or API-key budget.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '403':
          description: Missing people:enrich scope, reveal capability, or public-API access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '404':
          description: The supplied person_id could not be resolved in the caller's identity context.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '409':
          description: Idempotency-Key is in progress or was reused for a different request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '422':
          description: The request body, path parameters, or query parameters failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '429':
          description: The organization or API-key per-minute rate limit was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
        '503':
          description: All requested fields are unavailable, or enrichment exceeded its deadline. Retryable with Retry-After; unsuccessful fields are not billed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
    servers:
    - url: https://api.ploid.com
components:
  schemas:
    PublicApiError:
      type: object
      additionalProperties: false
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          - request_id
          properties:
            code:
              type: string
            message:
              type: string
            request_id:
              type: string
            http_status:
              type: integer
              minimum: 400
              maximum: 599
              description: Semantic status when an error terminates a response after streaming headers opened.
            retryable:
              type: boolean
            unavailable_fields:
              type: array
              items:
                type: string
                enum:
                - work_email
                - personal_email
                - phone
                - profile
                - email
              description: Requested enrichment fields that could not complete. Present when all requested fields are unavailable.
            usage:
              type: object
              additionalProperties: false
              required:
              - acu_used
              - billed
              - free
              - not_found
              properties:
                acu_used:
                  type: number
                  minimum: 0
                acu_remaining:
                  type: number
                  minimum: 0
                acu_value_usd:
                  type: number
                  const: 0.1
                billed:
                  type: array
                  items:
                    type: string
                free:
                  type: array
                  items:
                    type: string
                not_found:
                  type: array
                  items:
                    type: string
          additionalProperties: true
    EnrichResponse:
      oneOf:
      - $ref: '#/components/schemas/EnrichLegacyResponse'
      - $ref: '#/components/schemas/EnrichContactResponse'
    EnrichContactResponse:
      type: object
      additionalProperties: false
      required:
      - data
      - meta
      properties:
        data:
          type: object
          additionalProperties: false
          properties:
            work_email:
              $ref: '#/components/schemas/EnrichFieldResult'
            personal_email:
              $ref: '#/components/schemas/EnrichFieldResult'
            phone:
              $ref: '#/components/schemas/EnrichFieldResult'
          description: Only requested contact fields are present.
        meta:
          type: object
          additionalProperties: false
          required:
          - request_id
          - usage
          - warnings
          properties:
            request_id:
              type: string
            warnings:
              type: array
              items:
                type: string
            usage:
              type: object
              additionalProperties: false
              required:
              - acu_used
              - acu_remaining
              - acu_value_usd
              - billed
              - free
              - not_found
              properties:
                acu_used:
                  type: number
                  minimum: 0
                acu_remaining:
                  type:
                  - number
                  - 'null'
                  minimum: 0
                acu_value_usd:
                  type: number
                  const: 0.1
                billed:
                  type: array
                  items:
                    type: string
                    enum:
                    - work_email
                    - personal_email
                    - phone
                free:
                  type: array
                  items:
                    type: string
                not_found:
                  type: array
                  items:
                    type: string
                    enum:
                    - work_email
                    - personal_email
                    - phone
    EnrichContactRequest:
      type: object
      additionalProperties: false
      required:
      - fields
      properties:
        linkedin_url:
          type: string
          format: uri
          pattern: ^https?://(?:[^/]+\.)?linkedin\.com/in/[^/?#]+/?(?:[?#].*)?$
        person_id:
          type: string
          description: Permanent Ploid person id.
        email:
          type: string
          format: email
          description: Reverse contact lookup anchor.
        name:
          type: string
        company_domain:
          type: string
          pattern: ^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$
        first_name:
          type: string
        last_name:
          type: string
        fields:
          type: array
          minItems: 1
          maxItems: 3
          uniqueItems: true
          items:
            type: string
            enum:
            - work_email
            - personal_email
            - phone
        response_format:
          const: standard
      oneOf:
      - required:
        - linkedin_url
      - required:
        - person_id
      - required:
        - email
      - required:
        - name
        - company_domain
    EnrichContact:
      type: object
      additionalProperties: false
      required:
      - value
      - confidence
      - verification_status
      properties:
        value:
          type: string
        confidence:
          type: string
          enum:
          - guess
          - strong
          - verified
        verification_status:
          type: string
          enum:
          - matched
          - verified
    EnrichFieldResult:
      type: object
      additionalProperties: false
      required:
      - value
      - status
      - confidence
      - source
      - last_seen
      properties:
        value:
          type:
          - string
          - 'null'
        status:
          type: string
          enum:
          - found
          - not_found
          - unavailable
        confidence:
          type:
          - string
          - 'null'
          enum:
          - guess
          - strong
          - verified
          - null
        source:
          type:
          - string
          - 'null'
          enum:
          - contact_network
          - linked_profile
          - public_code
          - public_web
          - null
        last_seen:
          type:
          - string
          - 'null'
          format: date-time
    EnrichRequest:
      oneOf:
      - $ref: '#/components/schemas/EnrichLegacyRequest'
      - $ref: '#/components/schemas/EnrichContactRequest'
    EnrichLegacyResponse:
      type: object
      additionalProperties: false
      required:
      - data
      - meta
      properties:
        data:
          type: object
          additionalProperties: false
          properties:
            linkedin_profile:
              oneOf:
              - $ref: '#/components/schemas/EnrichLinkedInProfile'
              - type: 'null'
            email:
              oneOf:
              - $ref: '#/components/schemas/EnrichContact'
              - type: 'null'
            phone:
              oneOf:
              - $ref: '#/components/schemas/EnrichContact'
              - type: 'null'
          description: Only requested enrichment fields are present; an unavailable field is null.
        meta:
          type: object
          additionalProperties: false
          required:
          - request_id
          - acu_used
          - acu_remaining
          - acu_value_usd
          - warnings
          properties:
            request_id:
              type: string
            acu_used:
              type: number
              minimum: 0
            acu_remaining:
              type:
              - number
              - 'null'
              minimum: 0
            acu_value_usd:
              type: number
              const: 0.1
            warnings:
              type: array
              items:
                type: string
    EnrichLegacyRequest:
      type: object
      additionalProperties: false
      required:
      - linkedin_url
      properties:
        linkedin_url:
          type: string
          format: uri
          pattern: ^https?://(?:[^/]+\.)?linkedin\.com/in/[^/?#]+/?(?:[?#].*)?$
        first_name:
          type: string
        last_name:
          type: string
        enrichments:
          type: array
          minItems: 1
          maxItems: 3
          default:
          - profile
          items:
            type: string
            enum:
            - profile
            - linkedin_profile
            - email
            - phone
        response_format:
          type: string
          enum:
          - standard
          - markdown
          default: standard
    EnrichLinkedInProfile:
      type: object
      additionalProperties: false
      required:
      - linkedin_url
      - name
      - headline
      - company
      - location
      - photo_url
      - skills
      - companies
      - schools
      - total_years_experience
      - open_to_work
      - follower_count
      - verification_status
      properties:
        linkedin_url:
          type: string
          format: uri
        name:
          type: string
        headline:
          type:
          - string
          - 'null'
        company:
          type:
          - string
          - 'null'
        location:
          type:
          - string
          - 'null'
        photo_url:
          type:
          - string
          - 'null'
        skills:
          type: array
          items:
            type: string
        companies:
          type: array
          items:
            type: string
        schools:
          type: array
          items:
            type: string
        total_years_experience:
          type:
          - number
          - 'null'
          minimum: 0
        open_to_work:
          type: boolean
        follower_count:
          type:
          - number
          - 'null'
          minimum: 0
        verification_status:
          type: string
          const: refreshed
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
x-refined-from:
- ploid-openapi.json
- ploid-openapi.yml