# Blur — 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.

> Access NFT collection data on Blur.io, including floor prices, best bids, listed tokens, and recent activity. Authenticate with an Ethereum wallet to place collection bids and retrieve portfolio holdings.

**Category:** Web3 & Onchain | **Website:** [blur.io/](https://blur.io/) | **Docs:** [parse.bot/marketplace/bbf9d0d5-18bf-4c67-bba6-843e72e2ba14/blur-io-api](https://parse.bot/marketplace/bbf9d0d5-18bf-4c67-bba6-843e72e2ba14/blur-io-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/blur/`
**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

Fetch detailed metadata and market stats for a single NFT collection by its slug. Returns comprehensive data including floor price, volume across time windows, trait frequency distributions, best bid, and supply/ownership counts. One network round-trip per collection.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_slug` | string | Yes | Collection slug identifier (e.g. 'pudgypenguins', 'boredapeyachtclub'). |

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

### Get collection activity

Fetch recent sales and listing activity for a collection. Returns events including sales and order creations with price, trader addresses, marketplace, and timestamps. Internally resolves the collection's contract address before querying events.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_slug` | string | Yes | Collection slug identifier (e.g. 'pudgypenguins', 'boredapeyachtclub'). |

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

### Get collection best bid

Retrieve the best (highest) collection-wide offer/bid and total bid value for a collection. Useful for gauging buyer demand and the spread between floor and highest bid.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_slug` | string | Yes | Collection slug identifier (e.g. 'pudgypenguins', 'boredapeyachtclub'). |

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

### Get collection floor price

Retrieve the current floor price and recent floor price changes for a collection. Returns floor price now, one day ago, and one week ago — useful for tracking price trends without fetching the full collection detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_slug` | string | Yes | Collection slug identifier (e.g. 'pudgypenguins', 'boredapeyachtclub'). |

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

### Get collection tokens

Fetch NFT tokens currently listed for sale in a collection. Returns token details including price, rarity rank, traits, and owner. Only tokens with active ask orders are included. Collections with no active listings return an empty array.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `collection_slug` | string | Yes | Collection slug identifier (e.g. 'pudgypenguins', 'boredapeyachtclub'). |

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

### Get collections

Fetch a ranked list of NFT collections sorted by trading volume or other metrics. Returns collection summaries including floor prices, volume stats across multiple time windows, and current best bid. The full ranking contains thousands of collections; a single call returns one page of results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `order` | string | No | Sort order. |
| `sort` | string | No | Sort field for ranking collections. |

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

### Get portfolio

Fetch NFT portfolio for a wallet address. Requires active auth session.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `wallet_address` | string | Yes | Ethereum wallet address |

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

### Login

Exchange signed challenge for a JWT auth token. Requires signature from external wallet.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `challenge_message` | string | Yes | Original challenge message |
| `signature` | string | Yes | Signed message signature from wallet |
| `wallet_address` | string | Yes | Ethereum wallet address |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/blur/login \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"challenge_message":"<string>","signature":"<string>","wallet_address":"<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.