# Add info to a DSR before processing (/docs/api-reference/preflight/post-v1-enrichers)

Before processing a new DSR, we can coordinate with your server to:

## POST /v1/enrich-identifiers

```json
{
  "servers": [
    {
      "url": "https://multi-tenant.sombra.transcend.io",
      "description": "Multi-tenant (EU)"
    },
    {
      "url": "https://multi-tenant.sombra.us.transcend.io",
      "description": "Multi-tenant (US)"
    },
    {
      "description": "Self-hosted",
      "url": "https://_yourOrganizationSombraURL_.com"
    },
    {
      "description": "Preference Store in Europe",
      "url": "https://consent.transcend.io"
    },
    {
      "description": "Preference Store in the U.S.",
      "url": "https://consent.us.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (EU)",
      "url": "https://rule-automation.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (US)",
      "url": "https://rule-automation.us.transcend.io"
    }
  ],
  "security": [
    {
      "Transcend_API_Key": [],
      "Sombra_Token": [],
      "Transcend_API_Key_If_Multitenant": []
    }
  ],
  "operation": {
    "summary": "Add info to a DSR before processing",
    "responses": {
      "200": {
        "description": "Your request was received without an issue.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object"
            }
          }
        }
      },
      "400": {
        "description": "While this request passed authentication, the input is malformed. Please double-check that your code conforms to our API specification.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "401": {
        "description": "There was a problem authenticating your request. This may be an issue with the Transcend API key (\"authorization\" header), or the Sombra API key (\"x-sombra-authorization\" header used for self-hosted gateways only).",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "409": {
        "description": "You're attempting to modify a DSR that is not in a modifiable state. For example, the DSR may have already completed, or been revoked.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "413": {
        "description": "The request body is too large. JSON and raw bodies must be less than 50MB. URL encoded bodies must be less than 30MB.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "429": {
        "description": "You are sending requests too quickly and have hit our rate limit. If you hit this, you'll need to throttle your request velocity or try again later.",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds to wait before retrying.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Limit": {
            "description": "The maximum number of requests allowed in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Remaining": {
            "description": "The number of requests remaining in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Reset": {
            "description": "The time at which the rate limit will reset.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "500": {
        "description": "A 5xx error means there is either an issue with your self-hosted gateway, or a Transcend server is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "502": {
        "description": "An upstream service on Transcend's side is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      }
    },
    "operationId": "post-v1-enrichers",
    "security": [
      {
        "Transcend_API_Key": [
          "Manage Request Identity Verification"
        ]
      }
    ],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "description": "",
            "type": "object",
            "properties": {
              "enrichedIdentifiers": {
                "type": "object",
                "description": "An object where the keys are the identifier names (i.e. email, phone, idfa, ...), and the values are a list of enriched identifiers.",
                "additionalProperties": {
                  "type": "array",
                  "uniqueItems": true,
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "maxLength": 16384,
                        "description": "The identifier value (e.g. \"ben@example.com\", or \"+18005551234\", ...)"
                      }
                    },
                    "required": [
                      "value"
                    ]
                  }
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "CANCELED",
                  "ON_HOLD"
                ]
              },
              "templateId": {
                "type": "string",
                "format": "uuid",
                "description": "When status is set to ON_HOLD or CANCELED, you may include the ID of a custom email template to send to the data subject."
              },
              "templateTitle": {
                "type": "string",
                "description": "When status is set to ON_HOLD or CANCELED, you may include the title of a custom email template to send to the data subject."
              }
            }
          },
          "examples": {
            "Add additional user identifiers to this request": {
              "value": {
                "enrichedIdentifiers": {
                  "googleAnalyticsInternalId": [
                    {
                      "value": "SOME-GOOGLE-ANALYTICS-ID"
                    }
                  ],
                  "gpadvid": [
                    {
                      "value": "b20f48d8-9f50-447a-a446-1d398a9f9b1b"
                    }
                  ]
                }
              }
            },
            "Cancel a request": {
              "value": {
                "status": "CANCELED"
              }
            },
            "Cancel a request and send a custom email by template ID": {
              "value": {
                "status": "CANCELED",
                "templateId": "9a4d0c4d-22d7-4717-a4e3-9bdf48a256f0"
              }
            },
            "Cancel a request and send a custom email by template title": {
              "value": {
                "status": "CANCELED",
                "templateTitle": "Custom Email Template"
              }
            },
            "Put a request on hold for manual review": {
              "value": {
                "status": "ON_HOLD"
              }
            }
          }
        }
      },
      "description": ""
    },
    "description": "Before processing a new DSR, we can coordinate with your server to:\n\n1. Confirm that this request should be processed (or canceled, or put on hold).\n2. Obtain additional user identifiers, such as a phone number, to find the data subject with.\n\nSee [the uploading enriched identifiers guide](/docs/dsr-automation/api-integration/identity-enrichment#uploading-enriched-identifiers) for more information.",
    "parameters": [
      {
        "$ref": "#/components/parameters/authorization"
      },
      {
        "$ref": "#/components/parameters/x-sombra-authorization"
      },
      {
        "$ref": "#/components/parameters/content-type-application-json"
      },
      {
        "$ref": "#/components/parameters/x-transcend-nonce"
      }
    ],
    "tags": [
      "Preflight"
    ]
  }
}
```