# Submit Custom Vocabulary Submits a Custom Vocabulary for asynchronous processing. Endpoint: POST /vocabularies Version: v1 Security: AccessToken ## Request fields (application/json): - `metadata` (string,null) Optional metadata that was provided during submission Example: "sample metadata" - `notification_config` (object,null) Optional configuration for a callback url to invoke when processing is complete, in addition to auth headers if they are needed to invoke the callback url. Cannot be set if callback_url is set. This option will not be visible in the submission response. - `notification_config.url` (string, required) Optional callback url to invoke when processing is complete Example: "https://www.example.com/callback" - `notification_config.auth_headers` (object,null) Optional authorization headers, if they are needed to invoke the callback. There are a few constraints: 1) the “Authorization” header is the only header that can be passed in, and 2) the header value must be of the form . For example: {"Authorization": "Bearer $BEARER_TOKEN"} - `notification_config.auth_headers.Authorization` (string, required) Example: "Bearer " - `strict` (boolean) If true, only exact phrases will be used as custom vocabulary, i.e. phrases will not be split into individual words for processing. By default is enabled. Example: true - `custom_vocabularies` (array, required) - `custom_vocabularies.phrases` (array, required) Array of phrases not found in normal dictionary. Add technical jargon, proper nouns and uncommon phrases as strings in this array to add them to the lexicon for this job. A phrase must contain at least 1 alpha character but may contain any non-numeric character from the Basic Latin set. A phrase can contain up to 12 words. Each word can contain up to 34 characters. Note: Only 6000 phrases can be used per transcription job. For more details, check [Custom Vocabularies](https://docs.rev.ai/api/features/#custom-vocabularies). Example: ["Paul McCartney","Amelia Earhart","Weiss-Bergman","BLM"] - `callback_url` (string,null) Deprecated. Use notification_config instead. Optional callback url to invoke when processing is complete. If this parameter is used to pass in the callback url, the callback url will be visible in the response. It is recommended to provide webhooks with the notification_config parameter as authorization headers can be included and both the callback url and auth headers will be encrypted when stored. Example: "https://www.example.com/callback" ## Response 200 fields (application/json): - `id` (string) Id of the Custom Vocabulary Example: "cvUmx5c6F7pH7r" - `status` (string) Current status of the custom vocabulary Enum: "in_progress", "complete", "failed" - `created_on` (string) The date and time the custom vocabulary was submitted in ISO-8601 UTC form Example: "2018-05-05T23:23:22.29Z" - `completed_on` (string,null) The date and time the custom vocabulary was completed on, whether successful or failure, in ISO-8601 UTC form Example: "2018-05-05T23:28:22.29Z" - `metadata` (string,null) Optional metadata that was provided during custom vocabulary submission Example: "sample metadata" - `failure` (string,null) Simple reason of why the transcription job failed. Check failure_detail for specific details and solutions Enum: "internal_processing" - `failure_detail` (string,null) Human-readable reason why the job failed Example: "Failed to process. Please check your url and file type" - `callback_url` (string,null) Deprecated. Use notification_config instead. Optional callback url to invoke when processing is complete. If this parameter is used to pass in the callback url, the callback url will be visible in the response. It is recommended to provide webhooks with the notification_config parameter as authorization headers can be included and both the callback url and auth headers will be encrypted when stored. Example: "https://www.example.com/callback" ## Response 400 fields (application/problem+json): - `title` (string) Short, human-readable summary of the problem type - `type` (string) URI that identifies the problem - `status` (integer) HTTP status code of the error - `parameters` (object) Invalid properties object where each property is the key, mapped to a list of reasons why the property is invalid ## Response 401 fields (application/problem+json): - `title` (string) Short, human-readable summary of the problem type - `status` (integer) HTTP status code of the error ## Response 403 fields (application/problem+json): - `title` (string) Short, human-readable summary of the problem type - `type` (string) URI that identifies the problem - `status` (integer) HTTP status code of the error ## Response 404 fields (application/problem+json): - `title` (string) Short, human-readable summary of the problem type - `type` (string) URI that identifies the problem - `status` (integer) HTTP status code of the error