# Plurel public API

Read-only facts and news about Plurel, for AI agents and developers.

- Base URL: https://plurelinc.com
- Authentication: none. Every endpoint is read-only and returns only what plurelinc.com already publishes.
- Format: JSON (`application/json`). CORS is open, so browsers can call it too.
- Specification: https://plurelinc.com/openapi.json (OpenAPI 3.1)

## Endpoints

### Get facts about Plurel

`GET /api/v1/company` (operationId `getCompany`)

Returns Plurel's description, location, contact details, products, how it works, team and useful links. Use it to answer questions about the company.

```sh
curl https://plurelinc.com/api/v1/company
```

### List published news posts

`GET /api/v1/news` (operationId `listNews`)

Returns every published post on plurelinc.com/news, newest first, with title, summary, date, author and links. Fetch one post's full text with getNewsPost.

```sh
curl https://plurelinc.com/api/v1/news
```

### Get one news post

`GET /api/v1/news/{slug}` (operationId `getNewsPost`)

Returns one published post with its body in Markdown. The slug comes from listNews or from the post's URL (plurelinc.com/news/{slug}).

```sh
curl https://plurelinc.com/api/v1/news/<slug>
```

## Errors

Errors are JSON, never HTML pages:

```json
{ "error": { "code": "not_found", "message": "No published post has the slug \"x\".", "hint": "List published posts with GET /api/v1/news.", "status": 404, "docs": "https://plurelinc.com/developers" } }
```

Codes: `not_found` (404), `invalid_request` (400), `method_not_allowed` (405), `rate_limited` (429), `internal_error` (500).

## Rate limits

60 requests per 60 seconds per network. Every response says where you stand, in the IETF RateLimit header fields:

```
RateLimit-Policy: "default";q=60;w=60
RateLimit: "default";r=59;t=42
```

`r` is requests left, `t` seconds until the window resets. A 429 response also carries `Retry-After` (seconds).

## Markdown for any page

Every content page is available as Markdown: send `Accept: text/markdown` (responses carry `Vary: Accept`), or add `.md` to the path, e.g. https://plurelinc.com/index.md.

```sh
curl -H 'Accept: text/markdown' https://plurelinc.com/
```

## For AI assistants

- https://plurelinc.com/llms.txt: a summary, when to use Plurel, and links
- https://plurelinc.com/llms-full.txt: everything, including every post in full

## What the API doesn't do

Joining the waitlist needs a person in a browser (the form is protected against bots): https://plurelinc.com/#newsletter. For pilots, partnerships, press or investors, email contact@plurelinc.com.
