Discover/Nngroup API
live

Nngroup APInngroup.com

Access NN/g's full UX research catalog via API. Search articles, retrieve full content, browse by topic, list reports, and get upcoming training events.

Endpoint health
verified 2d ago
get_article
list_articles_by_topic
list_all_topics
list_all_reports
list_live_courses
6/6 passing latest checkself-healing
Endpoints
6
Updated
26d ago

What is the Nngroup API?

The Nielsen Norman Group API exposes 6 endpoints covering NN/g's complete catalog of UX research articles, videos, research reports, and training courses. Use search_articles to run full-text queries across the entire content library, or get_article to retrieve the full HTML body and metadata for any individual piece of content by URL slug. Topics, reports, and live training events each have dedicated listing endpoints with pagination support.

Try it
Page number (0-indexed)
Filter results to a single content type
Search keyword or phrase
api.parse.bot/scraper/b15427e1-ed9d-43c5-bf29-2b707e3312f8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b15427e1-ed9d-43c5-bf29-2b707e3312f8/search_articles?page=0&type=Article&query=usability' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace nngroup-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: NN/g UX Research API — search, browse by topic, drill into articles."""
from parse_apis.nn_g_ux_research_api import NNGroup, ContentType, ArticleNotFound

client = NNGroup()

# Search for usability content, capped at 5 items total.
for article in client.articles.search(query="usability", content_type=ContentType.ARTICLE, limit=5):
    print(article.title, article.content_type, article.pub_date)

# Browse topics and drill into the first one's articles.
topic = client.topics.list(limit=1).first()
if topic:
    print(f"Topic: {topic.name} ({topic.count} items)")
    for item in topic.list_articles(content_type=ContentType.VIDEO, limit=3):
        print(item.title, item.url)

# Fetch a single article by slug.
try:
    detail = client.articles.get_by_slug(slug="articles/usability-101-introduction-to-usability")
    print(detail.title, detail.url)
except ArticleNotFound as exc:
    print(f"Not found: {exc.slug}")

# List research reports.
report = client.articles.list_reports(limit=1).first()
if report:
    print(report.title, report.people, report.visible_topics)

print("exercised: articles.search / topics.list / topic.list_articles / articles.get_by_slug / articles.list_reports")
All endpoints · 6 totalmissing one? ·

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.

Input
ParamTypeDescription
pageintegerPage number (0-indexed)
typestringFilter results to a single content type
queryrequiredstringSearch keyword or phrase
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page",
    "items": "array of content objects",
    "total": "integer total matching results",
    "nbPages": "integer total pages"
  },
  "sample": {
    "data": {
      "page": 0,
      "items": [
        {
          "objectID": "Video_970",
          "document_url": "/videos/usability-101/",
          "document_body": "",
          "document_type": "Video",
          "document_title": "Usability 101",
          "document_people": [
            "Kate Kaplan"
          ],
          "document_pub_date": 1679677200,
          "document_description": "Usability assesses how easy user interfaces are to use.",
          "document_visible_topics": [
            "User Testing",
            "Web Usability"
          ]
        }
      ],
      "total": 1915,
      "nbPages": 50
    },
    "status": "success"
  }
}

About the Nngroup API

Search and Content Retrieval

The search_articles endpoint accepts a required query string and returns paginated results ranked by relevance. Each result object includes title, document_type, authors, publication date, and associated topics. An optional type parameter narrows results to a specific content type (article, video, report, or course). The page parameter is 0-indexed. Non-article types may return an empty document_body in search results — use get_article with the item's slug to fetch the full body.

get_article takes a slug such as articles/usability-101-introduction-to-usability and returns document_title, document_url, document_type, and document_body as HTML. This endpoint covers the full range of NN/g content types, not just articles.

Browsing by Topic, Reports, and Events

list_all_topics returns the complete set of UX topic categories, each with a name and count of associated items. The count field tells you how much content exists per topic before you commit to a query. Feed those exact topic names into list_articles_by_topic, which also accepts an optional type filter and page parameter — topic names are case-sensitive and must match the values returned by list_all_topics exactly.

list_all_reports returns paginated research reports ordered newest first, with full body text included in the index records. list_live_courses lists upcoming live online training sessions and UX Conference events, ordered by soonest first, with pagination via the page parameter. Both return total and nbPages fields for traversing the full result set.

