---
title: "Changelog"
description: "Notable updates to the OpnForm API."
---

## 2026-05-27 – Workspace invite listing requires admin access

The workspace invite listing endpoint now requires workspace admin access:

* `GET /open/workspaces/{workspaceId}/invites`

### What changed

- Non-admin workspace members can no longer list pending or accepted workspace invites.
- Personal Access Tokens must include `workspaces-write` and belong to a workspace admin.
- Invite responses do not expose invite tokens.

### Migration guide

If your integration lists workspace invites, use an admin-owned token with the `workspaces-write` ability. Continue using `GET /open/workspaces/{workspaceId}/users` with `workspace-users-read` when you only need accepted workspace members.

## 2025-01-02 – Optimized form list endpoint

The form list endpoint now returns **lightweight form summaries** for improved performance:

* `GET /open/workspaces/{workspaceId}/forms`

<Info>
The deprecated `GET /open/forms` endpoint (which lists all forms across workspaces) has been removed from the documentation. It remains available for existing Zapier integrations but is not recommended for new implementations.
</Info>

### What changed

This endpoint no longer includes the `properties` array (form fields and blocks) in the response. This significantly reduces response size and improves load times, especially for workspaces with many forms or complex form structures.

### Response fields

The list endpoint now returns these fields:

| Field | Description |
|-------|-------------|
| `id`, `slug`, `title`, `visibility`, `tags` | Core form identification |
| `views_count`, `submissions_count` | Form statistics |
| `created_at`, `updated_at`, `last_edited_human` | Timestamps (ISO 8601 + human-readable) |
| `closes_at`, `is_closed` | Form closure status |
| `max_submissions_count`, `max_number_of_submissions_reached` | Submission limits |
| `is_pro`, `workspace_id`, `share_url` | Workspace and sharing info |

### Migration guide

If your integration relies on `properties` from list endpoints, update your code to:

1. Fetch the form list to get form IDs/slugs
2. Call `GET /open/forms/{slug}` for each form where you need the full `properties` array

```javascript
// Before: properties were included in list response
const forms = await fetch('/open/workspaces/1/forms');

// After: fetch full form details when needed
const formList = await fetch('/open/workspaces/1/forms');
const fullForm = await fetch(`/open/forms/${formList.data[0].slug}`);
// fullForm.properties is now available
```

---

## 2024-06-18 – API creation 🎉

The first public version of the OpnForm REST API is live! You can now:

* Manage workspaces and members
* Create, update and delete forms
* Retrieve and manage submissions
* Generate personal access tokens with granular abilities

Stay tuned for more endpoints and features.