# Job Data Points

## Query project job data points

`client.jobDataPoints.list(JobDataPointListParamsquery, RequestOptionsoptions?): PaginatedCursor<JobDataPoint>`

**get** `/api/v1/job-data-points`

Returns paginated job data points for the current project.

### Parameters

- `query: JobDataPointListParams`

  - `job_type: "classify" | "extract" | "parse"`

    Job type to query.

    - `"classify"`

    - `"extract"`

    - `"parse"`

  - `created_at_on_or_after?: string | null`

    Include items created at or after this timestamp (inclusive)

  - `created_at_on_or_before?: string | null`

    Include items created at or before this timestamp (inclusive)

  - `hours?: number`

    Hours of history to include.

  - `organization_id?: string | null`

  - `page_size?: number | null`

    Number of items per page.

  - `page_token?: string | null`

    Cursor token for the next page.

  - `project_id?: string | null`

  - `status?: Array<string> | null`

    Filter by status.

### Returns

- `JobDataPoint`

  A job data point.

  - `id: string`

    Job ID.

  - `created_at: string`

    Created timestamp.

  - `custom_tag: string`

    Custom tag.

  - `project_id: string`

    Project ID.

  - `status: string`

    Job status.

  - `updated_at: string`

    Updated timestamp.

  - `error_message?: string | null`

    Error message, if any.

  - `state_transitions?: StateTransitions`

    Job state transition timestamps.

    - `cancelled_at?: string | null`

    - `completed_at?: string | null`

    - `failed_at?: string | null`

    - `pending_at?: string | null`

    - `running_at?: string | null`

    - `throttled_at?: string | null`

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const jobDataPoint of client.jobDataPoints.list({ job_type: 'parse' })) {
  console.log(jobDataPoint.id);
}
```

#### Response

```json
{
  "items": [
    {
      "id": "pjb-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "created_at": "2026-04-29T18:00:00Z",
      "custom_tag": "premium",
      "project_id": "11111111-1111-1111-1111-111111111111",
      "status": "completed",
      "updated_at": "2026-04-29T18:01:00Z",
      "error_message": "Failed to process file.",
      "state_transitions": {
        "cancelled_at": "2026-04-29T18:01:00Z",
        "completed_at": "2026-04-29T18:01:00Z",
        "failed_at": "2026-04-29T18:01:00Z",
        "pending_at": "2026-04-29T18:00:00Z",
        "running_at": "2026-04-29T18:00:05Z",
        "throttled_at": "2026-04-29T18:00:02Z"
      }
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```

## Domain Types

### Job Data Point

- `JobDataPoint`

  A job data point.

  - `id: string`

    Job ID.

  - `created_at: string`

    Created timestamp.

  - `custom_tag: string`

    Custom tag.

  - `project_id: string`

    Project ID.

  - `status: string`

    Job status.

  - `updated_at: string`

    Updated timestamp.

  - `error_message?: string | null`

    Error message, if any.

  - `state_transitions?: StateTransitions`

    Job state transition timestamps.

    - `cancelled_at?: string | null`

    - `completed_at?: string | null`

    - `failed_at?: string | null`

    - `pending_at?: string | null`

    - `running_at?: string | null`

    - `throttled_at?: string | null`
