# Developers

Public read-only access to our published content — blog posts and case studies in English and Spanish. No authentication required.

## What this API is

The same content that renders this website is available as JSON through a read-only REST API. Only published documents are returned — drafts, internal fields, and administrative operations are never exposed. Use it to index our writing, feed an agent, or pull our case studies into your own tools.

## Endpoints

- `GET /api/posts` — published posts, paginated `docs[]`
- `GET /api/case-studies` — published case studies, paginated `docs[]`
- `GET /api/posts/{id}` · `/api/case-studies/{id}` — one published document
- `GET /api/media/file/{filename}` — media assets

## Useful query parameters

- `locale` — `en` | `es`
- `where[slug][equals]` — one document by slug
- `limit`, `page`, `sort`, `depth`, `select`

```sh
curl "https://v2.kiranalabs.com/api/posts?locale=en&limit=10&sort=-publishedAt&select=title,slug,excerpt,publishedAt"
```

## Machine-readable resources

- [/openapi.json](https://v2.kiranalabs.com/openapi.json)
- [/llms.txt](https://v2.kiranalabs.com/llms.txt)
- [/feeds/schema.jsonl](https://v2.kiranalabs.com/feeds/schema.jsonl)
- [/.well-known/agent-skills/index.json](https://v2.kiranalabs.com/.well-known/agent-skills/index.json)

## Markdown twins

Every page on this site also serves a markdown representation: append .md to its URL (for example /index.md or /blog/your-article.md), or send Accept: text/markdown. The llms.txt index lists everything published.

## Access

Reads are public and unauthenticated. Writes, drafts, inquiries, and the internal GraphQL endpoint are private. If you need to publish or integrate programmatically, reach out through the contact form and ask about API keys.
