Getting started
The Hyperstatic APIs are REST APIs over HTTPS. All APIs share one authentication model, one response envelope, and one error format. This consistency aims to makes development and integration easier since every endpoint behaves predictably.
Base URLs
- Platform
-
https://api.hyperstatic.com - Fonts
-
https://fonts.hyperstatic.com - Images
-
https://images.hyperstatic.com
Authentication
Every non-public request is authenticated using a bearer token, referred to as an
Access tokens can be acquired in two ways:
- User-scoped access tokens are generated through the standard API authentication flow.
- Permission-scoped access tokens are generated through the Console.
User-scoped access tokens
User-scoped access tokens are obtained through the standard passwordless login flow. Start by sending a login email through the authentication API. The email contains a single-use login link that passes through the authentication service, validates the link, and generates the login token used to complete the flow on the client.
The steps to obtain an access token are detailed below.
token or an error parameter. If the token parameter is present, it is your login token.
The login endpoint returns the standard response envelope. Its data property contains both a Credentials object and a User object.
The refresh response largely mirrors the login response: the standard response envelope's data property contains both a Credentials object and a User object.
Permission-scoped access tokens
Permission-scoped access tokens can be created via the Console.
Unlike user-scoped access tokens, permission-scoped access tokens carry assigned permission roles. The available roles are listed below.
organization.read- View an organization's profile, settings, and metadata.
organization.write- Create organizations and update their profile and settings.
organization.delete- Permanently delete an organization.
organization.billing- View and manage billing, subscriptions, and payment methods.
organization.members- Invite, remove, and change the roles of members in an organization.
organization.domains.read- View the custom domains attached to an organization.
organization.domains.write- Add and update custom domains.
organization.domains.delete- Remove custom domains from an organization.
organization.domains.verify- Trigger and complete domain ownership verification.
commerce.read- View commerce instances and their configuration.
commerce.write- Create and update commerce instances.
commerce.delete- Permanently delete a commerce instance.
commerce.orders.read- View orders and their details.
commerce.orders.write- Update orders, including status and fulfilment changes.
commerce.orders.refund- Issue refunds against an order.
forms.read- View form instances and their configuration.
forms.write- Create and update form instances.
forms.delete- Permanently delete a form instance.
forms.configuration.read- View a form's resolved configuration for an environment.
forms.settings.read- View a form's environment settings.
forms.settings.write- Update a form's environment settings.
forms.submissions.read- View submissions made to a form.
forms.submissions.write- Create submissions (typically the public submit action).
forms.submissions.delete- Delete submissions from a form.
sites.read- View site instances and their configuration.
sites.write- Create and update site instances.
sites.delete- Permanently delete a site instance.
sites.builds.read- View a site's build history and status.
sites.builds.write- Trigger new builds for a site.
sites.publish- Promote a build to live / publish a site.
instances.read- List all instances across products that the caller can access.
user.read- View the authenticated user's own profile.
user.write- Update the authenticated user's own profile.
user.sessions.read- List the authenticated user's active sessions.
user.sessions.revoke- Revoke one of the authenticated user's sessions.
status.read- View the operational status of an application.
status.write- Update the operational status of an application.
utility.currency.read- Perform currency conversions.
utility.ip.read- Perform IP address lookups.
*- Unrestricted superuser access to all resources and actions.
Making requests
Send JSON, receive JSON. Unless otherwise noted, write operations (application/json request body. Read operations use the path and query parameters specified on their operation detail pages. Here is a complete write request in JavaScript.
The request envelope
Unless the operation details state otherwise, requests that act on a particular resource should not use a wrapping property. For example, when updating the status of an
The response envelope
Success
Successful responses always wrap their payload in a top-level data property. Most responses also include a top-level pagination details for retrieving additional records.
Pagination
Unless otherwise noted, list endpoints return up to limit records (default: 20; maximum: 100).
Error
Error responses follow RFC 9457: Problem Details for HTTP APIs. They use the application/problem+json media type, and their bodies are JSON objects with at least some of the members detailed below.
Rate limits
The default limit is 1,000 requests per minute per token. If a request exceeds the rate limit, the API returns