# Nngroup — 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 access Nielsen Norman Group's extensive library of UX research, articles, reports, and courses to find best practices and guidelines on any UX topic. Quickly discover curated insights organized by topic to inform your design and research decisions.

**Category:** Education | **Website:** [nngroup.com/](https://nngroup.com/) | **Docs:** [parse.bot/marketplace/04b61031-e8fa-470c-a973-2baa1757a703/nngroup-com-api](https://parse.bot/marketplace/04b61031-e8fa-470c-a973-2baa1757a703/nngroup-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-nngroup-com-api-04b61031/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_article

Retrieve full content of a single article, report, video, or course page by its URL slug. Attempts an Algolia index lookup first; falls back to fetching and parsing the HTML page directly. The Algolia path returns the full indexed record; the HTML path returns title, body HTML, URL, and a generic type label.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | URL path segment for the content (e.g. 'articles/usability-101-introduction-to-usability') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/get_article \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### list_all_reports

Retrieve paginated list of all research reports in the NN/g catalog. Reports include full body text from the index. Returns newest reports first.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/list_all_reports \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### list_all_topics

Retrieve the complete list of UX topic categories with the number of content items in each. Topics are returned in descending order of article count. Use topic names from this list as input to list_articles_by_topic.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/list_all_topics \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_articles_by_topic

List all content items tagged with a specific topic. Returns paginated results. Topic names must match exactly as returned by list_all_topics (case-sensitive). Optionally filter by content type.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed) |
| `topic` | string | Yes | Topic name exactly as returned by list_all_topics (e.g. 'Ecommerce', 'Web Usability') |
| `type` | string | No | Filter results to a single content type |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/list_articles_by_topic \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","topic":"<string>","type":"<string>"}'
```

### list_live_courses

List all upcoming live online UX training courses and conference events. Includes both individual courses and multi-day UX Conference agendas. Returns newest/soonest events first.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/list_live_courses \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### search_articles

Full-text search across NN/g's content catalog (articles, videos, reports, courses). Returns paginated results ranked by relevance. Each item includes metadata (title, type, authors, publication date, topics) but may have an empty document_body for non-article types. Optionally filter by content type.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed) |
| `query` | string | Yes | Search keyword or phrase |
| `type` | string | No | Filter results to a single content type |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-nngroup-com-api-04b61031/search_articles \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>","type":"<string>"}'
```