Reliability & maintenanceVerified

The Nngroup API is a managed, monitored endpoint for nngroup.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nngroup.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official nngroup.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a UX knowledge base by ingesting all articles for a given topic using list_articles_by_topic with a type filter
  • Monitor new NN/g research reports by polling list_all_reports and checking for items newer than a stored timestamp
  • Power an internal search tool over NN/g content using search_articles with keyword queries filtered by content type
  • Aggregate upcoming UX training schedules using list_live_courses to surface relevant conference events
  • Retrieve full article text for summarization or LLM ingestion using get_article with a known slug
  • Enumerate the full NN/g topic taxonomy via list_all_topics to map article counts across UX subject areas
  • Compile a reading list tool that resolves article slugs to full HTML content via get_article
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Nielsen Norman Group have an official developer API?+
No. NN/g does not publish a public developer API. This Parse API provides structured access to the same content available at nngroup.com.
What does get_article return compared to search_articles results?+
search_articles returns metadata fields — title, type, authors, publication date, and topics — but document_body may be empty for non-article types. get_article always attempts to return the full document_body as HTML along with document_title, document_url, and document_type. When you need full text, use get_article with the content slug.
How strict is topic matching in list_articles_by_topic?+
Topic names are case-sensitive and must match exactly as returned by list_all_topics. For example, 'Ecommerce' and 'Web Usability' are valid values, but 'ecommerce' or 'web usability' will not return results. Call list_all_topics first to get the canonical name and article count for any topic you intend to query.
Does the API expose individual author profile pages or author bibliographies?+
Not currently. The API returns author names as metadata fields within content objects from search_articles and get_article, but there are no endpoints for retrieving an author's full profile or a filtered list of all content by a specific author. You can fork this API on Parse and revise it to add an author-scoped listing endpoint.
Can I retrieve the full text of paid NN/g research reports through this API?+
list_all_reports returns report objects with body text from the indexed record, but the depth of content available for paywalled reports is limited to what NN/g surfaces publicly. Full gated report content is not accessible. The API covers the catalog metadata and any indexed body text. You can fork it on Parse and revise to add logic targeting specific public portions if your use case requires different scoping.
Page content last updated . Spec covers 6 endpoints from nngroup.com.
Related APIs in EducationSee all →
smashingmagazine.com API
Access Smashing Magazine's library of articles, books, ebooks, newsletters, and events with powerful search and filtering capabilities. Browse by category, discover related content, explore author profiles, and stay updated with the latest design and web development resources.
nrk.no API
Access the latest news from Norway's leading broadcaster NRK.no, including front-page stories, category-specific articles, regional news, and breaking news updates through a unified search and browsing interface. Stay informed with full article content, RSS feeds, and real-time news ticker notifications across all major topics.
nolo.com API
Access legal articles, state-specific law guides, dictionary definitions, and DIY legal products from Nolo.com. Search across the full Nolo library, browse trending and recent content, and look up legal topics by keyword or category.
sneakernews.com API
Browse the latest sneaker news, search articles by keyword, and look up upcoming release dates — including pricing, images, and retailer links. Also surfaces per-page ad slot inventory and density metrics for programmatic and publisher analysis.
vg.no API
Access VG.no's latest news, articles, sports scores, and TV guides through a single interface where you can browse the front page, search articles by topic, view category-specific content, and find related stories. Get real-time sports scores and television schedules alongside comprehensive news coverage from Norway's leading news outlet.
pewresearch.org API
Search and retrieve Pew Research Center publications, reports, and expert profiles across a wide range of topics, including technology, politics, science, religion, and social trends. Access detailed report content, key findings, charts, and methodology information, and filter results by topic, format, or region to stay informed on the latest research and data.
news.un.org API
Access UN News headlines, stories, and articles organized by topic and region across multiple languages. Search news content, retrieve in-depth reports, and subscribe to RSS feeds for updates on global events and UN initiatives.
jstor.org API
Search and browse millions of academic articles, journals, and research issues from JSTOR's library, or retrieve specific articles and journal details to explore scholarly content by subject. Access peer-reviewed research across multiple disciplines to find the academic sources you need.