curl --request GET \
--url https://origami.chat/api/v2/enrichment-runs/{runId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://origami.chat/api/v2/enrichment-runs/{runId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://origami.chat/api/v2/enrichment-runs/{runId}', 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://origami.chat/api/v2/enrichment-runs/{runId}",
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://origami.chat/api/v2/enrichment-runs/{runId}"
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://origami.chat/api/v2/enrichment-runs/{runId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://origami.chat/api/v2/enrichment-runs/{runId}")
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{
"object": "enrichment_run",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"batchId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tableId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"tableRunId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rowCount": 123,
"enrichments": {
"total": 123,
"completed": 123,
"pending": 123,
"failed": 123
},
"creditsUsed": 123,
"outcomes": [
{
"inputIndex": 123,
"rowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "inserted"
}
],
"outcomeCounts": {
"inserted": 123,
"updated": 123,
"skipped": 123
}
}Track an enrichment run (incl. per-row upsert outcomes)
Run status, row count, enrichment counts, credits used, and, for
upsert-type runs, the per-row outcomes[] ledger plus
outcomeCounts. GET /batches/{batchId} is the deprecated alias.
curl --request GET \
--url https://origami.chat/api/v2/enrichment-runs/{runId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://origami.chat/api/v2/enrichment-runs/{runId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://origami.chat/api/v2/enrichment-runs/{runId}', 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://origami.chat/api/v2/enrichment-runs/{runId}",
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://origami.chat/api/v2/enrichment-runs/{runId}"
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://origami.chat/api/v2/enrichment-runs/{runId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://origami.chat/api/v2/enrichment-runs/{runId}")
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{
"object": "enrichment_run",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"batchId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tableId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"tableRunId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rowCount": 123,
"enrichments": {
"total": 123,
"completed": 123,
"pending": 123,
"failed": 123
},
"creditsUsed": 123,
"outcomes": [
{
"inputIndex": 123,
"rowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "inserted"
}
],
"outcomeCounts": {
"inserted": 123,
"updated": 123,
"skipped": 123
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The enrichment-run id (also its legacy batchId).
Response
The enrichment-run detail.
A tracked batch of column-over-row work on a table (upserts, file
ingests). id is canonical; batchId is the kept legacy alias
(identical value).
"enrichment_run"Legacy alias of id, kept for pre-restructure consumers.
The run's work type (e.g. upsert).
Linked table-run parent (enrich=true batches only). Lets consumers
poll GET /tables/{tableId}/runs/{runId} or await the
table.run.completed webhook without a version bump.
null for enrich=false writes and pre-migration batches.
Completion is first-owner scoped: overlapping cells already active
under an earlier run are not adopted into this parent, so this run
can complete while those cells are still executing elsewhere.
Rows this run processed. For upsert runs this is the
per-row outcome ledger length (one entry per input row).
Show child attributes
Show child attributes
Settled credit cost. 0 until the run reaches a terminal status.
Present only on upsert-type runs: the per-row outcome ledger.
Show child attributes
Show child attributes
Present only on upsert-type runs.
Show child attributes
Show child attributes