# Docmorris — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://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 products from DocMorris.de to compare pricing, read customer reviews, and find current discounts. Look up specific products by name or pharmaceutical number (PZN) to retrieve detailed information, real-time pricing, and availability data.

**Category:** Healthcare | **Website:** [docmorris.de/](https://docmorris.de/) | **Docs:** [parse.bot/marketplace/a37e2a67-305a-4446-8dc6-3cd892687423/docmorris-de-api](https://parse.bot/marketplace/a37e2a67-305a-4446-8dc6-3cd892687423/docmorris-de-api)

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

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/docmorris/`
**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 cannabis category products

Browse products within a specific category by name. Uses Algolia facet filtering on category_names. Returns paginated product listings identical in shape to search results. Category names are the display names used on DocMorris (German).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | No | Category name to filter by (e.g. 'Hanf & CBD-Produkte', 'CBD-Öl', 'CBD-Salben', 'Muskeln, Knochen, Gelenke') |
| `limit` | integer | No | Number of results per page (max 100) |
| `page` | integer | No | Page number (0-indexed) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/docmorris/get-cannabis-category-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"<string>","limit":"<integer>","page":"<integer>"}'
```

### Get discounted cannabis products

Search for products that currently have a discount. Performs an Algolia search then client-side filters results to only include products with savings_percentage > 0. Returns the filtered list and count of discounted products found.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max results to scan for discounts (higher limit finds more discounted products) |
| `query` | string | No | Search keyword to find discounted products within |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/docmorris/get-discounted-cannabis-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","query":"<string>"}'
```

### Get product details

Fetch full details for a specific product by its PZN identifier and URL slug. Returns comprehensive product information including multi-resolution images, pricing with savings, manufacturer addresses, brand, dosage form, packaging size, availability, breadcrumbs, and category hierarchy. The slug is available from search results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pzn` | string | Yes | Pharmaceutical Central Number (PZN) of the product (e.g. '16892259') |
| `slug` | string | Yes | URL slug of the product from search results (e.g. 'cbd-vital-bio-cbd-oel-10-naturextrakt-premium-hanftropfen') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/docmorris/get-product-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"pzn":"<string>","slug":"<string>"}'
```

### Get product reviews

Retrieve customer reviews and ratings for a product using its PZN. Returns review text, star ratings, secondary ratings (effectiveness, value, ease of use), reviewer nicknames, and submission dates from BazaarVoice. Also includes aggregated review statistics and product metadata in Includes.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of reviews to return (max 100) |
| `offset` | integer | No | Offset for pagination |
| `pzn` | string | Yes | PZN of the product (e.g. '17839899') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/docmorris/get-product-reviews \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","pzn":"<string>"}'
```

### Search by pzn

Lookup one or more products by their PZN identifiers. Returns detailed product information including pricing, multi-resolution images, manufacturer details, availability, and category hierarchy for each PZN. Accepts a comma-separated list.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pzns` | string | Yes | Comma-separated list of PZNs (e.g. '17839899,16892259') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/docmorris/search-by-pzn \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"pzns":"<string>"}'
```

### Search cannabis products

Full-text search across the DocMorris product catalog via Algolia. Returns paginated results with product name, pricing, manufacturer, brand, category, and availability data. Pagination is zero-indexed. Each hit includes pricing.savings_percentage for discount detection and has_stock for availability.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page (max 100) |
| `page` | integer | No | Page number (0-indexed) |
| `query` | string | No | Search keyword (e.g. 'cannabis', 'CBD', 'Hanf', 'Aspirin') |

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

## Next steps

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