# Job Data Points

## Query project job data points

`job_data_points.list(JobDataPointListParams**kwargs)  -> SyncPaginatedCursor[JobDataPoint]`

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

Returns paginated job data points for the current project.

### Parameters

- `job_type: Literal["classify", "extract", "parse"]`

  Job type to query.

  - `"classify"`

  - `"extract"`

  - `"parse"`

- `created_at_on_or_after: Optional[Union[str, datetime, null]]`

  Include items created at or after this timestamp (inclusive)

- `created_at_on_or_before: Optional[Union[str, datetime, null]]`

  Include items created at or before this timestamp (inclusive)

- `hours: Optional[int]`

  Hours of history to include.

- `organization_id: Optional[str]`

- `page_size: Optional[int]`

  Number of items per page.

- `page_token: Optional[str]`

  Cursor token for the next page.

- `project_id: Optional[str]`

- `status: Optional[Sequence[str]]`

  Filter by status.

### Returns

- `class JobDataPoint: …`

  A job data point.

  - `id: str`

    Job ID.

  - `created_at: datetime`

    Created timestamp.

  - `custom_tag: str`

    Custom tag.

  - `project_id: str`

    Project ID.

  - `status: str`

    Job status.

  - `updated_at: datetime`

    Updated timestamp.

  - `error_message: Optional[str]`

    Error message, if any.

  - `state_transitions: Optional[StateTransitions]`

    Job state transition timestamps.

    - `cancelled_at: Optional[datetime]`

    - `completed_at: Optional[datetime]`

    - `failed_at: Optional[datetime]`

    - `pending_at: Optional[datetime]`

    - `running_at: Optional[datetime]`

    - `throttled_at: Optional[datetime]`

### Example

```python
import os
from llama_cloud import LlamaCloud

client = LlamaCloud(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),  # This is the default and can be omitted
)
page = client.job_data_points.list(
    job_type="parse",
)
page = page.items[0]
print(page.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

- `class JobDataPoint: …`

  A job data point.

  - `id: str`

    Job ID.

  - `created_at: datetime`

    Created timestamp.

  - `custom_tag: str`

    Custom tag.

  - `project_id: str`

    Project ID.

  - `status: str`

    Job status.

  - `updated_at: datetime`

    Updated timestamp.

  - `error_message: Optional[str]`

    Error message, if any.

  - `state_transitions: Optional[StateTransitions]`

    Job state transition timestamps.

    - `cancelled_at: Optional[datetime]`

    - `completed_at: Optional[datetime]`

    - `failed_at: Optional[datetime]`

    - `pending_at: Optional[datetime]`

    - `running_at: Optional[datetime]`

    - `throttled_at: Optional[datetime]`
