Get document timeline
curl --request GET \
--url https://api.example.com/v0/admin/documents/{version_id}/timeline \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/v0/admin/documents/{version_id}/timeline"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/v0/admin/documents/{version_id}/timeline', 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/v0/admin/documents/{version_id}/timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v0/admin/documents/{version_id}/timeline"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v0/admin/documents/{version_id}/timeline")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/admin/documents/{version_id}/timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"document": {
"version_id": "<string>",
"record_id": "<string>",
"corpus_id": "<string>",
"source_namespace": "<string>",
"record_key": "<string>",
"state": "received",
"is_current": true,
"steps": {
"accepted_at": "2023-11-07T05:31:56Z",
"materialized_at": "2023-11-07T05:31:56Z",
"segmented_at": "2023-11-07T05:31:56Z",
"retrieval_ready_at": "2023-11-07T05:31:56Z",
"enriched_at": "2023-11-07T05:31:56Z",
"evaluated_at": "2023-11-07T05:31:56Z",
"quarantined_at": "2023-11-07T05:31:56Z",
"withdrawn_at": "2023-11-07T05:31:56Z"
},
"title": "<string>"
},
"steps": [
{
"step": "accepted",
"at": "2023-11-07T05:31:56Z",
"since": "<string>",
"duration_ms": 1,
"plugin_id": "<string>",
"plugin_version": "<string>"
}
]
}{
"code": "<string>",
"message": "<string>",
"retryable": true,
"field": "<string>",
"resync_url": "<string>"
}Admin
Get document timeline
One Record Version’s finished steps in time order, each with how long it took since the step that caused it and, when known, the plugin that ran it. 404 for an unknown Version or one outside the key’s Corpora. Requires observability:read.
GET
/
v0
/
admin
/
documents
/
{version_id}
/
timeline
Get document timeline
curl --request GET \
--url https://api.example.com/v0/admin/documents/{version_id}/timeline \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/v0/admin/documents/{version_id}/timeline"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/v0/admin/documents/{version_id}/timeline', 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/v0/admin/documents/{version_id}/timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v0/admin/documents/{version_id}/timeline"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v0/admin/documents/{version_id}/timeline")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/admin/documents/{version_id}/timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"document": {
"version_id": "<string>",
"record_id": "<string>",
"corpus_id": "<string>",
"source_namespace": "<string>",
"record_key": "<string>",
"state": "received",
"is_current": true,
"steps": {
"accepted_at": "2023-11-07T05:31:56Z",
"materialized_at": "2023-11-07T05:31:56Z",
"segmented_at": "2023-11-07T05:31:56Z",
"retrieval_ready_at": "2023-11-07T05:31:56Z",
"enriched_at": "2023-11-07T05:31:56Z",
"evaluated_at": "2023-11-07T05:31:56Z",
"quarantined_at": "2023-11-07T05:31:56Z",
"withdrawn_at": "2023-11-07T05:31:56Z"
},
"title": "<string>"
},
"steps": [
{
"step": "accepted",
"at": "2023-11-07T05:31:56Z",
"since": "<string>",
"duration_ms": 1,
"plugin_id": "<string>",
"plugin_version": "<string>"
}
]
}{
"code": "<string>",
"message": "<string>",
"retryable": true,
"field": "<string>",
"resync_url": "<string>"
}Authorizations
API key, not necessarily a JWT. Server derives Organization, permitted actions and Corpus scope; every resource access is authorized.
Path Parameters
Minimum string length:
1