# Teepublic — 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 products from TeePublic's print-on-demand marketplace, discover artists and their designs, and explore product types and featured creators. Get detailed information about specific products, artist profiles, and curated collections to find the perfect custom apparel and merchandise.

**Category:** Marketplaces | **Website:** [teepublic.com/](https://teepublic.com/) | **Docs:** [parse.bot/marketplace/4df35cfe-e99a-4d21-94a0-298bb501697c/teepublic-com-api](https://parse.bot/marketplace/4df35cfe-e99a-4d21-94a0-298bb501697c/teepublic-com-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/teepublic/`
**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 artist designs

List designs from a specific artist's storefront. Returns paginated product listings belonging to one artist. The username is the path segment from the artist's profile URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `username` | string | Yes | The artist's username as it appears in their profile URL. |

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

### Get artist profile

Retrieve public profile information for an artist by username. Returns display name, biography, avatar image URL, and external social media links. The username is the path segment from the artist's profile URL (teepublic.com/user/<username>).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | The artist's username as it appears in their profile URL (e.g. thepeachfuzz from teepublic.com/user/thepeachfuzz). |

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

### Get featured artists

Retrieve the weekly curated list of featured artists/designers. Returns artist usernames, profile URLs, avatar images, and social media links for each featured creator.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/teepublic/get-featured-artists \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get product details

Retrieve full details for a single product by its URL or path slug. Returns structured pricing, available sizes, colors, fits, styles, artist info, description, and related product variants. The URL can be a full absolute URL or a relative path starting with /.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | The full URL or path slug of the product page (e.g. https://www.teepublic.com/t-shirt/12345678-example-design-title or /t-shirt/12345678-example-design-title). |

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

### List product types

List available product types and topic categories extracted from the site navigation. Returns slugs suitable for use in search_products product_type parameter and topic-filtered browsing URLs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/teepublic/list-product-types \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Search products

Full-text search over TeePublic products by keyword. Results are scoped to a product type (defaults to t-shirts) and ordered by the chosen sort. Paginates via integer page number. Each result includes title, price, artist name, and image URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `product_type` | string | No | Product type slug to search within. Common values: t-shirts, hoodie, mug, hats, kids-t-shirt, socks, bags. |
| `query` | string | Yes | Search keyword. |
| `sort` | string | No | Sort order for results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/teepublic/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","product_type":"<string>","query":"<string>","sort":"<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.