# Plans and billing

> Page: https://docs.plotwork.dev/plans-and-billing. Index of every page: https://docs.plotwork.dev/llms.txt

See what Free and Pro include, how to upgrade and cancel, and what the daily call limit does when you reach it.

## TL;DR

| Question | Answer |
|---|---|
| What plans are there? | Free and Pro. Drawing diagrams is free on both. The plans differ in the daily call limit, in whether you may call the REST API to draw and check diagrams, in how many hosted diagrams you keep and for how long, and in how many organisations you can own and how many people each holds. |
| What does Pro cost? | $9 a month, in US dollars, billed monthly by Stripe. |
| How do I upgrade? | Open the Plan page of the portal and choose Upgrade to Pro. You pay on a Stripe page. |
| How do I cancel? | Choose Cancel Pro on the Plan page. Pro stays until the end of the period you paid for, and Keep Pro takes the cancellation back. |
| How do I change my card or read a receipt? | Choose Manage billing on the Plan page to change your card. Receipts and invoices are listed on the same page, and each downloads as a PDF. |
| Can I use the REST API on Free? | You can publish a diagram over REST on every plan. The portal and the hosted MCP server do everything else, so a free account draws through an agent. Calling the REST API directly to draw, validate, render, outline or convert a diagram, or to look up icons, needs Pro. |
| What is the daily limit? | Free allows 300 calls a day and Pro allows 50,000. The count is per account and starts again at 00:00 UTC (Coordinated Universal Time). |
| What happens at the limit? | The API answers HTTP 429 with the error code `usage.daily_limit` until 00:00 UTC. Nothing is billed for the calls it refuses. |
| What if a payment fails? | Stripe retries it, and Pro stays on while it does. |
| Where do I see my usage? | On the Usage page of the portal, and from `GET /user/usage` while you are signed in. |

## 1. What each plan includes

Every number is per account. The API holds your account to exactly these numbers, and the pricing page on the Plotwork website shows the same ones.

| Plan | Price | Who it is for |
|---|---|---|
| Free | Free | Everything you need to draw diagrams with an agent, and a few shareable links. |
| Pro | $9 a month | For agents that run all day, and diagrams that should stay where you put them. |
| Enterprise | Custom, annual contract | For platform teams that keep diagrams in CI across many repositories, with limits written for you. |

| Usage | Free | Pro | Enterprise |
|---|---|---|---|
| Calls a day (REST API and MCP tool calls together) | 300 | 50,000 | Custom |
| The REST API for drawing and checking (Publishing, the portal and the hosted MCP server work on every plan) | Not included | Included | Included |
| PDF and PowerPoint downloads (PNG, SVG and presenting step by step are on every plan) | Not included | Included | Included |
| Diagram editor (Edit a published diagram in the portal, keep its link, and restore a previous version) | Not included | Included | Included |

| Hosting | Free | Pro | Enterprise |
|---|---|---|---|
| Hosted diagrams | 25 | 2,000 | Custom |
| Storage | 10 MB | 1 GB | Custom |
| Largest diagram | 2 MB | 2 MB | Custom |
| Kept after you last publish | 30 days | Until you delete it | Custom |
| Links that always show the latest version (Named links that move to each new version you publish) | 3 | 500 | Custom |

