# Pexels — 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 millions of free stock photos and videos on Pexels. Access trending content, photographer galleries, photo/video challenges, and search suggestions via a clean API.

**Category:** Other | **Website:** [pexels.com/](https://pexels.com/) | **Docs:** [parse.bot/marketplace/3fdd825f-f4b2-4105-8e93-61a3cb6672c9/pexels-com-api](https://parse.bot/marketplace/3fdd825f-f4b2-4105-8e93-61a3cb6672c9/pexels-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_challenges

Retrieve photo/video challenges on Pexels. Returns paginated challenge objects with title, description, prizes, end dates, and participation stats. Filter by state to see active or past challenges.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `per_page` | integer | No | Number of results per page |
| `state` | string | No | Filter by challenge state: active, past |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_challenges \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","per_page":"<integer>","state":"<string>"}'
```

### get_media_details

Retrieve full metadata for a specific photo or video by its numeric ID. Returns complete attributes including all tags, all image/video URLs at every resolution, user information, translations, and color data. Use IDs from search_photos or search_videos results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `media_id` | string | Yes | Numeric ID of the photo or video (from search_photos or search_videos results) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_media_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"media_id":"<string>"}'
```

### get_photographer_gallery

Retrieve all photos and videos uploaded by a specific photographer, ordered by recency. Returns paginated media items. Use the user ID from search results (user.id field).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `per_page` | integer | No | Number of results per page |
| `user_id` | string | Yes | Numeric user ID of the photographer (from search results user.id field) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_photographer_gallery \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","per_page":"<integer>","user_id":"<string>"}'
```

### get_search_suggestions

Retrieve autocomplete search suggestions for a given prefix string. Returns a list of suggested search terms that begin with or relate to the input prefix.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search prefix to get suggestions for |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_search_suggestions \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

### get_trending_photos

Retrieve trending photos currently featured on the Pexels homepage feed. Uses cursor-based pagination — the response includes a cursor string; pass it as seed to fetch the next page. Omit seed for the first page.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `per_page` | integer | No | Number of results per page |
| `seed` | string | No | Cursor for pagination. Use the cursor value from the previous response to get the next page. Omit for first page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_trending_photos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"per_page":"<integer>","seed":"<string>"}'
```

### get_trending_videos

Retrieve trending videos currently featured on Pexels. Uses cursor-based pagination — the response includes a cursor string; pass it as seed to fetch the next page. Omit seed for the first page.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `per_page` | integer | No | Number of results per page |
| `seed` | string | No | Cursor for pagination. Use the cursor value from the previous response to get the next page. Omit for first page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/get_trending_videos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"per_page":"<integer>","seed":"<string>"}'
```

### search_photos

Full-text search over Pexels photo library by keyword. Supports filtering by dominant color, orientation, and size. Returns paginated results with photo metadata including title, dimensions, tags, user info, and image URLs at multiple resolutions. Each page returns up to per_page items; advance via the page parameter.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `color` | string | No | Filter by dominant color: red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white |
| `orientation` | string | No | Filter by orientation: landscape, portrait, square |
| `page` | integer | No | Page number for pagination |
| `per_page` | integer | No | Number of results per page |
| `query` | string | Yes | Search keyword for photos |
| `size` | string | No | Filter by size: large, medium, small |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/search_photos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"color":"<string>","orientation":"<string>","page":"<integer>","per_page":"<integer>","query":"<string>","size":"<string>"}'
```

### search_videos

Full-text search over Pexels video library by keyword. Supports filtering by orientation and size. Returns paginated results with video metadata including title, dimensions, duration, fps, user info, and direct MP4 links at multiple resolutions.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `orientation` | string | No | Filter by orientation: landscape, portrait, square |
| `page` | integer | No | Page number for pagination |
| `per_page` | integer | No | Number of results per page |
| `query` | string | Yes | Search keyword for videos |
| `size` | string | No | Filter by size: large, medium, small |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pexels-com-api-3fdd825f/search_videos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orientation":"<string>","page":"<integer>","per_page":"<integer>","query":"<string>","size":"<string>"}'
```
