---
title: "CreateMatchTableConfig"
method: POST
path: "/v1.1/retl/match-table"
tags: ["ControlService"]
---

# CreateMatchTableConfig

`POST /v1.1/retl/match-table`

Creates a match table configuration for building lookup tables from online data.

## Request body

- ProtobufControlpbV1CreateMatchTableConfigRequest
  - `config` union
    - object, nullable
    - ProtobufRetlpbV1MatchTableConfig
      - `id` string — UUID for the configuration. It will be generated if not provided.
      - `offlineFields` union — Defines the fields in offline source to be converted into an event
        - object, nullable
        - ProtobufRetlpbV1OfflineFields
          - `additionalFields` string[], nullable — Any other additional fields Converted into `properties.items[].<additional_field>` eg: `product_name`, `upc`, `brand_name`, `unit_price`, `quantity`
          - `eventField` string — Converted into `event`
          - `groupingField` string — This field will group all rows into a single event. Offline data must be ordered by this field. Should be used for a unique identifier in events such as Ordinal for CM 360. Converted into `properties.<grouping_field>` eg: `transaction_id`
          - `matchFields` string[], nullable — Fields that will be used to attempt a match on the match table. The last non-empty matched value is converted into `anonymousId` and `properties.<match_field>`. eg: `customer_email_hash`, `customer_phone_hash`
          - `timestampField` string — Converted into `timestamp`
      - `offlineSource` union — Event Source is the location and other details related to offline data where events will be created and sent to the ingestor.
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `onlineFields` union — Defines the fields in the online source to be used for matching and included in events
        - object, nullable
        - ProtobufRetlpbV1OnlineFields
          - `matchFields` string[], nullable — The fields that contain unique keys to match on. They can either be an array or string. eg: 'hashedEmails', 'hashedPhone'
          - `trackingFields` string[], nullable — Tracking fields are key/value pairs that will be tracked with match_fields eg: 'pid', 'gclid', 'dclid', 'ad_tracking_id'
      - `onlineSource` union — Source is the location where online data comes from to be processed into the Match Table
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `secretRef` string — References a secret store ID; $$secret.KEY$$ values in credential fields resolve against it
      - `state` union — State is the location where the Match Table is stored as well as checkpoints
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `writeKey` string — All events that are created will use this write key

## Response `200`

OK

- ProtobufControlpbV1CreateMatchTableConfigResponse
  - `config` union
    - object, nullable
    - ProtobufRetlpbV1MatchTableConfig
      - `id` string — UUID for the configuration. It will be generated if not provided.
      - `offlineFields` union — Defines the fields in offline source to be converted into an event
        - object, nullable
        - ProtobufRetlpbV1OfflineFields
          - `additionalFields` string[], nullable — Any other additional fields Converted into `properties.items[].<additional_field>` eg: `product_name`, `upc`, `brand_name`, `unit_price`, `quantity`
          - `eventField` string — Converted into `event`
          - `groupingField` string — This field will group all rows into a single event. Offline data must be ordered by this field. Should be used for a unique identifier in events such as Ordinal for CM 360. Converted into `properties.<grouping_field>` eg: `transaction_id`
          - `matchFields` string[], nullable — Fields that will be used to attempt a match on the match table. The last non-empty matched value is converted into `anonymousId` and `properties.<match_field>`. eg: `customer_email_hash`, `customer_phone_hash`
          - `timestampField` string — Converted into `timestamp`
      - `offlineSource` union — Event Source is the location and other details related to offline data where events will be created and sent to the ingestor.
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `onlineFields` union — Defines the fields in the online source to be used for matching and included in events
        - object, nullable
        - ProtobufRetlpbV1OnlineFields
          - `matchFields` string[], nullable — The fields that contain unique keys to match on. They can either be an array or string. eg: 'hashedEmails', 'hashedPhone'
          - `trackingFields` string[], nullable — Tracking fields are key/value pairs that will be tracked with match_fields eg: 'pid', 'gclid', 'dclid', 'ad_tracking_id'
      - `onlineSource` union — Source is the location where online data comes from to be processed into the Match Table
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `secretRef` string — References a secret store ID; $$secret.KEY$$ values in credential fields resolve against it
      - `state` union — State is the location where the Match Table is stored as well as checkpoints
        - object, nullable
        - ProtobufRetlpbV1Storage
          - `blob` union
            - object, nullable
            - ProtobufRetlpbV1AzureBlob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufRetlpbV1GCS
              - …
          - `s3` union
            - object, nullable
            - ProtobufRetlpbV1S3
              - …
      - `writeKey` string — All events that are created will use this write key

## Other responses

- `4XX` — Something is wrong with your request such as missing or invalid data. Correct your request and try again.
- `5XX` — Internal server error. Try again later or reach out to MetaRouter support.

---

[API](https://skmtc.net/metarouter/apis/control-api.md) · [All operations](https://skmtc.net/metarouter/apis/control-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metarouter/control-api/versions/5afc05bfaaa2/schema)
