curl "https://api.intellibase.dev/api/v1/projects/proj-abc123/jobs?limit=50&offset=0" \
-H "Authorization: Bearer ib-your-api-key"
import requests
project_id = "proj-abc123"
response = requests.get(
f"https://api.intellibase.dev/api/v1/projects/{project_id}/jobs",
headers={"Authorization": "Bearer ib-your-api-key"},
params={"limit": 50, "offset": 0}
)
result = response.json()
print(f"Found {result['total']} jobs")
for job in result["jobs"]:
status_emoji = {"completed": "✓", "failed": "✗", "running": "⏳", "pending": "⏸"}.get(job["status"], "?")
print(f"{status_emoji} {job['source_doc_id']}: {job['status']}")
if job["status"] == "completed":
print(f" {job['chunks_processed']} chunks, {job['nodes_created']} nodes, {job['edges_created']} edges")
const projectId = "proj-abc123";
const response = await fetch(
`https://api.intellibase.dev/api/v1/projects/${projectId}/jobs?limit=50&offset=0`,
{
headers: {
"Authorization": "Bearer ib-your-api-key"
}
}
);
const result = await response.json();
console.log(`Found ${result.total} jobs`);
const statusEmoji = {
completed: "✓",
failed: "✗",
running: "⏳",
pending: "⏸"
};
result.jobs.forEach(job => {
const emoji = statusEmoji[job.status] || "?";
console.log(`${emoji} ${job.source_doc_id}: ${job.status}`);
if (job.status === "completed") {
console.log(` ${job.chunks_processed} chunks, ` +
`${job.nodes_created} nodes, ${job.edges_created} edges`);
}
});
{
"jobs": [
{
"job_id": "job-abc123",
"project_id": "proj-abc123",
"source_doc_id": "doc-001",
"status": "completed",
"chunks_processed": 12,
"nodes_created": 8,
"edges_created": 15,
"started_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:15Z",
"error_message": null
},
{
"job_id": "job-def456",
"project_id": "proj-abc123",
"source_doc_id": "doc-002",
"status": "running",
"chunks_processed": 0,
"nodes_created": 0,
"edges_created": 0,
"started_at": "2024-01-15T10:29:00Z",
"completed_at": null,
"error_message": null
},
{
"job_id": "job-ghi789",
"project_id": "proj-abc123",
"source_doc_id": "doc-003",
"status": "failed",
"chunks_processed": 5,
"nodes_created": 3,
"edges_created": 2,
"started_at": "2024-01-15T10:28:00Z",
"completed_at": "2024-01-15T10:28:10Z",
"error_message": "LLM API timeout after 3 retries"
}
],
"total": 3,
"limit": 50,
"offset": 0
}
{
"detail": "User is not authorized for this project"
}
Jobs
List Jobs
Retrieve all ingestion jobs for a project
GET
/
api
/
v1
/
projects
/
{project_id}
/
jobs
curl "https://api.intellibase.dev/api/v1/projects/proj-abc123/jobs?limit=50&offset=0" \
-H "Authorization: Bearer ib-your-api-key"
import requests
project_id = "proj-abc123"
response = requests.get(
f"https://api.intellibase.dev/api/v1/projects/{project_id}/jobs",
headers={"Authorization": "Bearer ib-your-api-key"},
params={"limit": 50, "offset": 0}
)
result = response.json()
print(f"Found {result['total']} jobs")
for job in result["jobs"]:
status_emoji = {"completed": "✓", "failed": "✗", "running": "⏳", "pending": "⏸"}.get(job["status"], "?")
print(f"{status_emoji} {job['source_doc_id']}: {job['status']}")
if job["status"] == "completed":
print(f" {job['chunks_processed']} chunks, {job['nodes_created']} nodes, {job['edges_created']} edges")
const projectId = "proj-abc123";
const response = await fetch(
`https://api.intellibase.dev/api/v1/projects/${projectId}/jobs?limit=50&offset=0`,
{
headers: {
"Authorization": "Bearer ib-your-api-key"
}
}
);
const result = await response.json();
console.log(`Found ${result.total} jobs`);
const statusEmoji = {
completed: "✓",
failed: "✗",
running: "⏳",
pending: "⏸"
};
result.jobs.forEach(job => {
const emoji = statusEmoji[job.status] || "?";
console.log(`${emoji} ${job.source_doc_id}: ${job.status}`);
if (job.status === "completed") {
console.log(` ${job.chunks_processed} chunks, ` +
`${job.nodes_created} nodes, ${job.edges_created} edges`);
}
});
{
"jobs": [
{
"job_id": "job-abc123",
"project_id": "proj-abc123",
"source_doc_id": "doc-001",
"status": "completed",
"chunks_processed": 12,
"nodes_created": 8,
"edges_created": 15,
"started_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:15Z",
"error_message": null
},
{
"job_id": "job-def456",
"project_id": "proj-abc123",
"source_doc_id": "doc-002",
"status": "running",
"chunks_processed": 0,
"nodes_created": 0,
"edges_created": 0,
"started_at": "2024-01-15T10:29:00Z",
"completed_at": null,
"error_message": null
},
{
"job_id": "job-ghi789",
"project_id": "proj-abc123",
"source_doc_id": "doc-003",
"status": "failed",
"chunks_processed": 5,
"nodes_created": 3,
"edges_created": 2,
"started_at": "2024-01-15T10:28:00Z",
"completed_at": "2024-01-15T10:28:10Z",
"error_message": "LLM API timeout after 3 retries"
}
],
"total": 3,
"limit": 50,
"offset": 0
}
{
"detail": "User is not authorized for this project"
}
Endpoint
GET https://api.intellibase.dev/api/v1/projects/{project_id}/jobs
Path Parameters
string
required
The unique identifier of the project
Query Parameters
integer
default:100
Maximum number of jobs to return (1-1000)
integer
default:0
Number of jobs to skip for pagination (0+)
Authentication
Requires a valid API key with access to the project.Response
array
Array of ingestion job objects (sorted by most recent first)
Show Job Object
Show Job Object
string
Unique identifier for the job
string
The project this job belongs to
string
The document identifier from the ingestion request
string
Job status:
pending, running, completed, or failedinteger
Number of text chunks processed
integer
Number of entities created (0 for Vector-Only projects)
integer
Number of relationships created (0 for Vector-Only projects)
string
When the job started processing
string
When the job finished (null if still running or pending)
string
Error details if status is
failedinteger
Total number of jobs returned
integer
The limit used for pagination
integer
The offset used for pagination
curl "https://api.intellibase.dev/api/v1/projects/proj-abc123/jobs?limit=50&offset=0" \
-H "Authorization: Bearer ib-your-api-key"
import requests
project_id = "proj-abc123"
response = requests.get(
f"https://api.intellibase.dev/api/v1/projects/{project_id}/jobs",
headers={"Authorization": "Bearer ib-your-api-key"},
params={"limit": 50, "offset": 0}
)
result = response.json()
print(f"Found {result['total']} jobs")
for job in result["jobs"]:
status_emoji = {"completed": "✓", "failed": "✗", "running": "⏳", "pending": "⏸"}.get(job["status"], "?")
print(f"{status_emoji} {job['source_doc_id']}: {job['status']}")
if job["status"] == "completed":
print(f" {job['chunks_processed']} chunks, {job['nodes_created']} nodes, {job['edges_created']} edges")
const projectId = "proj-abc123";
const response = await fetch(
`https://api.intellibase.dev/api/v1/projects/${projectId}/jobs?limit=50&offset=0`,
{
headers: {
"Authorization": "Bearer ib-your-api-key"
}
}
);
const result = await response.json();
console.log(`Found ${result.total} jobs`);
const statusEmoji = {
completed: "✓",
failed: "✗",
running: "⏳",
pending: "⏸"
};
result.jobs.forEach(job => {
const emoji = statusEmoji[job.status] || "?";
console.log(`${emoji} ${job.source_doc_id}: ${job.status}`);
if (job.status === "completed") {
console.log(` ${job.chunks_processed} chunks, ` +
`${job.nodes_created} nodes, ${job.edges_created} edges`);
}
});
{
"jobs": [
{
"job_id": "job-abc123",
"project_id": "proj-abc123",
"source_doc_id": "doc-001",
"status": "completed",
"chunks_processed": 12,
"nodes_created": 8,
"edges_created": 15,
"started_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:15Z",
"error_message": null
},
{
"job_id": "job-def456",
"project_id": "proj-abc123",
"source_doc_id": "doc-002",
"status": "running",
"chunks_processed": 0,
"nodes_created": 0,
"edges_created": 0,
"started_at": "2024-01-15T10:29:00Z",
"completed_at": null,
"error_message": null
},
{
"job_id": "job-ghi789",
"project_id": "proj-abc123",
"source_doc_id": "doc-003",
"status": "failed",
"chunks_processed": 5,
"nodes_created": 3,
"edges_created": 2,
"started_at": "2024-01-15T10:28:00Z",
"completed_at": "2024-01-15T10:28:10Z",
"error_message": "LLM API timeout after 3 retries"
}
],
"total": 3,
"limit": 50,
"offset": 0
}
{
"detail": "User is not authorized for this project"
}
Jobs are sorted by most recent first (newest at the top).
Use pagination to browse large job histories efficiently. Set
limit=50 or limit=100 for best performance.⌘I