Blackbaud Enrichment API

This API manages enrichment information and related entities, enabling users to enrich constituent data with analytics and predictive insights. To learn about how to set up your developer account and work with the SKY API, see the [Getting Started](https://developer.blackbaud.com/skyapi/docs/getting-started) guide.

Business capability
Customer Data Management BC-420.10

Operations 1

POST /v1/enrichment/identitythread/match Identity Thread (Match) (PREVIEW) #

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/blackbaud:blackbaud-enrichment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

blackbaud-enrichment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'Blackbaud SKY API: Enrichment API'
  description: This API manages enrichment information and related entities, enabling users to enrich constituent data with analytics and predictive insights. To learn about how to set up your developer account and work with the SKY API, see the Getting Started guide.
  version: '1.0'
  x-apievangelist-provenance:
    source: https://developer.sky.blackbaud.com/developer/apis/tap-enrch
    method: assembled from Blackbaud's public API Management developer data API (operations, parameters, representations, examples, stored definitions); nothing authored
    assembled: '2026-10-14'
servers:
- url: https://api.sky.blackbaud.com/enrichment
security:
- Bb-Api-Subscription-Key: []
  OAuth2: []
tags:
- name: Enrichment
paths:
  /v1/enrichment/identitythread/match:
    post:
      operationId: GetIdentityThreadMatch
      summary: Identity Thread (Match) (PREVIEW)
      description: 'Send up to 1000 records per request for identity thread matching.


        This API manages enrichment information and related entities, enabling users to pinpoint and track unique records across one or multiple databases to key individual or household accounts. To learn about how to set up your developer account and work with the SKY API, see the Getting Started guide.


        ***This endpoint is in PREVIEW and may be changed or removed at any time.***'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrichmentRequest'
            example:
              requested_records:
              - record_id: '10000001'
                first_name: John
                last_name: Doe
                address: 123 Main St
                city: Anytown
                state: ZZ
                zip_code: '55555'
                email: john.doe@example.com
              - record_id: '29041234'
                first_name: Jane
                last_name: Smith
                email: jane.smith@example.com
              - record_id: '19283746'
                phone: 555-555-5555
        description: The request containing records to match.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityThreadDataEnrichmentResponse'
              example:
                enriched_records:
                - appended_data:
                    individual_id: T138US02A1A1A1A1
                    individual_key_status: Maintained
                    household_id: T138US08B2B2B2B2
                    household_key_status: Maintained
                    match_confidence: 1
                  record_id: '10000001'
                  first_name: John
                  last_name: Doe
                  address: 123 Main St
                  city: Anytown
                  state: ZZ
                  zip_code: '55555'
                  email: example@example.com
                - appended_data:
                    individual_id: T138US02C3C3C3C3
                    individual_key_status: Maintained
                    household_id: T138US08D4D4D4D4
                    household_key_status: Maintained
                    match_confidence: 4
                  record_id: '29041234'
                  first_name: Jane
                  last_name: Smith
                  email: example2@example.com
                annual_contract_usage:
                  records_purchased: 25000000
                  records_used: 10126
                  records_remaining: 24989874
      tags:
      - Enrichment
components:
  schemas:
    EnrichmentRequest:
      required:
      - requested_records
      type: object
      properties:
        requested_records:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/EnrichmentRequestPerson'
          description: List of records to be matched. Can provide up to 1000 records.
      additionalProperties: false
      description: Enrichment request containing records to be matched.
    AnnualContractUsage:
      type: object
      properties:
        records_purchased:
          type: integer
          description: The total number of records purchased in the annual contract.
          format: int32
        records_used:
          type: integer
          description: The number of records used from the annual contract (including this request).
          format: int32
        records_remaining:
          type: integer
          description: The number of records remaining in the annual contract.
          format: int32
      additionalProperties: false
      description: Represents annual contract usage information for enrichment requests.
    IdentityThreadDataEnrichmentResponse:
      type: object
      properties:
        enriched_records:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IdentityThreadDataEnrichmentResponsePerson'
          description: The enriched records returned in the response.
        annual_contract_usage:
          $ref: '#/components/schemas/AnnualContractUsage'
      additionalProperties: false
      description: Represents the response from an enrichment request containing enriched records.
    EnrichmentRequestPerson:
      type: object
      properties:
        record_id:
          type:
          - string
          - 'null'
          description: The unique identifier for the person record. This field is not used for matching, but can be passed through for reference.
        first_name:
          type:
          - string
          - 'null'
          description: The person's first name.
        middle_name:
          type:
          - string
          - 'null'
          description: The person's middle name.
        last_name:
          type:
          - string
          - 'null'
          description: The person's last name.
        suffix:
          type:
          - string
          - 'null'
          description: The person's suffix (e.g., Jr., Sr., III).
        address:
          type:
          - string
          - 'null'
          description: The person's address.
        city:
          type:
          - string
          - 'null'
          description: The person's city.
        state:
          type:
          - string
          - 'null'
          description: The person's state.
        zip_code:
          type:
          - string
          - 'null'
          description: The person's zip code.
        email:
          type:
          - string
          - 'null'
          description: The person's email address.
        phone:
          type:
          - string
          - 'null'
          description: The person's phone number.
      additionalProperties: false
      description: Person information to be used for matching.
    IdentityThreadDataEnrichmentResponsePerson:
      type: object
      properties:
        appended_data:
          $ref: '#/components/schemas/IdentityThreadData'
        record_id:
          type:
          - string
          - 'null'
          description: The unique identifier for the person record. This field is not used for matching, but can be passed through for reference.
        first_name:
          type:
          - string
          - 'null'
          description: The person's first name.
        middle_name:
          type:
          - string
          - 'null'
          description: The person's middle name.
        last_name:
          type:
          - string
          - 'null'
          description: The person's last name.
        suffix:
          type:
          - string
          - 'null'
          description: The person's suffix (e.g., Jr., Sr., III).
        address:
          type:
          - string
          - 'null'
          description: The person's address.
        city:
          type:
          - string
          - 'null'
          description: The person's city.
        state:
          type:
          - string
          - 'null'
          description: The person's state.
        zip_code:
          type:
          - string
          - 'null'
          description: The person's zip code.
        email:
          type:
          - string
          - 'null'
          description: The person's email address.
        phone:
          type:
          - string
          - 'null'
          description: The person's phone number.
      additionalProperties: false
      description: Represents a person in the enrichment response with appended data.
    IdentityThreadData:
      type: object
      properties:
        individual_id:
          type:
          - string
          - 'null'
          description: The resolved unique individual ID for the person.
        individual_key_status:
          type:
          - string
          - 'null'
          description: Status of the individual key (Maintained, Derived, or null).
        household_id:
          type:
          - string
          - 'null'
          description: The resolved unique household ID for the person.
        household_key_status:
          type:
          - string
          - 'null'
          description: Status of the individual key (Maintained, Derived, or null).
        match_confidence:
          type:
          - integer
          - 'null'
          description: The confidence level of the match.
          format: int32
      additionalProperties: false
      description: Data that can be appended for Identity Thread.
  securitySchemes:
    Bb-Api-Subscription-Key:
      type: apiKey
      name: Bb-Api-Subscription-Key
      in: header
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.blackbaud.com/oauth/authorize
          tokenUrl: https://oauth2.sky.blackbaud.com/token
          scopes: {}