| Organisations | Free | Pro | Enterprise |
|---|---|---|---|
| Organisations you can own | 1 | 5 | Custom |
| People in one organisation (Owner, readers and pending invitations included) | 3 | 25 | Custom |
| Brand themes (The organisation's colors on every diagram the hosted service draws) | Not included | Included | Included |
| Saved style rules (The same rules for CI in every repository; a rules section in your own settings file is free) | Not included | Included | Included |
| Members publish only to the library (No member's diagram at a public link; sending them to the library by default is on every plan) | Not included | Included | Included |

| Contract | Free | Pro | Enterprise |
|---|---|---|---|
| Single sign-on with OpenID Connect (Okta, Microsoft Entra ID and Google Workspace) | Not included | Not included | Included |
| Single sign-on with SAML | Not included | Not included | Included |
| SCIM provisioning | Not included | Not included | Included |
| Limits written for you | Not included | Not included | Included |
| Uptime SLA | Not included | Not included | Included |
| Priority support | Not included | Not included | Included |
| Annual invoicing | Not included | Not included | Included |
| Data processing agreement | Not included | Not included | Included |
| Audit log export | Not included | Not included | Included |
| Audit events and drift sent to your tools (Datadog, Dynatrace, Splunk, Microsoft Sentinel or a signed webhook) | Not included | Not included | Included |
| Self-hosting licence (The engine inside your own network, for regulated companies) | Not included | Not included | Add-on |

| Included on every plan | Free | Pro | Enterprise |
|---|---|---|---|
| Every diagram tool | Included | Included | Included |
| The local server | Included | Included | Included |
| The hosted MCP server | Included | Included | Included |
| Publishing over the REST API | Included | Included | Included |
| The portal | Included | Included | Included |

Both plans include every diagram tool. Pro includes everything in Free with higher limits.

The local server, which you start with `npx`, makes no network requests by default, needs no account and has no limit. A plan applies to the hosted MCP server and to the REST API. Publishing a diagram over the REST API, the portal and the hosted MCP server work on every plan, while calling the drawing and checking routes of the REST API directly needs a plan that includes it, which is Pro. The plan belongs to your account, so every API key and every connected agent on the account shares its limits.

Hosted diagrams are public links to the pictures of your diagrams. [Hosted diagrams](https://docs.plotwork.dev/hosted-diagrams.md) explains how to publish one, who can see it and how long it is kept.

An organisation is a private library that a team shares, and it has the plan of the account that owns it. A Pro owner gives the whole organisation the Pro limits, a Free owner gives it the Free ones, and a member's own plan changes nothing for it. The organisation keeps its own pool of diagrams, apart from the owner's personal ones. [Organisations](https://docs.plotwork.dev/organisations.md) lists the limits that apply and explains roles, invitations and keys.

## 2. Upgrade to Pro

1. Sign in at [app.plotwork.dev](https://app.plotwork.dev) and open the Plan page.
2. Choose Upgrade to Pro. The browser goes to a Stripe page.
3. Pay there. Stripe takes the payment, so Plotwork never sees or stores your card details.
4. You return to the Plan page, which confirms the payment. It says Pro is active once your plan has updated.

Your new limits apply within a minute of the payment going through. Diagrams you already host stop expiring at once.

## 3. Manage billing and cancel

The Plan page shows your plan, its status and the date your current period renews or ends. Choose Manage billing to open the Stripe Billing Portal in the same tab, where you can change your card. Cancelling and reading your receipts are done on the Plan page itself.

| You do this | What happens |
|---|---|
| Cancel | Choose Cancel Pro and confirm. You can say why, which is optional. Pro stays until the end of the period you paid for. The Plan page then says when it cancels. After that date your account moves to Free. |
| Change your mind before that date | Choose Keep Pro on the Plan page. The subscription renews as before. |
| Read or download a receipt | The Plan page lists every receipt and invoice. Open one to read it in the page, or download it as a PDF. |
| Let Pro end | Your account moves to Free. Nothing is deleted at once: each hosted diagram gets a full 30 days from the change, and you can delete any of them sooner on the Diagrams page. |
| Upgrade again later | Choose Upgrade to Pro on the Plan page again. |

An account that has never been on Pro has no billing account to manage yet. Upgrade to Pro first.

## 4. The daily call limit

The limit counts calls to your account across the hosted MCP server and the REST API.

| Counts toward the limit | Does not count |
|---|---|
| Every REST API call made with an API key, including publishing a diagram | Connecting to the MCP server |
| Every MCP tool call, including `publish_diagram` | Listing the tools |
| Calls from every API key and every connected agent on the account together | Signing in, and reading your usage |

The count is for one UTC day. It starts again at 00:00 UTC, which is the same moment for every account.

A separate per-minute limit applies to each key. It protects the service, and it does not depend on your plan. Wait a minute and call again when you reach it.

### The 429 response

When all of the day's calls are spent, the API answers HTTP 429 with `usage.daily_limit` as its `errorCode`. The `retry-after` header gives the seconds until 00:00 UTC, and the `ratelimit` header gives what is left and the same time.

```text
HTTP/1.1 429 Too Many Requests
retry-after: 3600
ratelimit: "daily";r=0;t=3600
```

```json
{
  "error": true,
  "errorCode": "usage.daily_limit",
  "message": "This account has used all 300 calls for today. The count resets at 00:00 UTC.",
  "details": {
    "limit": 300,
    "used": 300,
    "resetsAt": 1791590400000,
    "retryAfterSeconds": 3600
  },
  "requestId": "7c1d0a3e-5f2b-4b6e-8a90-3d4e5f6a7b8c"
}
```

The example is a Free account. A Pro account sees its own `limit`. The MCP server answers a spent limit with HTTP 429 and a JSON-RPC error with code -32029, and `usage.daily_limit` in the error data.

Calls over the limit are refused, not billed. You can wait for 00:00 UTC, or upgrade to Pro for a higher limit.

### The REST API on the Free plan

Every plan may publish a diagram over REST, and every plan has the portal and the hosted MCP server, which do the same drawing and checking. On the Free plan, an API key sent to a drawing or checking route of the REST API (`POST /v1/diagrams/draw` and the other `/v1` routes, except publishing) is refused with HTTP 403 and the error code `plan.rest_not_included`. A refused call is not counted toward the daily limit. Use the hosted MCP server, or upgrade to Pro.

## 5. When a payment fails

Stripe retries a failed payment. While it does, Pro stays on, and the Plan page says that your last payment failed. Update your card in Manage billing to keep Pro.

If no payment goes through and the subscription ends, your account moves to Free, and your hosted diagrams follow the same rule as when Pro ends.

## 6. See your usage

| Where | What it shows |
|---|---|
| The Usage page at [app.plotwork.dev/usage](https://app.plotwork.dev/usage) | Today's count against your limit, when it resets, and the last 30 days. |
| The Plan page | Your plan, and a summary of what you use. |
| The Diagrams page | How many hosted diagrams and how much storage you have used, against your plan. |
| [`GET /user/usage`](https://docs.plotwork.dev/api/get-user-usage.md) | The same usage as JSON, while you are signed in. |

Reading your usage is not counted toward the limit.

## See also

| Doc | Why |
|---|---|
| [Hosted diagrams](https://docs.plotwork.dev/hosted-diagrams.md) | Publish a diagram, share the link and delete it |
| [Organisations](https://docs.plotwork.dev/organisations.md) | Share a private library with a team, and see whose plan it uses |
| [Connecting an agent](https://docs.plotwork.dev/mcp/connect.md) | Connect an agent to the hosted server with a key or a browser sign-in |
| [MCP server](https://docs.plotwork.dev/mcp/overview.md) | What the tools do, and how the local and the hosted server differ |
| [API reference](https://docs.plotwork.dev/api/reference.md) | Every endpoint, and the error envelope |
| [Privacy policy](https://docs.plotwork.dev/privacy-policy.md) | What is stored about your account, your diagrams and your payments |
