Get hosted upload readiness
curl --request GET \
--url https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness \
--header 'Authorization: Bearer <token>' \
--header 'x-splendor-tenant-id: <x-splendor-tenant-id>'import requests
url = "https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness"
headers = {
"x-splendor-tenant-id": "<x-splendor-tenant-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-splendor-tenant-id': '<x-splendor-tenant-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness', 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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness",
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>",
"x-splendor-tenant-id: <x-splendor-tenant-id>"
],
]);
$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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-splendor-tenant-id", "<x-splendor-tenant-id>")
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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness")
.header("x-splendor-tenant-id", "<x-splendor-tenant-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-splendor-tenant-id"] = '<x-splendor-tenant-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"bucket": "acme-uploads",
"completed_at": "2026-01-15T09:30:00Z",
"created_at": "2026-01-15T09:30:00Z",
"dataset_id": "app-logs",
"documents": {
"expected": 1240000,
"index_committed": 1240000,
"parsed": 1240000,
"schema_observed": 1240000,
"semantic_embedded": 1240000,
"semantic_failed": 0,
"semantic_total": 1240000
},
"error_code": null,
"error_message": null,
"etag": "\"abc123\"",
"failed_at": null,
"ingest_run_id": "ing_01H8Z3",
"ingest_status": "ready",
"key": "uploads/ups_01H8Z3/data.jsonl",
"lifecycle": {
"reasons": [],
"repairable": false,
"state": "ready"
},
"queued_at": "2026-01-15T09:30:00Z",
"ready_for": {
"semantic_search": true,
"sql_search": true,
"text_search": true
},
"semantic_ready_at": "2026-01-15T09:30:00Z",
"source_id": 12,
"started_at": "2026-01-15T09:30:00Z",
"text_indexed_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"upload_session_id": "ups_01H8Z3",
"upload_status": "completed"
}{
"detail": "Dataset not found"
}{
"detail": "Dataset not found"
}{
"detail": "Dataset not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Sources & ingest
Get hosted upload readiness
Reports the processing and readiness status of a hosted upload session after completion.
GET
/
v1
/
ingest
/
sources
/
{source_key}
/
uploads
/
{upload_session_id}
/
readiness
Get hosted upload readiness
curl --request GET \
--url https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness \
--header 'Authorization: Bearer <token>' \
--header 'x-splendor-tenant-id: <x-splendor-tenant-id>'import requests
url = "https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness"
headers = {
"x-splendor-tenant-id": "<x-splendor-tenant-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-splendor-tenant-id': '<x-splendor-tenant-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness', 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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness",
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>",
"x-splendor-tenant-id: <x-splendor-tenant-id>"
],
]);
$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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-splendor-tenant-id", "<x-splendor-tenant-id>")
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.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness")
.header("x-splendor-tenant-id", "<x-splendor-tenant-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withsplendor.com/v1/ingest/sources/{source_key}/uploads/{upload_session_id}/readiness")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-splendor-tenant-id"] = '<x-splendor-tenant-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"bucket": "acme-uploads",
"completed_at": "2026-01-15T09:30:00Z",
"created_at": "2026-01-15T09:30:00Z",
"dataset_id": "app-logs",
"documents": {
"expected": 1240000,
"index_committed": 1240000,
"parsed": 1240000,
"schema_observed": 1240000,
"semantic_embedded": 1240000,
"semantic_failed": 0,
"semantic_total": 1240000
},
"error_code": null,
"error_message": null,
"etag": "\"abc123\"",
"failed_at": null,
"ingest_run_id": "ing_01H8Z3",
"ingest_status": "ready",
"key": "uploads/ups_01H8Z3/data.jsonl",
"lifecycle": {
"reasons": [],
"repairable": false,
"state": "ready"
},
"queued_at": "2026-01-15T09:30:00Z",
"ready_for": {
"semantic_search": true,
"sql_search": true,
"text_search": true
},
"semantic_ready_at": "2026-01-15T09:30:00Z",
"source_id": 12,
"started_at": "2026-01-15T09:30:00Z",
"text_indexed_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"upload_session_id": "ups_01H8Z3",
"upload_status": "completed"
}{
"detail": "Dataset not found"
}{
"detail": "Dataset not found"
}{
"detail": "Dataset not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
API token issued from the Splendor console.
Headers
Selects the tenant (workspace) the request acts within.
Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes