---
title: API reference
description: Every SDK resource, one page each. Each method maps 1:1 to a REST endpoint.
section: API Reference
order: 0
---
The Pictograph SDK exposes 15 resource groups under `client.<resource>`. Each method maps 1:1 to a REST endpoint. Use the SDK for type safety and auto-retry; use raw REST when you need a non-Python language.

```python
from pictograph import Client
client = Client()
```

## Resources

| Resource | Purpose |
| --- | --- |
| [Datasets](/docs/api-reference/datasets.md) | Project CRUD and bulk download |
| [Images](/docs/api-reference/images.md) | Single-image upload / download / delete |
| [Annotations](/docs/api-reference/annotations.md) | Per-image annotation read / save / delete |
| [Auto-annotate](/docs/api-reference/auto-annotate.md) | SAM3 point / box / text / batch prompts |
| [Search](/docs/api-reference/search.md) | Tag and similarity search across a dataset |
| [Batch](/docs/api-reference/batch.md) | Bulk move / copy / delete / update on images |
| [Exports](/docs/api-reference/exports.md) | Dataset exports in COCO, YOLO, CVAT, Pascal VOC, LabelMe, CSV |
| [Training](/docs/api-reference/training.md) | Spawn and monitor training runs |
| [Models](/docs/api-reference/models.md) | List and download trained ONNX weights |
| [Credits](/docs/api-reference/credits.md) | Balance, ledger, pre-flight cost estimation |
| [Connectors](/docs/api-reference/connectors.md) | V7 / Roboflow dataset import |
| [Video](/docs/api-reference/video.md) | Video upload + frame extraction |
| [Organizations](/docs/api-reference/organizations.md) | Members and invites for the active org |
| [Projects](/docs/api-reference/projects.md) | Project config (classes, annotation types) |
| [API keys](/docs/api-reference/api-keys.md) | Programmatic key management |
| [Tools](/docs/api-reference/tools.md) | Agent tool registry (JSON Schema reference) |

## Prefer workflows for end-to-end tasks

For multi-step flows like "upload, annotate, train", reach for [`pictograph.workflows`](/docs/workflows.md) before chaining resource calls. Workflows handle short-circuit on failure, credit gating, and report aggregation for you.

| Workflow | Chains |
| --- | --- |
| [`full_pipeline`](/docs/workflows/full-pipeline.md) | upload → auto-annotate → train |
| [`upload_dataset_from_folder`](/docs/workflows/upload.md) | walk folder → bulk upload |
| [`auto_annotate_dataset`](/docs/workflows/auto-annotate.md) | list images → batch SAM3 → save |
| [`train_pipeline`](/docs/workflows/train.md) | export → train → fetch model |

Each workflow is also exposed as an [agent tool](/docs/api-reference/tools.md).

## Conventions across resources

- **Name-based lookups** are preferred (`get(name=...)`). UUID variants exist where useful (`get_by_id(...)`).
- **Pagination**: `.list()` returns one page; `.iter()` returns an `OffsetPager` that auto-fetches subsequent pages.
- **Long-running ops** (training, exports, batch SAM3, dataset imports) default to `wait=True` and poll until terminal. Pass `wait=False` to fire-and-forget.
- **Failure reports**: bulk operations return per-item failure lists rather than raising on the first error.
- **Idempotency**: mutating operations auto-generate `Idempotency-Key` headers — safe to retry. Pass `idempotency_key=` to set it explicitly.