---
title: "Cobertura de operaciones"
description: "Cobertura generada para REST, CLI y MCP, permisos necesarios y excepciones específicas de cada interfaz."
canonical: "https://atelier201.com/docs/es/api/surfaces"
updated: "2026-11-06"
---

# Cobertura de operaciones

Esta referencia se genera a partir del registro de rutas y sus correspondencias con cada interfaz.
Describe la versión de la API de esta documentación, no los permisos de tus credenciales.
Llama a `get_account`, `atelier201 account` o `GET /v1/account` para consultarlos.

## Descubrir el contrato

- REST: consulta [OpenAPI](/docs/openapi.json). Cada operación incluye `x-atelier201-surfaces`.
- CLI: ejecuta `atelier201 help files read --json` para consultar un comando o `atelier201 help --operation readSiteFile --json` para ver sus esquemas REST exactos. Este es el contrato incluido en la CLI instalada.
- MCP: consulta `atelier201://operations` para ver un índice resumido y, después, `atelier201://operations/{operation_id}` para consultar el contrato completo de una operación. El documento completo está en `atelier201://openapi`. Los clientes que no admitan recursos pueden usar los esquemas de sus herramientas o la especificación OpenAPI pública.
- Code Mode: `search` devuelve las mismas operaciones y correspondencias entre interfaces; las búsquedas filtradas incluyen los esquemas completos.

Todas las interfaces usan los mismos permisos del servicio. Que aparezca un comando o una herramienta no concede acceso.
Los comandos del sistema de archivos local, las cargas anónimas de invitados y las tarjetas interactivas de MCP difieren intencionadamente.
La tabla indica las excepciones, en lugar de dar a entender que todas las interfaces aceptan el mismo transporte o formato de salida.

## Capacidades

