FullEnrich Contact Enrichment API

Submit contacts for waterfall enrichment and retrieve results.

OpenAPI Specification

fullenrich-contact-enrichment-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: FullEnrich Account Contact Enrichment API
  description: FullEnrich finds verified B2B business emails and mobile phone numbers by running a waterfall across 15+ data vendors. Submit contacts by first name, last name and company (domain or company name) — optionally with a LinkedIn URL — for bulk enrichment, then retrieve results by polling or via webhook. Credits are only consumed when data is found.
  termsOfService: https://fullenrich.com/terms
  contact:
    name: FullEnrich Support
    url: https://docs.fullenrich.com
  version: '2.0'
servers:
- url: https://app.fullenrich.com/api/v2
  description: FullEnrich production API
security:
- bearerAuth: []
tags:
- name: Contact Enrichment
  description: Submit contacts for waterfall enrichment and retrieve results.
paths:
  /contact/enrich/bulk:
    post:
      operationId: startBulkEnrichment
      tags:
      - Contact Enrichment
      summary: Start a bulk contact enrichment
      description: Submit up to 100 contacts for waterfall enrichment. Each contact needs first_name and last_name plus either domain or company_name, or a linkedin_url. Returns an enrichment_id used to retrieve results.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkEnrichmentRequest'
      responses:
        '200':
          description: Enrichment job accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichmentAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
    get:
      operationId: getBulkEnrichmentByQuery
      tags:
      - Contact Enrichment
      summary: Get bulk enrichment results by enrichment id
      description: Retrieve the results of a bulk enrichment. The enrichment_id may be supplied as a path segment (/contact/enrich/bulk/{enrichment_id}) or as a query parameter, depending on client convention.
      parameters:
      - name: enrichment_id
        in: query
        required: true
        description: The enrichment_id returned when the enrichment was started.
        schema:
          type: string
          format: uuid
      - name: forceResults
        in: query
        required: false
        description: Return partial results even if the enrichment is not finished.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Enrichment results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichmentResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
  /contact/enrich/bulk/{enrichment_id}:
    get:
      operationId: getBulkEnrichment
      tags:
      - Contact Enrichment
      summary: Get bulk enrichment results
      description: Retrieve the results of a bulk enrichment by its enrichment_id. The response includes the run status, credits consumed, and per-contact enriched contact info and profile data.
      parameters:
      - name: enrichment_id
        in: path
        required: true
        description: The unique identifier returned when the enrichment was started.
        schema:
          type: string
          format: uuid
      - name: forceResults
        in: query
        required: false
        description: Return partial results even if the enrichment is not finished.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Enrichment results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichmentResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    EnrichmentResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        status:
          type: string
          enum:
          - CREATED
          - IN_PROGRESS
          - CANCELED
          - CREDITS_INSUFFICIENT
          - FINISHED
          - RATE_LIMIT
          - UNKNOWN
        cost:
          type: object
          properties:
            credits:
              type: integer
              description: Total credits consumed by this enrichment.
        data:
          type: array
          items:
            $ref: '#/components/schemas/EnrichedContact'
    EnrichmentAccepted:
      type: object
      properties:
        enrichment_id:
          type: string
          format: uuid
          example: 2db5ea61-1752-42cf-8ea1-ab1da060cd0a
    Error:
      type: object
      properties:
        code:
          type: string
          example: error.unauthorized
        message:
          type: string
          example: Invalid API key
    ContactInput:
      type: object
      description: A contact to enrich. Provide first_name and last_name plus either domain or company_name, or provide a linkedin_url.
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        domain:
          type: string
          description: Company website domain.
          example: acme.com
        company_name:
          type: string
          example: Acme Inc
        linkedin_url:
          type: string
          format: uri
          description: LinkedIn profile URL to improve email and phone match rates.
          example: https://www.linkedin.com/in/johndoe
        enrich_fields:
          type: array
          description: Which data types to retrieve.
          items:
            type: string
            enum:
            - contact.work_emails
            - contact.personal_emails
            - contact.phones
          example:
          - contact.work_emails
          - contact.phones
        custom:
          type: object
          description: Reference data (e.g. CRM IDs) echoed back in the result. String values only; max 10 keys, up to 100 chars per value.
          additionalProperties:
            type: string
    EnrichedContact:
      type: object
      properties:
        input:
          type: object
          properties:
            first_name:
              type: string
            last_name:
              type: string
            full_name:
              type: string
            company_domain:
              type: string
            company_name:
              type: string
            professional_network_url:
              type: string
        custom:
          type: object
          description: The custom object supplied in the request, echoed back unchanged.
          additionalProperties:
            type: string
        contact_info:
          $ref: '#/components/schemas/ContactInfo'
        profile:
          $ref: '#/components/schemas/Profile'
    Profile:
      type: object
      properties:
        id:
          type: string
          format: uuid
        full_name:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        location:
          type: object
          properties:
            country:
              type: string
            country_code:
              type: string
            city:
              type: string
            region:
              type: string
        social_profiles:
          type: object
          properties:
            professional_network:
              type: object
              properties:
                id:
                  type: integer
                url:
                  type: string
                handle:
                  type: string
                connection_count:
                  type: integer
        skills:
          type: array
          items:
            type: string
        employment:
          type: object
          properties:
            current:
              $ref: '#/components/schemas/Employment'
            all:
              type: array
              items:
                $ref: '#/components/schemas/Employment'
    EmailResult:
      type: object
      properties:
        email:
          type: string
          format: email
        status:
          type: string
          enum:
          - DELIVERABLE
          - HIGH_PROBABILITY
          - CATCH_ALL
          - INVALID
          - INVALID_DOMAIN
    Employment:
      type: object
      properties:
        title:
          type: string
        is_current:
          type: boolean
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
        company:
          type: object
          properties:
            name:
              type: string
            domain:
              type: string
    ContactInfo:
      type: object
      properties:
        most_probable_work_email:
          $ref: '#/components/schemas/EmailResult'
        most_probable_personal_email:
          $ref: '#/components/schemas/EmailResult'
        most_probable_phone:
          $ref: '#/components/schemas/PhoneResult'
        work_emails:
          type: array
          items:
            $ref: '#/components/schemas/EmailResult'
        personal_emails:
          type: array
          items:
            $ref: '#/components/schemas/EmailResult'
        phones:
          type: array
          items:
            $ref: '#/components/schemas/PhoneResult'
    PhoneResult:
      type: object
      properties:
        number:
          type: string
          description: Phone number in E.164 format.
          example: '+14155552671'
        region:
          type: string
          description: ISO country code for the number.
          example: US
    BulkEnrichmentRequest:
      type: object
      required:
      - name
      - data
      properties:
        name:
          type: string
          description: A readable identifier for this enrichment, visible in your dashboard.
          example: My enrichment batch
        webhook_url:
          type: string
          format: uri
          description: URL that receives a POST when the enrichment finishes, lacks credits, or is canceled.
          example: https://example.com/webhooks/fullenrich
        webhook_events:
          type: object
          description: Optional per-event webhook URLs.
          properties:
            contact_finished:
              type: string
              format: uri
              description: URL called as each individual contact finishes.
        data:
          type: array
          description: Up to 100 contacts to enrich.
          maxItems: 100
          items:
            $ref: '#/components/schemas/ContactInput'
  responses:
    NotFound:
      description: Enrichment id not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authorization failed (missing header or invalid API key).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request or enrichment still in progress.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentRequired:
      description: Payment required (insufficient credits).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Pass your API key from the FullEnrich dashboard as a Bearer token in the Authorization header: `Authorization: Bearer YOUR_API_KEY`.'
Where this information came from

This is an independent, third-party profile of FullEnrich Contact Enrichment API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.