Skip to main content
PATCH
/
api
/
documents
/
{document_id}
/
enrichment
Confirm crew enrichment suggestions and push to DataHub
curl --request PATCH \
  --url https://api.example.com/api/documents/{document_id}/enrichment \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "summary": "<string>",
  "accepted_tags": [
    "<string>"
  ],
  "new_tags": [
    "<string>"
  ],
  "accepted_glossary_terms": [
    "<string>"
  ],
  "new_glossary_terms": [
    "<string>"
  ],
  "domain": "<string>",
  "domain_is_new": false
}
'
import requests

url = "https://api.example.com/api/documents/{document_id}/enrichment"

payload = {
    "summary": "<string>",
    "accepted_tags": ["<string>"],
    "new_tags": ["<string>"],
    "accepted_glossary_terms": ["<string>"],
    "new_glossary_terms": ["<string>"],
    "domain": "<string>",
    "domain_is_new": False
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    summary: '<string>',
    accepted_tags: ['<string>'],
    new_tags: ['<string>'],
    accepted_glossary_terms: ['<string>'],
    new_glossary_terms: ['<string>'],
    domain: '<string>',
    domain_is_new: false
  })
};

fetch('https://api.example.com/api/documents/{document_id}/enrichment', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.example.com/api/documents/{document_id}/enrichment",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => json_encode([
    'summary' => '<string>',
    'accepted_tags' => [
        '<string>'
    ],
    'new_tags' => [
        '<string>'
    ],
    'accepted_glossary_terms' => [
        '<string>'
    ],
    'new_glossary_terms' => [
        '<string>'
    ],
    'domain' => '<string>',
    'domain_is_new' => false
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.example.com/api/documents/{document_id}/enrichment"

	payload := strings.NewReader("{\n  \"summary\": \"<string>\",\n  \"accepted_tags\": [\n    \"<string>\"\n  ],\n  \"new_tags\": [\n    \"<string>\"\n  ],\n  \"accepted_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"new_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"domain\": \"<string>\",\n  \"domain_is_new\": false\n}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://api.example.com/api/documents/{document_id}/enrichment")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"summary\": \"<string>\",\n  \"accepted_tags\": [\n    \"<string>\"\n  ],\n  \"new_tags\": [\n    \"<string>\"\n  ],\n  \"accepted_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"new_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"domain\": \"<string>\",\n  \"domain_is_new\": false\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/api/documents/{document_id}/enrichment")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"summary\": \"<string>\",\n  \"accepted_tags\": [\n    \"<string>\"\n  ],\n  \"new_tags\": [\n    \"<string>\"\n  ],\n  \"accepted_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"new_glossary_terms\": [\n    \"<string>\"\n  ],\n  \"domain\": \"<string>\",\n  \"domain_is_new\": false\n}"

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "filename": "<string>",
  "owner": "<string>",
  "mime_type": "<string>",
  "size_bytes": 123,
  "page_count": 123,
  "chunk_count": 123,
  "subtype": "<string>",
  "datahub_urn": "<string>",
  "extraction_warning": "<string>",
  "suggested_summary": "<string>",
  "error": "<string>",
  "s3_key": "<string>",
  "suggested_tags": [
    {
      "name": "<string>",
      "is_existing": false,
      "urn": "<string>"
    }
  ],
  "suggested_glossary_terms": [
    {
      "name": "<string>",
      "is_existing": false,
      "urn": "<string>"
    }
  ],
  "suggested_domain": {
    "name": "<string>",
    "is_existing": false,
    "urn": "<string>"
  }
}
{
  "error": "<string>",
  "code": 500
}
{
  "error": "<string>",
  "code": 500
}
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>",
      "input": "<unknown>",
      "ctx": {}
    }
  ]
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

document_id
string<uuid>
required

Body

application/json

User-confirmed enrichment payload.

summary
string | null
accepted_tags
string[] | null

Tag names the user kept that already exist in DataHub.

new_tags
string[] | null

Tag names the user kept that DataHub doesn't have yet. The service creates them before attaching.

accepted_glossary_terms
string[] | null

Glossary term names the user kept that already exist in DataHub.

new_glossary_terms
string[] | null

Glossary term names the user kept that DataHub doesn't have yet. The service creates them before attaching.

domain
string | null

Chosen domain name. Set to None to leave the document unassigned.

domain_is_new
boolean
default:false

Set to true if the domain doesn't exist in DataHub yet. The service records the intent but waits for an administrator to create the domain before attaching.

Response

Successful Response

id
string<uuid>
required
filename
string
required
owner
string
required
mime_type
string
required
size_bytes
integer
required
page_count
integer | null
required
chunk_count
integer | null
required
subtype
string | null
required
status
enum<string>
required

Lifecycle status of an ingested document.

Available options:
uploading,
extracting,
ocr_required,
indexed,
failed
enrichment_status
enum<string>
required

Crew-driven enrichment lifecycle.

Available options:
pending,
running,
awaiting_review,
confirmed,
failed
datahub_urn
string | null
required
extraction_warning
string | null
required
suggested_summary
string | null
required
error
string | null
required
s3_key
string | null
required
suggested_tags
SuggestionItem · object[]
suggested_glossary_terms
SuggestionItem · object[]
suggested_domain
SuggestionItem · object | null

A flagged enrichment suggestion for a tag, glossary term, or domain.