| Operación                | REST                                                         | CLI                                 | MCP                                                                                                                                                                                                                                      | Permiso                 |
| ------------------------ | ------------------------------------------------------------ | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `getAccount`             | `GET /v1/account`                                            | `atelier201 account`                | `get_account`                                                                                                                                                                                                                            | `account:read`          |
| `submitFeedback`         | `POST /v1/feedback`                                          | `atelier201 feedback send`          | `send_feedback`                                                                                                                                                                                                                          | Autenticado, sin ámbito |
| `getCredits`             | `GET /v1/credits`                                            | `atelier201 credits`                | `get_credit_balance`                                                                                                                                                                                                                     | `account:read`          |
| `getUsage`               | `GET /v1/usage`                                              | `atelier201 usage`                  | `get_usage`                                                                                                                                                                                                                              | `usage:read`            |
| `listSites`              | `GET /v1/sites`                                              | `atelier201 sites list`             | `list_sites`                                                                                                                                                                                                                             | `sites:read`            |
| `createSite`             | `POST /v1/sites`                                             | `atelier201 sites create`           | `create_site`                                                                                                                                                                                                                            | `sites:write`           |
| `getSite`                | `GET /v1/sites/{site_id}`                                    | `atelier201 sites get`              | `get_site`                                                                                                                                                                                                                               | `sites:read`            |
| `updateSite`             | `PATCH /v1/sites/{site_id}`                                  | `atelier201 sites rename`           | `rename_site`                                                                                                                                                                                                                            | `sites:write`           |
| `deleteSite`             | `DELETE /v1/sites/{site_id}`                                 | `atelier201 sites delete`           | `delete_site` Requiere `confirm_name`: los agentes deben volver a escribir el nombre o el slug del sitio antes de eliminarlo. REST también admite llamadas directas de administradores sin este campo de confirmación.                   | `sites:publish`         |
| `applySitePlan`          | `POST /v1/sites/{site_id}/plan:apply`                        | `atelier201 sites apply`            | `apply_site_plan`                                                                                                                                                                                                                        | `sites:write`           |
| `listSiteFiles`          | `GET /v1/sites/{site_id}/files`                              | `atelier201 files list`             | `list_files`                                                                                                                                                                                                                             | `sites:read`            |
| `readSiteFile`           | `GET /v1/sites/{site_id}/files/content`                      | `atelier201 files read`             | `read_file`                                                                                                                                                                                                                              | `sites:read`            |
| `readSiteFiles`          | `POST /v1/sites/{site_id}/files/read`                        | `atelier201 files read-many`        | `read_files`                                                                                                                                                                                                                             | `sites:read`            |
| `searchSiteFiles`        | `GET /v1/sites/{site_id}/search`                             | `atelier201 files search`           | `search_files`                                                                                                                                                                                                                           | `sites:read`            |
| `commitSiteFiles`        | `POST /v1/sites/{site_id}/commits`                           | `atelier201 files commit`           | `edit_files`                                                                                                                                                                                                                             | `sites:write`           |
| `runSiteCommand`         | `POST /v1/sites/{site_id}/workspace:run`                     | `atelier201 workspace run`          | `bash`                                                                                                                                                                                                                                   | `sites:write`           |
| `getSiteWorkspace`       | `GET /v1/sites/{site_id}/workspace`                          | `atelier201 workspace diff`         | `get_workspace`                                                                                                                                                                                                                          | `sites:write`           |
| `commitSiteWorkspace`    | `POST /v1/sites/{site_id}/workspace:commit`                  | `atelier201 workspace commit`       | `commit_workspace`                                                                                                                                                                                                                       | `sites:write`           |
| `discardSiteWorkspace`   | `POST /v1/sites/{site_id}/workspace:discard`                 | `atelier201 workspace discard`      | `discard_workspace`                                                                                                                                                                                                                      | `sites:write`           |
| `listSiteRevisions`      | `GET /v1/sites/{site_id}/revisions`                          | `atelier201 history list`           | `list_history`                                                                                                                                                                                                                           | `sites:read`            |
| `compareSiteRevisions`   | `GET /v1/sites/{site_id}/compare`                            | `atelier201 history compare`        | `compare_revisions`                                                                                                                                                                                                                      | `sites:read`            |
| `restoreSiteRevision`    | `POST /v1/sites/{site_id}/revisions/{revision}/restore`      | `atelier201 history restore`        | `restore_revision`                                                                                                                                                                                                                       | `sites:write`           |
| `openChangeset`          | `POST /v1/sites/{site_id}/changesets`                        | `atelier201 changesets open`        | `open_changeset`                                                                                                                                                                                                                         | `sites:write`           |
| `patchChangeset`         | `POST /v1/sites/{site_id}/changesets/{changeset_id}/patch`   | `atelier201 changesets stage`       | `stage_changes`                                                                                                                                                                                                                          | `sites:write`           |
| `commitChangeset`        | `POST /v1/sites/{site_id}/changesets/{changeset_id}/commit`  | `atelier201 changesets commit`      | `commit_changeset`                                                                                                                                                                                                                       | `sites:write`           |
| `abandonChangeset`       | `POST /v1/sites/{site_id}/changesets/{changeset_id}/abandon` | `atelier201 changesets abandon`     | `abandon_changeset`                                                                                                                                                                                                                      | `sites:write`           |
| `startSiteBuild`         | `POST /v1/sites/{site_id}/builds`                            | `atelier201 builds start`           | `build_site`                                                                                                                                                                                                                             | `sites:write`           |
| `listSiteBuilds`         | `GET /v1/sites/{site_id}/builds`                             | `atelier201 builds list`            | `list_builds`                                                                                                                                                                                                                            | `sites:read`            |
| `getSiteBuild`           | `GET /v1/sites/{site_id}/builds/{build_id}`                  | `atelier201 builds get`             | `get_build`                                                                                                                                                                                                                              | `sites:read`            |
| `readSitePage`           | `GET /v1/sites/{site_id}/pages`                              | `atelier201 pages read`             | `read_page`                                                                                                                                                                                                                              | `sites:read`            |
| `getSiteBuildLog`        | `GET /v1/sites/{site_id}/builds/{build_id}/log`              | `atelier201 builds log`             | `get_build_log`                                                                                                                                                                                                                          | `sites:read`            |
| `createSitePreview`      | `POST /v1/sites/{site_id}/previews`                          | `atelier201 previews create`        | `share_preview`                                                                                                                                                                                                                          | `sites:write`           |
| `listSitePreviews`       | `GET /v1/sites/{site_id}/previews`                           | `atelier201 previews list`          | `list_previews`                                                                                                                                                                                                                          | `sites:read`            |
| `revokeSitePreview`      | `DELETE /v1/sites/{site_id}/previews/{preview_id}`           | `atelier201 previews revoke`        | `revoke_preview`                                                                                                                                                                                                                         | `sites:write`           |
| `getSiteAnalytics`       | `GET /v1/sites/{site_id}/analytics`                          | `atelier201 analytics`              | `get_site_analytics`                                                                                                                                                                                                                     | `sites:read`            |
| `reviewSitePublish`      | `GET /v1/sites/{site_id}/publish/review`                     | `atelier201 publish review`         | `review_publish`                                                                                                                                                                                                                         | `sites:read`            |
| `publishSite`            | `POST /v1/sites/{site_id}/publish`                           | `atelier201 publish`                | `publish_site`                                                                                                                                                                                                                           | `sites:publish`         |
| `rollbackSite`           | `POST /v1/sites/{site_id}/rollback`                          | `atelier201 publish rollback`       | `rollback_site`                                                                                                                                                                                                                          | `sites:publish`         |
| `unpublishSite`          | `POST /v1/sites/{site_id}/unpublish`                         | `atelier201 publish unpublish`      | `unpublish_site`                                                                                                                                                                                                                         | `sites:publish`         |
| `listSitePublications`   | `GET /v1/sites/{site_id}/publications`                       | `atelier201 publish history`        | `list_publications`                                                                                                                                                                                                                      | `sites:read`            |
| `listSiteDomains`        | `GET /v1/sites/{site_id}/domains`                            | `atelier201 domains list`           | `list_domains`                                                                                                                                                                                                                           | `sites:read`            |
| `addSiteDomain`          | `POST /v1/sites/{site_id}/domains`                           | `atelier201 domains add`            | `add_domain`                                                                                                                                                                                                                             | `domains:write`         |
| `checkSiteDomain`        | `POST /v1/sites/{site_id}/domains/{domain_id}/check`         | `atelier201 domains check`          | `check_domain`                                                                                                                                                                                                                           | `domains:write`         |
| `removeSiteDomain`       | `DELETE /v1/sites/{site_id}/domains/{domain_id}`             | `atelier201 domains remove`         | `remove_domain`                                                                                                                                                                                                                          | `domains:write`         |
| `setSiteAddress`         | `POST /v1/sites/{site_id}/address`                           | `atelier201 domains address`        | `set_site_address`                                                                                                                                                                                                                       | `domains:write`         |
| `setSiteCanonicalDomain` | `POST /v1/sites/{site_id}/domains/{domain_id}/canonical`     | `atelier201 domains main`           | `set_main_domain`                                                                                                                                                                                                                        | `domains:write`         |
| `getContentModel`        | `GET /v1/sites/{site_id}/content`                            | `atelier201 content model`          | `get_content_model`                                                                                                                                                                                                                      | `sites:read`            |
| `listContentEntries`     | `GET /v1/sites/{site_id}/content/{collection}`               | `atelier201 content list`           | `list_entries`                                                                                                                                                                                                                           | `sites:read`            |
| `getContentEntry`        | `GET /v1/sites/{site_id}/content/{collection}/{slug}`        | `atelier201 content get`            | `get_entry`                                                                                                                                                                                                                              | `sites:read`            |
| `saveContentEntry`       | `PUT /v1/sites/{site_id}/content/{collection}/{slug}`        | `atelier201 content save`           | `save_entry`                                                                                                                                                                                                                             | `sites:write`           |
| `deleteContentEntry`     | `DELETE /v1/sites/{site_id}/content/{collection}/{slug}`     | `atelier201 content delete`         | `delete_entry`                                                                                                                                                                                                                           | `sites:write`           |
| `saveContentEntries`     | `POST /v1/sites/{site_id}/content:batch`                     | `atelier201 content save-many`      | `save_entries`                                                                                                                                                                                                                           | `sites:write`           |
| `getSingleton`           | `GET /v1/sites/{site_id}/singletons/{name}`                  | `atelier201 content singleton`      | `get_singleton`                                                                                                                                                                                                                          | `sites:read`            |
| `saveSingleton`          | `PUT /v1/sites/{site_id}/singletons/{name}`                  | `atelier201 content save-singleton` | `save_singleton`                                                                                                                                                                                                                         | `sites:write`           |
| `replaceSiteText`        | `POST /v1/sites/{site_id}/text:replace`                      | `atelier201 content replace`        | `edit_text`                                                                                                                                                                                                                              | `sites:write`           |
| `setContentField`        | `POST /v1/sites/{site_id}/fields`                            | `atelier201 content set`            | `set_field`                                                                                                                                                                                                                              | `sites:write`           |
| `listSiteMedia`          | `GET /v1/sites/{site_id}/media`                              | `atelier201 media list`             | `list_media`                                                                                                                                                                                                                             | `sites:read`            |
| `uploadSiteMedia`        | `POST /v1/sites/{site_id}/media`                             | `atelier201 media upload`           | `upload_media`                                                                                                                                                                                                                           | `sites:write`           |
| `deleteSiteMedia`        | `DELETE /v1/sites/{site_id}/media`                           | `atelier201 media delete`           | `delete_media`                                                                                                                                                                                                                           | `sites:write`           |
| `searchStockMedia`       | `GET /v1/sites/{site_id}/media/stock`                        | `atelier201 media stock search`     | `search_stock_media`                                                                                                                                                                                                                     | `sites:read`            |
| `importStockMedia`       | `POST /v1/sites/{site_id}/media/stock`                       | `atelier201 media stock import`     | `import_stock_media`                                                                                                                                                                                                                     | `sites:write`           |
| `placeSiteImage`         | `POST /v1/sites/{site_id}/images:place`                      | `atelier201 media place`            | `place_image`                                                                                                                                                                                                                            | `sites:write`           |
| `listMediaModels`        | `GET /v1/media/models`                                       | `atelier201 media models`           | `list_media_models`                                                                                                                                                                                                                      | `sites:read`            |
| `generateSiteMedia`      | `POST /v1/sites/{site_id}/media/generations`                 | `atelier201 media generate`         | `generate_media`                                                                                                                                                                                                                         | `media:generate`        |
| `getSiteMediaGeneration` | `GET /v1/sites/{site_id}/media/generations/{generation_id}`  | `atelier201 media generation`       | `get_media_generation`                                                                                                                                                                                                                   | `sites:read`            |
| `importSiteArchive`      | `POST /v1/sites/{site_id}/import`                            | `atelier201 site push`              | Un archivo de proyecto es un flujo binario de hasta 50 MB; un modelo no puede generarlo mediante una llamada a una herramienta. Los agentes modifican archivos con edit\_files o un conjunto de cambios; la CLI sube carpetas completas. | `sites:write`           |
| `exportSiteArchive`      | `GET /v1/sites/{site_id}/export`                             | `atelier201 site pull`              | Devuelve un archivo tar binario, que no resulta práctico incluir en el resultado de una herramienta. Los agentes leen archivos con read\_file; la CLI descarga el proyecto completo.                                                     | `sites:read`            |
| `listSkills`             | `GET /v1/skills`                                             | `atelier201 skills list`            | `list_skills`                                                                                                                                                                                                                            | Público                 |
| `getSkill`               | `GET /v1/skills/{skill_id}`                                  | `atelier201 skills get`             | `get_skill`                                                                                                                                                                                                                              | Público                 |
| `prepareGuestSite`       | `POST /v1/guest/sites`                                       | `atelier201 site push --guest`      | Antes de iniciar sesión no hay OAuth, y MCP remoto lo necesita antes de ejecutar cualquier herramienta. Los agentes usan este endpoint HTTP (o la CLI) y facilitan a la persona el enlace para reclamar el sitio.                        | Público                 |
| `importGuestSite`        | `POST /v1/guest/sites/{site_id}/import`                      | `atelier201 site push --guest`      | Forma parte del flujo HTTP previo a la creación de la cuenta (consulta prepareGuestSite).                                                                                                                                                | Público                 |
| `buildGuestSite`         | `POST /v1/guest/sites/{site_id}/builds`                      | `atelier201 site push --guest`      | Forma parte del flujo HTTP previo a la creación de la cuenta (consulta prepareGuestSite).                                                                                                                                                | Público                 |
| `getGuestSite`           | `GET /v1/guest/sites/{site_id}`                              | `atelier201 site push --guest`      | Forma parte del flujo HTTP previo a la creación de la cuenta (consulta prepareGuestSite).                                                                                                                                                | Público                 |
