---
title: "Para Labs read API"
description: "Para Labs counts how often AI answer engines name brands and publishes lab studies on named brands. This page documents the public read API for that record. It is not a product console. Nothing here writes, bills, or signs anyone in."
canonical: "https://paralabs.ai/developers"
last-updated: "2026-10-31"
---

# Para Labs read API

Para Labs counts how often AI answer engines name brands and publishes lab studies on named brands. This page documents the public read API for that record. It is not a product console. Nothing here writes, bills, or signs anyone in.

Canonical URL: https://paralabs.ai/developers

## Authentication

No authentication. Do not send an API key or a bearer token. [https://paralabs.ai/auth.md](/auth.md) states the same thing for agents, and [/.well-known/oauth-protected-resource](/.well-known/oauth-protected-resource) lists no authorization servers.

## Endpoints

| Method | Path | What it returns |
| --- | --- | --- |
| GET | [/api/v1](/api/v1) | Index of these endpoints |
| GET | [/api/v1/brands](/api/v1/brands) | Brands in the record, 50 per page |
| GET | /api/v1/brands/{slug} | One brand |
| GET | [/api/v1/research](/api/v1/research) | Lab studies still in the index |
| GET | /api/v1/research/{slug} | One study, including its markdown body |
| GET | /api/v1/search?q={text} | Brand names and study titles matching the text |

`limit` is 1 to 100 (default 50). `offset` skips that many matches. `q` filters a list. Search requires `q`.

```
curl -sS https://paralabs.ai/api/v1/brands?limit=2
curl -sS https://paralabs.ai/api/v1/search?q=salesforce
```

The machine-readable description is [openapi.json](/openapi.json). The RFC 9727 catalog is [/.well-known/api-catalog](/.well-known/api-catalog).

## Errors

Unknown paths and rejected query strings return `application/problem+json` (RFC 9457) with `type`, `title`, `status`, `detail`, and `instance`. A method other than GET returns 405 and an `Allow: GET, HEAD, OPTIONS` header. A missing brand or study returns 404. There is no HTML error page on these routes.

<h2 id="errors">Error document</h2>

```json
{
  "type": "https://paralabs.ai/developers#errors",
  "title": "Not Found",
  "status": 404,
  "detail": "No brand with slug \"not-a-brand\" is in the Para Labs record.",
  "instance": "/api/v1/brands/not-a-brand"
}
```

## MCP

A read-only Model Context Protocol server speaks Streamable HTTP at [/mcp](/mcp). Tools: `list_brands`, `get_brand`, `list_research`, `get_research`, `search`. Each tool is read-only. The server card is [/.well-known/mcp/server-card.json](/.well-known/mcp/server-card.json). No token is required.

## What this API does not do

It does not create accounts, take payment, change the brand record, or accept a write. The record is rebuilt by the lab's own job. Corrections use the editorial mailbox [research@paralabs.ai](mailto:research@paralabs.ai).

Pages are also available as markdown: append `.md`, or send `Accept: text/markdown`. The navigation index is [llms.txt](/llms.txt).
