> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bedrock.cv/llms.txt
> Use this file to discover all available pages before exploring further.

# Filtering

> Filter list results by status, type, date range, and related resources.

All list endpoints accept query parameters to filter results. Filters are combined with AND logic — only records matching all specified filters are returned.

## Common Filters

These filters are available on most list endpoints:

| Parameter        | Type     | Description                                           |
| ---------------- | -------- | ----------------------------------------------------- |
| `created_after`  | datetime | Only records created after this timestamp (ISO 8601)  |
| `created_before` | datetime | Only records created before this timestamp (ISO 8601) |

```bash theme={null}
# Drawings created in the last 7 days
curl "https://api.bedrock.cv/drawings?project_id=prj_01X&created_after=2024-01-08T00:00:00Z" \
  -H "Authorization: Bearer sk_xxx"
```

## Resource-Specific Filters

### Jobs

| Parameter     | Type   | Description                                                              |
| ------------- | ------ | ------------------------------------------------------------------------ |
| `project_id`  | string | Jobs in this project                                                     |
| `status`      | string | Filter by status: `Queued`, `Started`, `Completed`, `Failed`, `Canceled` |
| `type`        | string | Filter by job type (e.g., `compare`)                                     |
| `target_type` | string | Filter by target resource type: `drawing`, `sheet`, `block`, `overlay`   |
| `target_id`   | string | Filter by target resource ID                                             |
| `parent_id`   | string | Child jobs of a parent job                                               |

```bash theme={null}
# All failed compare jobs in a project
curl "https://api.bedrock.cv/jobs?project_id=prj_01X&status=Failed&type=compare" \
  -H "Authorization: Bearer sk_xxx"

# All child jobs of a drawing comparison
curl "https://api.bedrock.cv/jobs?parent_id=job_01JABCD123" \
  -H "Authorization: Bearer sk_xxx"
```

### Drawings

| Parameter    | Type   | Description                                       |
| ------------ | ------ | ------------------------------------------------- |
| `project_id` | string | **Required.** Drawings in this project            |
| `name`       | string | Filter by name (case-insensitive substring match) |

```bash theme={null}
curl "https://api.bedrock.cv/drawings?project_id=prj_01X&name=floor%20plan" \
  -H "Authorization: Bearer sk_xxx"
```

### Sheets

| Parameter      | Type   | Description                                                |
| -------------- | ------ | ---------------------------------------------------------- |
| `drawing_id`   | string | Sheets in this drawing                                     |
| `project_id`   | string | Sheets across all drawings in a project                    |
| `discipline`   | string | Filter by discipline (e.g., `architectural`, `structural`) |
| `sheet_number` | string | Exact match on sheet number (e.g., `A-101`)                |

```bash theme={null}
# All architectural sheets in a drawing
curl "https://api.bedrock.cv/sheets?drawing_id=drw_01X&discipline=architectural" \
  -H "Authorization: Bearer sk_xxx"

# Find sheet A-101 across all drawings in a project
curl "https://api.bedrock.cv/sheets?project_id=prj_01X&sheet_number=A-101" \
  -H "Authorization: Bearer sk_xxx"
```

### Blocks

| Parameter  | Type   | Description                                               |
| ---------- | ------ | --------------------------------------------------------- |
| `sheet_id` | string | Blocks on this sheet                                      |
| `type`     | string | Filter by block type (e.g., `Plan`, `Detail`, `Schedule`) |

```bash theme={null}
# All plan blocks on a sheet
curl "https://api.bedrock.cv/blocks?sheet_id=sht_01X&type=Plan" \
  -H "Authorization: Bearer sk_xxx"
```

### Overlays

| Parameter     | Type    | Description                                                                 |
| ------------- | ------- | --------------------------------------------------------------------------- |
| `project_id`  | string  | Overlays in this project                                                    |
| `job_id`      | string  | Overlays created by a specific comparison job                               |
| `drawing_id`  | string  | Overlays involving blocks from this drawing                                 |
| `has_changes` | boolean | Only overlays where change detection has been run (`true`) or not (`false`) |

```bash theme={null}
# Overlays from a specific comparison, with changes detected
curl "https://api.bedrock.cv/overlays?job_id=job_01X&has_changes=true" \
  -H "Authorization: Bearer sk_xxx"
```

### Files

| Parameter      | Type   | Description                                   |
| -------------- | ------ | --------------------------------------------- |
| `project_id`   | string | **Required.** Files in this project           |
| `content_type` | string | Filter by MIME type (e.g., `application/pdf`) |

## Combining Filters with Pagination

Filters work alongside [cursor-based pagination](/api-reference/pagination):

```bash theme={null}
# Page through completed jobs
curl "https://api.bedrock.cv/jobs?project_id=prj_01X&status=Completed&limit=50" \
  -H "Authorization: Bearer sk_xxx"

# Next page
curl "https://api.bedrock.cv/jobs?project_id=prj_01X&status=Completed&limit=50&cursor=eyJ..." \
  -H "Authorization: Bearer sk_xxx"
```

Filters are encoded into the cursor, so you don't need to repeat filter parameters when paging — just pass the cursor.
