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

# Push enrichment data

> Push text, number, boolean, or date values into your Enrichment Fields for up to 1,000 pages per request.



## OpenAPI

````yaml other-apis/monitoring/openapi.json POST /v1/enrich
openapi: 3.0.3
info:
  title: Conductor Monitoring APIs
  description: >-
    Complete collection for all Conductor Monitoring APIs.


    ## The 3 API Tokens


    | Token Variable | API | Purpose |

    |---|---|---|

    | `reporting_api_token` | Reporting API v1 + v2 | READ — extract SEO data,
    stats, pages, issues, alerts |

    | `cms_api_token` | CMS API v1 | WRITE — trigger immediate page re-crawl
    after publishing |

    | `enrichment_api_token` | Data Enrichment API v1 | WRITE — push custom
    field values (revenue, owner, etc.) into pages |


    All tokens found under: ****Account** > **Account** tab > **Integration
    Tokens****


    ## Rate Limits

    - Reporting API: 6 req/sec/IP (429 for 1 min if exceeded)

    - Data Enrichment API: max 1,000 URLs/request, 1 req/sec/website
  version: 1.0.0
servers:
  - url: https://api.cm.conductor.com
security: []
tags:
  - name: Reporting API v2 - Entities
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v2 - Data
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v2 - Alerts
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v1 (Legacy)
    description: >-
      Original Reporting API — will be deprecated. Same reporting_api_token as
      v2.


      Key differences from v2:

      - website_id is a URL path segment, not a query param

      - Has /gds (Google Data Studio) and /metrics endpoints not in v2

      - No LFA endpoint

      - Fewer response fields


      Migrate to v2 when possible.
  - name: CMS API v1
    description: >-
      Trigger immediate re-crawls when content is published.

      Token: cms_api_token (separate from Reporting API)

      Typical use: call from CMS publish hooks (WordPress, Contentful, Drupal,
      etc.)
  - name: Data Enrichment API v1
    description: >-
      Push custom data into Conductor Monitoring pages.

      Token: enrichment_api_token (separate from Reporting and CMS APIs)


      Use cases: revenue per page, page owner, qualified leads, content score,
      last reviewed date.


      Setup:

      1. **Settings** > **Enrichment Fields** > **Create Enrichment Field**

      2. Choose type: string, number, boolean, or date

      3. Copy the Enrichment Field ID for use in requests


      Rate limits: max 1,000 URLs/request, 1 req/sec/website


      Once pushed, enrichment data can be used to:

      - Filter pages

      - Create segments

      - Set change alerts

      - View in page detail
paths:
  /v1/enrich:
    post:
      tags:
        - Data Enrichment API v1
      summary: Push Enrichment Data
      description: >-
        Push text, number, boolean, or date values into Enrichment Fields for
        one or more pages. Set a field's value to null to clear it. Max 1,000
        URLs/request, 1 req/sec/website.


        Setup:

        1. **Settings** > **Enrichment Fields** > **Create Enrichment Field**

        2. Choose type: string, number, boolean, or date

        3. Copy the Enrichment Field ID for use in requests


        Date values must be ISO-8601: YYYY-MM-DDT:HH:MM:SS+HH:MM
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrichmentRequest'
            examples:
              string:
                summary: Push Enrichment Data - String
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: Marketing Team
                    - url: https://www.example.com/page-2/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: SEO Team
              number:
                summary: Push Enrichment Data - Number
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: 15000.5
                    - url: https://www.example.com/page-2/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: 3200
              boolean:
                summary: Push Enrichment Data - Boolean
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: true
                    - url: https://www.example.com/page-2/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: false
              date:
                summary: Push Enrichment Data - Date
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: '2024-01-15T09:00:00+00:00'
                    - url: https://www.example.com/page-2/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: '2024-03-22T14:30:00+00:00'
              multipleFields:
                summary: Push Enrichment Data - Multiple Fields
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        field_id_revenue: 15000.5
                        field_id_owner: Marketing Team
                        field_id_is_priority: true
                        field_id_last_reviewed: '2024-01-15T09:00:00+00:00'
                    - url: https://www.example.com/page-2/
                      fields:
                        field_id_revenue: 3200
                        field_id_owner: SEO Team
                        field_id_is_priority: false
                        field_id_last_reviewed: '2024-03-22T14:30:00+00:00'
              clear:
                summary: Clear Enrichment Data (Set to Null)
                value:
                  websiteId: 1-234
                  data:
                    - url: https://www.example.com/page-1/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: null
                    - url: https://www.example.com/page-2/
                      fields:
                        YOUR_ENRICHMENT_FIELD_ID: null
      responses:
        '200':
          description: Enrichment data accepted.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/CmsBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/Unprocessable'
      security:
        - enrichmentApiToken: []
components:
  schemas:
    EnrichmentRequest:
      type: object
      required:
        - websiteId
        - data
      properties:
        websiteId:
          type: string
          description: The website ID (see GET /v2/entities/websites).
        data:
          type: array
          items:
            type: object
            required:
              - url
              - fields
            properties:
              url:
                type: string
                format: uri
                description: Full absolute URL of the page.
              fields:
                $ref: '#/components/schemas/EnrichmentField'
    EnrichmentField:
      type: object
      additionalProperties:
        description: >-
          Enrichment Field ID mapped to its value. Value type depends on the
          field's configured type (string, number, boolean, date, or null to
          clear).
        oneOf:
          - type: string
          - type: number
          - type: boolean
        nullable: true
    ApiError:
      type: object
      description: Structured error payload returned by the Monitoring APIs.
      properties:
        code:
          type: string
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable explanation.
        errors:
          type: array
          description: Field-level details, when available.
          items:
            type: object
  responses:
    CmsBadRequest:
      description: >
        Bad request.


        - **Invalid URL** — the URL is formatted incorrectly. Send a full URL
        including the domain and protocol, not just the path.

        - **Unknown website** — the website for this URL is not registered in
        the Conductor Monitoring account that the API token belongs to:


        ```json

        {
          "code": "unknown_website",
          "message": "Website isn't registered in CK account.",
          "errors": []
        }

        ```
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            invalidUrl:
              value:
                code: invalid_url
                message: Invalid url format provided.
                errors: []
    Unauthorized:
      description: >
        Unauthorized.


        - **Missing authentication token** — the request was received but
        carries no authorization token, so it cannot be processed. Check that
        the `Authorization` header is set.

        - **Authentication failed** — the supplied API token is expired or
        invalid:


        ```json

        {
          "code": "auth_failed",
          "message": "Authentication token is expired or invalid.",
          "errors": []
        }

        ```
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            missingToken:
              value:
                code: auth_missing_token
                message: >-
                  Authentication token must be passed in Authorization HTTP
                  header.
                errors: []
    Unprocessable:
      description: >-
        Unprocessable entity. The `Authorization` header was not formatted
        correctly — the value must be the string `token`, a space, then your API
        token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            authMalformed:
              value:
                code: auth_malformed
                message: >-
                  Authorization HTTP header must conform to format described in
                  docs.
                errors: []
  securitySchemes:
    enrichmentApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Data Enrichment API token as `Authorization: token
        {enrichment_api_token}` — the literal string `token`, a space, then the
        token itself. Find it in Conductor Monitoring under **Account** >
        **Account** tab > **Integration Tokens**.

````