curl --request GET \
--url https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}', 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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"upload_id": "<string>",
"data_source_config": {
"source": "S3",
"s3_bucket": "<string>",
"aws_region": "<string>",
"aws_account_id": "<string>",
"s3_prefix": ""
},
"created_at": "<string>",
"updated_at": "<string>",
"status": "Running",
"artifacts_status": {
"artifacts_chunking": 123,
"artifacts_embedding": 123,
"artifacts_completed": 123,
"artifacts_pending": 123,
"artifacts_uploading": 123,
"artifacts_failed": 123
},
"artifacts": [
{
"artifact_id": "<string>",
"artifact_name": "<string>",
"artifact_uri": "<string>",
"status": "<string>",
"source": "S3",
"chunks_status": {
"chunks_completed": 123,
"chunks_pending": 123,
"chunks_failed": 123
},
"tags": {},
"artifact_uri_public": "<string>",
"status_reason": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"chunking_strategy_config": {
"strategy": "character",
"separator": "\n\n",
"chunk_size": 1000,
"chunk_overlap": 200
},
"status_reason": "<string>",
"created_by_schedule_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Upload Job
Returns the full details of a single upload job by ID: its status and status reason, the data source and chunking strategy configs it used, creation/update timestamps, aggregate artifact status counts, and (unless include_artifact_list=false) the per-artifact list with each artifact’s chunk-upload status. Use this to poll the progress of an upload started by the create-upload or file-upload endpoints until it reaches a terminal state. If the stored status is non-terminal, the call reconciles it against the live ingestion workflow — if the workflow has terminated (for example, was killed) the upload’s status is updated to match before the response is returned, so a running job that has actually died is reported accurately rather than staying stuck. Set include_artifact_list=false to get a lighter response without the artifact details.
curl --request GET \
--url https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}', 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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v4/knowledge-bases/{knowledge_base_id}/uploads/{upload_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"upload_id": "<string>",
"data_source_config": {
"source": "S3",
"s3_bucket": "<string>",
"aws_region": "<string>",
"aws_account_id": "<string>",
"s3_prefix": ""
},
"created_at": "<string>",
"updated_at": "<string>",
"status": "Running",
"artifacts_status": {
"artifacts_chunking": 123,
"artifacts_embedding": 123,
"artifacts_completed": 123,
"artifacts_pending": 123,
"artifacts_uploading": 123,
"artifacts_failed": 123
},
"artifacts": [
{
"artifact_id": "<string>",
"artifact_name": "<string>",
"artifact_uri": "<string>",
"status": "<string>",
"source": "S3",
"chunks_status": {
"chunks_completed": 123,
"chunks_pending": 123,
"chunks_failed": 123
},
"tags": {},
"artifact_uri_public": "<string>",
"status_reason": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"chunking_strategy_config": {
"strategy": "character",
"separator": "\n\n",
"chunk_size": 1000,
"chunk_overlap": 200
},
"status_reason": "<string>",
"created_by_schedule_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Headers
Query Parameters
Response
Successful Response
Unique ID of the upload job.
Configuration for downloading data from source.
- S3 DataSource Config
- SharePoint DataSource Config
- SharePoint Page DataSource Config
- Google Drive DataSource Config
- Azure Blob Storage DataSource Config
- Google Cloud Storage DataSource Config
- LocalChunksSourceConfig
- LocalFileSourceConfig
- Confluence DataSource Config
- Slack DataSource Config
- Snowflake DataSource Config
- Databricks DataSource Config
- SQL Database DataSource Config
- MongoDB DataSource Config
- BigQuery DataSource Config
Show child attributes
Show child attributes
The timestamp at which the upload job started.
The timestamp at which the upload job was last updated.
Sync status
Running, Completed, Failed, Canceled Number of artifacts in each of the various states, such as completed and failed for this upload. This includes artifacts for this data source that are retried.
Show child attributes
Show child attributes
List of info for each artifacts associated with this upload. This includes artifacts for this data source that are retried.
Show child attributes
Show child attributes
Configuration for chunking the text content of each artifact.
- CharacterChunkingStrategyConfig
- TokenChunkingStrategyConfig
- CustomChunkingStrategyConfig
- PreChunkedStrategyConfig
- EnhancedChunkingStrategyConfig
Show child attributes
Show child attributes
Reason for the upload job's status.
Id of the upload schedule that triggered this upload_id. Null if triggered manually.

