# Quod Lib Umich — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse millions of digitized items from the University of Michigan Library, including books, manuscripts, photographs, and more, while retrieving detailed metadata, full-text content, and image information for each collection and item. Access organized collections, view item details, and discover historical and scholarly materials across the library's comprehensive digital repository.

**Category:** Education | **Website:** [quod.lib.umich.edu/](https://quod.lib.umich.edu/) | **Docs:** [parse.bot/marketplace/07cdc5ea-9f99-43e6-a2c0-b7ca0ce61f62/quod-lib-umich-edu-api](https://parse.bot/marketplace/07cdc5ea-9f99-43e6-a2c0-b7ca0ce61f62/quod-lib-umich-edu-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get collection detail

Get details about a specific collection including its title, description, browse/search options, and item count statistics.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_id` | string | Yes | Unique ID of the collection (e.g. 'alajournals', 'apis', 'umhistmath'). Obtainable from list_collections results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/get-collection-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"collection_id":"<string>"}'
```

### Get image metadata

Retrieve IIIF Image API metadata (info.json) for a specific page image within an item. Returns image dimensions, tile sizes, and scale factors.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID (e.g. 'alajournals') |
| `image_id` | string | Yes | Image identifier, zero-padded 8-digit page number (e.g. '00000001' for page 1). |
| `item_id` | string | Yes | Item identifier (e.g. '0064218.1910.001') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/get-image-metadata \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"collection_id":"<string>","image_id":"<string>","item_id":"<string>"}'
```

### Get item detail

Get full metadata and table of contents for a specific item within a collection. Returns bibliographic metadata and page-level TOC links.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID (e.g. 'alajournals') |
| `item_id` | string | Yes | Item identifier (e.g. '0064218.1910.001'). Obtainable from search_collection or search_all_collections results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/get-item-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"collection_id":"<string>","item_id":"<string>"}'
```

### Get item fulltext

Get the full text view for a text item. Returns extracted OCR text content from the item's pages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID (e.g. 'alajournals') |
| `item_id` | string | Yes | Item identifier (e.g. '0064218.1910.001') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/get-item-fulltext \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"collection_id":"<string>","item_id":"<string>"}'
```

### List collections

List all digital collections from the University of Michigan Library. Returns an array of collections with titles, descriptions, and IDs. Supports optional filtering by format, access level, or subject. No pagination - all matching collections are returned in a single response.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `access_filter` | string | No | Filter by access level (passed as byAccess query param to the upstream site) |
| `format_filter` | string | No | Filter by format type (passed as byFormat query param to the upstream site) |
| `subject_filter` | string | No | Filter by subject area (passed as bySubject query param to the upstream site) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/list-collections \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"access_filter":"<string>","format_filter":"<string>","subject_filter":"<string>"}'
```

### Search all collections

Cross-collection full-text search across all available text collections. Returns paginated results (up to 50 per page) from multiple collections.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (starts at 1). Each page returns up to 50 results. |
| `query` | string | Yes | Search query keywords |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/search-all-collections \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>"}'
```

### Search collection

Search for items within a specific collection by keyword. Returns paginated results (up to 50 per page) with item titles, IDs, URLs, and metadata. Total result count is included.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_id` | string | Yes | Unique ID of the collection to search within (e.g. 'alajournals') |
| `page` | integer | No | Page number (starts at 1). Each page returns up to 50 results. |
| `query` | string | Yes | Search query keywords |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/quod-lib-umich/search-collection \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"collection_id":"<string>","page":"<integer>","query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.