canonical: https://jentic.com/apis/makeswift.com/makeswift

# Makeswift REST

The Makeswift REST API manages the sites, pages, and design system behind Makeswift visual websites. It creates, updates, duplicates, and deletes sites in a workspace, adds and restores locales with their own domains, and creates pages by pathname with an optional element tree. It also reads pages from a version reference such as the draft, lists pages by path prefix or locale, and maintains the color swatches, typographies, and beta reusable regions that a site's design draws on.

## For AI agents

Create and duplicate Makeswift sites, add locales, create and update pages by pathname, and manage the swatches, typographies, and regions a site uses.

## Scope

Does not handle hosting deployments, form submissions, analytics, or blog CMS entries. Use for managing Makeswift sites, locales, pages, and design tokens only.

## Capabilities

- Create a site in a workspace with a name, hostOrigin, and defaultLocale, or duplicate an existing site with all its content
- Add a locale to a site with its own domain, and restore a deleted locale
- Create a page from a siteId, pathname, and name, optionally passing an elements tree
- List a site's pages filtered by pathPrefix or locale, sorted with sortBy and sortDirection, and including offline pages on request
- Read a page by ID or pathname from a versionRef such as ref:draft, with its elements when include is set
- Define brand colors as swatches from hue, saturation, and lightness, and text styles as typographies
- Create reusable regions from an element tree, a beta feature enabled per site or workspace

## Use cases

### Agent-managed site pages through Jentic

A content agent creates landing pages by pathname, lists existing pages under a prefix to avoid clashes, and updates page names as campaigns change. Through Jentic the agent finds the page operations by intent, the Makeswift x-api-key stays in the developer's own Jentic One instance, and a rule can hold the agent to page reads and edits while site deletion and duplication stay out.

Example prompt: Call GET `/v6/pages` with siteId and pathPrefix '/campaigns' to check for clashes, then POST `/v6/pages` with siteId, pathname '/campaigns/spring', and name 'Spring campaign'

### Site rollout for a new brand or market

Launching a copy of an existing site starts with POST `/v2/sites/{siteId}/duplicate` and a new name, which copies all content and configuration. POST `/v2/locales` then adds a locale such as de-DE with its own domain, so the duplicated site can serve a new market without rebuilding pages by hand.

Example prompt: POST `/v2/sites/{siteId}/duplicate` with name 'Acme EU', then POST `/v2/locales` with the new siteId, locale 'de-DE', and domain 'acme.de'

### Design system sync

Brand colors and type styles live as swatches and typographies on each site. POST `/v4/swatches` takes siteId, hue, saturation, and lightness, and POST `/v4/typographies` takes siteId, name, and style, so a design token source can push brand updates into Makeswift and keep sites consistent.

Example prompt: POST `/v4/swatches` with siteId, name 'Brand blue', hue 215, saturation 80, and lightness 45, then GET `/v4/swatches` with siteId to confirm it is listed

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v2/sites` | Create a site |
| POST | `/v2/sites/{siteId}/duplicate` | Duplicate a site |
| POST | `/v2/locales` | Create a locale |
| POST | `/v6/pages` | Create a page |
| GET | `/v6/pages` | List pages for a site |
| GET | `/v6/pages/{pageIdOrPathname}` | Get a page by ID or pathname |
| PATCH | `/v6/pages/{pageIdOrPathname}` | Update a page |
| POST | `/v4/swatches` | Create a swatch |

## Key resources

- **Sites** — Sites in a workspace with name, hostOrigin, and defaultLocale, which can be duplicated
- **Locales** — Per-site locales with optional domains, deletable and restorable
- **Pages** — Pages addressed by ID or pathname, with elements, locales, and version references
- **Swatches and typographies** — Site-level color and text style definitions
- **Regions** — Reusable element trees per locale, in beta

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 50 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 26 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 77 / 100
- **View full report:** https://jentic.com/apis/makeswift.com/makeswift/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Makeswift by hand means choosing between an App API key and a Site API key, sending it in the x-api-key header, and handling cursor pagination with startingAfter across versioned endpoints yourself. Through Jentic you install once, import Makeswift from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Makeswift puts the site ID and page ID in the URL path for site and page operations, so a rule can pin your agent to one site or one page and the operations you pick. You choose the operations it may call, so destructive ones like DELETE `/v2/sites/{siteId}` or page deletion are not included unless you add them.
- **Credential handling:** Your Makeswift API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a page' or 'add a locale to a site', and Jentic returns the matching Makeswift operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Webflow API** — Visual website builder API for sites, pages, and CMS collections
- **Storyblok API** — Headless CMS with a visual editor and component-based content
- **Contentful API** — Headless CMS for structured content entries

## FAQ

### Is there a Makeswift MCP server?

You don't need an MCP server to give your agent Makeswift. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.

### What authentication does the Makeswift REST API use?

Per its OpenAPI spec, the Makeswift REST API takes an API key in the x-api-key header. It accepts either an App API key, which starts with sk_, or a Site API key in UUID format. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at execution time, so it never enters the agent's context.

### Can I limit what my agent is allowed to do with Makeswift?

Yes. For example, write a rule that allows GET and PATCH on `/v6/pages/{pageIdOrPathname}` for one page ID, so the agent can read and update that page but cannot create new pages, delete sites, or duplicate them. Every call it makes is logged on your own machine.

### Can I read the draft version of a page?

Yes. GET `/v6/pages/{pageIdOrPathname}` takes a versionRef parameter that defaults to ref:draft, a locale parameter that accepts a locale code such as en-US, and an include parameter that can add the page's elements to the response. When you address a page by pathname, also pass siteId.

### How do I create a page through Jentic?

Install Jentic One, import the Makeswift REST API from the directory, and search for 'create a Makeswift page'. Jentic returns the Create Page operation with its input schema; your agent sends siteId, pathname, and name, plus an optional elements tree. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Are Makeswift regions available on every site?

Regions are marked as a beta feature in the spec. Region requests return 403 until the feature flag is enabled for your site or workspace, and a region in a non-default locale needs to exist in the default locale first.

### What are the rate limits for the Makeswift REST API?

The OpenAPI spec does not specify rate limits. Check the Makeswift documentation at https://docs.makeswift.com for current limits.
