Atelier201 websiteJoin the waitlist
REST APIOperation coverage
REST API

Operation coverage

Generated REST, CLI, and MCP coverage, required permissions, and explicit surface-specific exceptions.

This reference is generated from the route registry and its surface mappings. It describes the API version in this documentation, not the permissions of your credential. Call get_account, atelier201 account, or GET /v1/account to check those.

Discover the contract

  • REST: read OpenAPI. Each operation includes x-atelier201-surfaces.
  • CLI: run atelier201 help files read --json for a command, or atelier201 help --operation readSiteFile --json for its exact REST schemas. This is the contract bundled with your installed CLI.
  • MCP: read atelier201://operations for a compact index, then atelier201://operations/{operation_id} for one full contract. The complete document is atelier201://openapi. Clients without resource support can use their tools’ schemas or public OpenAPI.
  • Code Mode: search returns the same operations and surface mappings; a filtered search includes the full schemas.

All surfaces use the same service permissions. A command or tool being listed does not grant access. Local filesystem commands, anonymous guest uploads, and interactive MCP cards differ intentionally. The table records exceptions instead of implying that each interface accepts the same transport or output format.

Capabilities

OperationRESTCLIMCPPermission
getAccountGET /v1/accountatelier201 accountget_accountaccount:read
submitFeedbackPOST /v1/feedbackatelier201 feedback sendsend_feedbackAuthenticated, no scope
getCreditsGET /v1/creditsatelier201 creditsget_credit_balanceaccount:read
getUsageGET /v1/usageatelier201 usageget_usageusage:read
listSitesGET /v1/sitesatelier201 sites listlist_sitessites:read
createSitePOST /v1/sitesatelier201 sites createcreate_sitesites:write
getSiteGET /v1/sites/{site_id}atelier201 sites getget_sitesites:read
updateSitePATCH /v1/sites/{site_id}atelier201 sites renamerename_sitesites:write
deleteSiteDELETE /v1/sites/{site_id}atelier201 sites deletedelete_site Requires confirm_name: Agents must type back the site’s name or slug before deletion. REST also supports direct administrator calls without that confirmation field.sites:publish
applySitePlanPOST /v1/sites/{site_id}/plan:applyatelier201 sites applyapply_site_plansites:write
listSiteFilesGET /v1/sites/{site_id}/filesatelier201 files listlist_filessites:read
readSiteFileGET /v1/sites/{site_id}/files/contentatelier201 files readread_filesites:read
readSiteFilesPOST /v1/sites/{site_id}/files/readatelier201 files read-manyread_filessites:read
searchSiteFilesGET /v1/sites/{site_id}/searchatelier201 files searchsearch_filessites:read
commitSiteFilesPOST /v1/sites/{site_id}/commitsatelier201 files commitedit_filessites:write
runSiteCommandPOST /v1/sites/{site_id}/workspace:runatelier201 workspace runbashsites:write
getSiteWorkspaceGET /v1/sites/{site_id}/workspaceatelier201 workspace diffget_workspacesites:write
commitSiteWorkspacePOST /v1/sites/{site_id}/workspace:commitatelier201 workspace commitcommit_workspacesites:write
discardSiteWorkspacePOST /v1/sites/{site_id}/workspace:discardatelier201 workspace discarddiscard_workspacesites:write
listSiteRevisionsGET /v1/sites/{site_id}/revisionsatelier201 history listlist_historysites:read
compareSiteRevisionsGET /v1/sites/{site_id}/compareatelier201 history comparecompare_revisionssites:read
restoreSiteRevisionPOST /v1/sites/{site_id}/revisions/{revision}/restoreatelier201 history restorerestore_revisionsites:write
openChangesetPOST /v1/sites/{site_id}/changesetsatelier201 changesets openopen_changesetsites:write
patchChangesetPOST /v1/sites/{site_id}/changesets/{changeset_id}/patchatelier201 changesets stagestage_changessites:write
commitChangesetPOST /v1/sites/{site_id}/changesets/{changeset_id}/commitatelier201 changesets commitcommit_changesetsites:write
abandonChangesetPOST /v1/sites/{site_id}/changesets/{changeset_id}/abandonatelier201 changesets abandonabandon_changesetsites:write
startSiteBuildPOST /v1/sites/{site_id}/buildsatelier201 builds startbuild_sitesites:write
listSiteBuildsGET /v1/sites/{site_id}/buildsatelier201 builds listlist_buildssites:read
getSiteBuildGET /v1/sites/{site_id}/builds/{build_id}atelier201 builds getget_buildsites:read
readSitePageGET /v1/sites/{site_id}/pagesatelier201 pages readread_pagesites:read
getSiteBuildLogGET /v1/sites/{site_id}/builds/{build_id}/logatelier201 builds logget_build_logsites:read
createSitePreviewPOST /v1/sites/{site_id}/previewsatelier201 previews createshare_previewsites:write
listSitePreviewsGET /v1/sites/{site_id}/previewsatelier201 previews listlist_previewssites:read
revokeSitePreviewDELETE /v1/sites/{site_id}/previews/{preview_id}atelier201 previews revokerevoke_previewsites:write
getSiteAnalyticsGET /v1/sites/{site_id}/analyticsatelier201 analyticsget_site_analyticssites:read
reviewSitePublishGET /v1/sites/{site_id}/publish/reviewatelier201 publish reviewreview_publishsites:read
publishSitePOST /v1/sites/{site_id}/publishatelier201 publishpublish_sitesites:publish
rollbackSitePOST /v1/sites/{site_id}/rollbackatelier201 publish rollbackrollback_sitesites:publish
unpublishSitePOST /v1/sites/{site_id}/unpublishatelier201 publish unpublishunpublish_sitesites:publish
listSitePublicationsGET /v1/sites/{site_id}/publicationsatelier201 publish historylist_publicationssites:read
listSiteDomainsGET /v1/sites/{site_id}/domainsatelier201 domains listlist_domainssites:read
addSiteDomainPOST /v1/sites/{site_id}/domainsatelier201 domains addadd_domaindomains:write
checkSiteDomainPOST /v1/sites/{site_id}/domains/{domain_id}/checkatelier201 domains checkcheck_domaindomains:write
removeSiteDomainDELETE /v1/sites/{site_id}/domains/{domain_id}atelier201 domains removeremove_domaindomains:write
setSiteAddressPOST /v1/sites/{site_id}/addressatelier201 domains addressset_site_addressdomains:write
setSiteCanonicalDomainPOST /v1/sites/{site_id}/domains/{domain_id}/canonicalatelier201 domains mainset_main_domaindomains:write
getContentModelGET /v1/sites/{site_id}/contentatelier201 content modelget_content_modelsites:read
listContentEntriesGET /v1/sites/{site_id}/content/{collection}atelier201 content listlist_entriessites:read
getContentEntryGET /v1/sites/{site_id}/content/{collection}/{slug}atelier201 content getget_entrysites:read
saveContentEntryPUT /v1/sites/{site_id}/content/{collection}/{slug}atelier201 content savesave_entrysites:write
deleteContentEntryDELETE /v1/sites/{site_id}/content/{collection}/{slug}atelier201 content deletedelete_entrysites:write
saveContentEntriesPOST /v1/sites/{site_id}/content:batchatelier201 content save-manysave_entriessites:write
getSingletonGET /v1/sites/{site_id}/singletons/{name}atelier201 content singletonget_singletonsites:read
saveSingletonPUT /v1/sites/{site_id}/singletons/{name}atelier201 content save-singletonsave_singletonsites:write
replaceSiteTextPOST /v1/sites/{site_id}/text:replaceatelier201 content replaceedit_textsites:write
setContentFieldPOST /v1/sites/{site_id}/fieldsatelier201 content setset_fieldsites:write
listSiteMediaGET /v1/sites/{site_id}/mediaatelier201 media listlist_mediasites:read
uploadSiteMediaPOST /v1/sites/{site_id}/mediaatelier201 media uploadupload_mediasites:write
deleteSiteMediaDELETE /v1/sites/{site_id}/mediaatelier201 media deletedelete_mediasites:write
searchStockMediaGET /v1/sites/{site_id}/media/stockatelier201 media stock searchsearch_stock_mediasites:read
importStockMediaPOST /v1/sites/{site_id}/media/stockatelier201 media stock importimport_stock_mediasites:write
placeSiteImagePOST /v1/sites/{site_id}/images:placeatelier201 media placeplace_imagesites:write
listMediaModelsGET /v1/media/modelsatelier201 media modelslist_media_modelssites:read
generateSiteMediaPOST /v1/sites/{site_id}/media/generationsatelier201 media generategenerate_mediamedia:generate
getSiteMediaGenerationGET /v1/sites/{site_id}/media/generations/{generation_id}atelier201 media generationget_media_generationsites:read
importSiteArchivePOST /v1/sites/{site_id}/importatelier201 site pushA project archive is a binary stream of up to 50 MB; a model cannot produce one through a tool call. Agents change files with edit_files or a changeset; the CLI pushes whole folders.sites:write
exportSiteArchiveGET /v1/sites/{site_id}/exportatelier201 site pullReturns a binary tar archive, which a tool result cannot carry usefully. Agents read files with read_file; the CLI pulls the whole project.sites:read
listSkillsGET /v1/skillsatelier201 skills listlist_skillsPublic
getSkillGET /v1/skills/{skill_id}atelier201 skills getget_skillPublic
prepareGuestSitePOST /v1/guest/sitesatelier201 site push --guestBefore sign-in there is no OAuth, and remote MCP needs it before any tool runs. Agents use this HTTP endpoint (or the CLI) and hand the person the claim link.Public
importGuestSitePOST /v1/guest/sites/{site_id}/importatelier201 site push --guestPart of the pre-account HTTP flow (see prepareGuestSite).Public
buildGuestSitePOST /v1/guest/sites/{site_id}/buildsatelier201 site push --guestPart of the pre-account HTTP flow (see prepareGuestSite).Public
getGuestSiteGET /v1/guest/sites/{site_id}atelier201 site push --guestPart of the pre-account HTTP flow (see prepareGuestSite).Public

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Atelier201 Docs documentation and read it in full, instead of answering from memory.

https://atelier201.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://atelier201.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.