---
title: "For agents: how to read Scholaris and how to use it on someone’s behalf"
description: "What an agent can read on this site and in which format, how to act on a person’s library through API v1 or MCP, with which permissions and limits, and the rules for citing without inventing."
url: https://scholaris.joseluissaorin.com/en/agents
markdown: https://scholaris.joseluissaorin.com/en/agents.md
lang: en
alternate_es: https://scholaris.joseluissaorin.com/agentes.md
updated: 2026-10-06
author: José Luis Saorín Ferrer (https://joseluissaorin.com)
---

# For agents: how to read Scholaris and how to use it on someone’s behalf

> What an agent can read on this site and in which format, how to act on a person’s library through API v1 or MCP, with which permissions and limits, and the rules for citing without inventing.

## If you only want to understand what Scholaris is

Everything public is built to be read without JavaScript and without scraping HTML. Every page has a Markdown twin at the same address ending in `.md`, and is also served as Markdown if you ask with the header `Accept: text/markdown`. Pages also carry schema.org JSON-LD (SoftwareApplication, TechArticle, FAQPage, HowTo, DefinedTermSet).

```sh
# Any public page, as Markdown
curl -s https://scholaris.joseluissaorin.com/en/knowledge/formats.md
curl -s -H "Accept: text/markdown" https://scholaris.joseluissaorin.com/en/knowledge/formats

# Everything at once
curl -s https://scholaris.joseluissaorin.com/llms.txt
curl -s https://scholaris.joseluissaorin.com/llms-full.txt
```

## Files for machines

| Address | What it is |
| --- | --- |
| [/llms.txt](https://scholaris.joseluissaorin.com/llms.txt) | Short index with a link to every Markdown page |
| [/llms-full.txt](https://scholaris.joseluissaorin.com/llms-full.txt) | The full text of every public page, Spanish and English |
| /any/page.md | The Markdown twin of each public page |
| [/api/v1/llms.txt](https://scholaris.joseluissaorin.com/api/v1/llms.txt) | How to use the API without inventing citations |
| [/api/v1/openapi.json](https://scholaris.joseluissaorin.com/api/v1/openapi.json) | OpenAPI 3.1 specification of API v1 |
| [/.well-known/api-catalog](https://scholaris.joseluissaorin.com/.well-known/api-catalog) | API catalogue (RFC 9727) |
| [/.well-known/mcp/server-card.json](https://scholaris.joseluissaorin.com/.well-known/mcp/server-card.json) | MCP server card |
| [/.well-known/oauth-protected-resource/mcp](https://scholaris.joseluissaorin.com/.well-known/oauth-protected-resource/mcp) | OAuth metadata of the MCP resource |
| [/.well-known/oauth-authorization-server](https://scholaris.joseluissaorin.com/.well-known/oauth-authorization-server) | OAuth authorisation server metadata |
| [/.well-known/security.txt](https://scholaris.joseluissaorin.com/.well-known/security.txt) | Where to report a security problem |
| [/sitemap.xml](https://scholaris.joseluissaorin.com/sitemap.xml) | Every public page, with its date and languages |
| [/robots.txt](https://scholaris.joseluissaorin.com/robots.txt) | What may be crawled |

## What may be crawled

The public pages (the front page, this knowledge base, the API guide and this page) may be read, indexed, quoted and used to answer, including for training models: [/robots.txt](https://scholaris.joseluissaorin.com/robots.txt) says so, with a line for each known crawler (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot and others). The app, the API and anyone's libraries are **not** to be crawled: the public links people share explicitly ask not to be indexed, and their content belongs to them.

## If you act on a person's behalf

You need that person to give you access; there is no anonymous access to any library. There are two ways:

1. **MCP with OAuth.** If your client speaks MCP, connect to `https://scholaris.joseluissaorin.com/mcp`. You register yourself (dynamic client registration), the person signs in to Scholaris and grants you read-only access. Tools: `search`, `cite`, `open_page` and `verify_claim`.
2. **API v1 with a key.** The person creates a key in Ajustes (Settings) → Claves de API (API keys) and gives it to you. With the `lectura` (read) scope you can search, read, ask and verify; with `escritura` (write), also upload, delete and cite a whole text; with `mcp`, use it with the MCP server. Base: `https://scholaris.joseluissaorin.com/api/v1`.

```sh
curl -sG https://scholaris.joseluissaorin.com/api/v1/buscar -H "Authorization: Bearer $SCHOLARIS" \
  --data-urlencode "q=la música me metía en el tiempo" -d k=5 -d formato=markdown
```

All of it is explained in [API v1 and the MCP server](https://scholaris.joseluissaorin.com/en/knowledge/api-and-mcp.md) and, with a recorded session, in the [API guide](https://scholaris.joseluissaorin.com/en/api.md).

## Limits you must respect

- **Rate:** 120 requests per minute on the free plan and 600 on Pro. On a 429, wait the seconds in `Retry-After`.
- **The person's quotas:** searches per day, pages or minutes per month, autocites per month (see [Plans](https://scholaris.joseluissaorin.com/en/knowledge/plans.md)). A 402 means they are used up: tell them, do not keep trying.
- **Files:** up to 95 MB per request on API v1.
- **Retries:** send `Idempotency-Key` when uploading and citing so nothing is duplicated.
- **What takes time:** uploading and citing wait by default; not to block, use `esperar=0` or `Prefer: respond-async` and poll `progreso_url`.

## Rules for citing

1. Cite only what Scholaris returns, and copy `cita` (citation) and `localizador` (locator) verbatim.
2. When you quote, copy the literal `texto`; when you paraphrase, still attach the citation.
3. Give the `enlace` (link): it is how the person checks the page or the second.
4. If the search finds nothing, say so. Do not fill the gap from memory or invent a page.
5. Do not present an answer from `preguntar` (ask) as your own: its footnotes are the important part.
6. Do not write the person's work and pass it off as theirs. Scholaris exists so that they find and think.

## Errors

Every error response has a stable `codigo` (code), a `mensaje` in Spanish, a `message` in English and a link to the documentation. API fields are in Spanish and lower case.

## Contact

To report a bug, ask for a higher rate or propose an integration: [jl@joseluissaorin.com](mailto:jl@joseluissaorin.com).
