DedicatedMac

DedicatedMac API Reference

Every public DedicatedMac endpoint, with authentication, request and response shapes, and copy-paste curl examples.

Base URL https://dedicatedmac.io · OpenAPI 3.1 specification

Typical flow

  1. GET /api/sku-availability to see which configurations are in stock.
  2. If the wanted SKU is true, POST /api/checkout to get a Stripe Checkout URL, then hand that URL to a person to pay.
  3. If it is false, POST /api/waitlist with the same SKU and an email address.
  4. Credentials are emailed once the machine is provisioned; ongoing management lives in the customer portal.
GET

/api/sku-availability

Check live stock for every DedicatedMac plan

Returns a boolean per SKU indicating whether at least one Mac mini of that generation and configuration is AVAILABLE with remote-access credentials. This is the same call the pricing page makes before it decides whether to show a checkout button or a waitlist button. The response is never cached; ask again immediately before starting a checkout.

Authentication

None. Public, unauthenticated, no API key.

Request body

None. This endpoint takes no parameters.

Responses

200Availability map keyed by SKU id.

{
  "availability": {
    "standard": true,
    "standard_plus": false,
    "ultimate": true
  }
}

500Inventory could not be read.

{ "error": "Unable to load availability" }

Example

curl -sS https://dedicatedmac.io/api/sku-availability
POST

/api/waitlist

Join the waitlist for an out-of-stock configuration

Records an email address against a specific SKU and billing period so we can notify that person when the configuration is back in stock. Use this when GET /api/sku-availability reports the SKU as false.

Authentication

None. Public, unauthenticated, no API key.

Request body

FieldTypeRequiredDescription
skustringyesWhich Mac configuration to be notified about.standardstandard_plusultimate
billingstringnoBilling period of interest. Defaults to monthly if omitted or unrecognised.dailyweeklymonthlyquarterly
emailstringyesAddress to notify. Normalised to lowercase.
namestringnoFull name, used only to personalise follow-up.

Responses

200Recorded.

{ "ok": true }

400Missing or malformed sku or email.

{ "error": "Invalid plan selection" }

500Unexpected server error.

Example

curl -sS -X POST https://dedicatedmac.io/api/waitlist \
  -H 'Content-Type: application/json' \
  -d '{"sku":"ultimate","billing":"monthly","email":"you@example.com"}'
POST

/api/checkout

Create a Stripe Checkout session for a rental

Creates a Stripe subscription Checkout session and returns its hosted URL. The caller (or the end user) must open that URL in a browser to enter payment details; there is no headless purchase path. Daily billing is priced but not self-serve — contact sales for it. M6 supports weekly or monthly billing. If the SKU is out of stock the call fails with 409; use POST /api/waitlist for M4 or POST /api/waitlist/m6 for M6.

Authentication

Optional. Send `Authorization: Bearer <Firebase ID token>` to bind the session to a signed-in portal account; the token's email then overrides the email in the body. Without a token the call is anonymous and the supplied email is not treated as proof of ownership.

Request body

FieldTypeRequiredDescription
skustringyesMac generation and configuration to rent.standardstandard_plusultimatem6_standardm6_ultimate
billingstringyesBilling period.dailyweeklymonthlyquarterly
emailstringyesBilling email. Ignored when a valid Firebase ID token is supplied.
namestringnoFull name passed to Stripe as the customer name.

Responses

200Session created. Open `url` in a browser to pay.

{ "url": "https://checkout.stripe.com/c/pay/cs_live_..." }

400Invalid plan selection or invalid email.

{ "error": "Invalid plan selection" }

409That configuration is out of stock; join the waitlist instead.

{ "error": "This configuration is currently out of stock. Join the waitlist to get notified." }

500Stripe or catalog error.

Example

curl -sS -X POST https://dedicatedmac.io/api/checkout \
  -H 'Content-Type: application/json' \
  -d '{"sku":"standard","billing":"monthly","email":"you@example.com"}'

Not available

  • There is no MCP server for DedicatedMac.
  • There is no client SDK; the API is three plain HTTP endpoints, so use any HTTP client.
  • There are no API keys and no OAuth application. The public endpoints are unauthenticated, and the only credential the API understands is a Firebase ID token belonging to an existing portal account.
  • There is no headless purchase: POST /api/checkout returns a Stripe Checkout URL that a human must open.
  • There is no API for controlling a rented Mac. Restart and credential actions live in the signed-in customer portal at /dashboard.

Questions about the API?

Questions about the API, or a capability you need that is not listed here: support@dedicatedmac.io.

Back to the developer portal