Welcome to the OpnForm REST API – a straightforward, JWT-based interface that lets you manage workspaces, forms and submissions from your own tools or backend jobs.

If you’ve ever used the dashboard you already know the objects you’ll be working with: workspaces, forms, submissions, and users. The API exposes almost the same capabilities – you can list items, create new ones, update them or delete them, all with predictable HTTP verbs.

Base URL

https://api.opnform.com

All endpoints documented in this reference are relative to that URL.

Authentication

Every request must include a Personal Access Token in the Authorization header:

Authorization: Bearer <access_token>

Tokens can be created in your OpnForm dashboard (see the API Keys section). Each token is associated with one or more abilities / scopes that restrict what it can do.

AbilityDescription
workspaces-readRead workspaces the user belongs to
workspaces-writeCreate, update or delete workspaces
workspace-users-readList workspace members & invites
workspace-users-writeManage workspace members & invites
forms-readRead forms & submissions
forms-writeCreate or modify forms & submissions

When your request attempts an operation outside the abilities attached to the token, the API responds with 403 Forbidden.

Pagination

Some list endpoints are paginated. Use the page query parameter (?page=2) to retrieve subsequent pages.

Rate limits

Each IP address is limited to 100 requests per minute. Exceeding the limit returns 429 Too Many Requests.

Errors

Errors are returned in JSON with an HTTP status code that reflects the problem:

{
  "message": "Validation failed.",
  "errors": {
    "title": ["The title field is required."]
  }
}

See the status-code table below for the most common cases:

StatusMeaning
400Bad request / validation error
401Missing or invalid token
403Token lacks required ability
404Resource not found
429Rate limit exceeded
500Server error – something went wrong on our side

That’s all you need to know to get started – head over to the endpoint sections or grab a token and make your first call:

curl -H "Authorization: Bearer <access_token>" https://api.opnform.com/open/workspaces