GET
/
open
/
forms
/
{id}
/
submissions
List Submissions
curl --request GET \
  --url https://api.opnform.com/open/forms/{id}/submissions \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": 123,
      "form_id": 123,
      "completion_time": 123,
      "data": {}
    }
  ],
  "links": {
    "first": "<string>",
    "last": "<string>",
    "prev": "<string>",
    "next": "<string>"
  },
  "meta": {
    "current_page": 123,
    "from": 123,
    "last_page": 123,
    "per_page": 123,
    "to": 123,
    "total": 123
  }
}

List Submissions

Retrieve submissions for a specific form.

Authentication & Scope

Requires forms-read ability.

Request

GET /open/forms/{id}/submissions?page=1 HTTP/1.1
Host: api.opnform.com
Authorization: Bearer <token>

Path Parameters

ParameterTypeDescription
idnumberNumeric ID of the form.

Query Parameters

ParameterTypeRequiredDescription
pagenumberNoPagination page number (default 1).
per_pagenumberNoNumber of results per page (default 100, max 100).
searchstringNoSearch term to filter submissions by field values.
statusstringNoFilter by submission status: completed, partial, or all (default).

Response

200 OK – Returns a paginated collection of Submission objects.
{
    "data": [
        {
            "data": {
                "field-id-1": "Sample text response",
                "field-id-2": ["Option 1", "Option 2"],
                "field-id-3": [
                    {
                        "file_url": "https://api.opnform.com/open/forms/123/submissions/file/document.pdf?expires=1756808073&signature=abc123...",
                        "file_name": "document.pdf"
                    }
                ],
                "status": "completed",
                "created_at": "2024-06-12 09:15:23",
                "id": 615432
            },
            "completion_time": 45,
            "form_id": 123,
            "id": 615432
        }
    ],
    "links": {
        "first": "https://api.opnform.com/open/forms/123/submissions?page=1",
        "last": "https://api.opnform.com/open/forms/123/submissions?page=3",
        "prev": null,
        "next": "https://api.opnform.com/open/forms/123/submissions?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 3,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://api.opnform.com/open/forms/123/submissions?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api.opnform.com/open/forms/123/submissions?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://api.opnform.com/open/forms/123/submissions",
        "per_page": 100,
        "to": 12,
        "total": 12
    }
}

Response Fields

Each submission object contains:
FieldTypeDescription
dataobjectContains form field responses plus metadata
completion_timenumber/nullTime taken to complete the form in seconds
form_idnumberID of the parent form
idnumberUnique submission ID

Data Object Structure

The data object contains:
  • Form field responses: Keyed by field UUID, values vary by field type
  • Metadata fields:
    • status: Submission status (completed or partial)
    • created_at: Submission creation timestamp
    • id: Submission ID (duplicate for convenience)

File Field Handling

File and signature fields are automatically processed to include download URLs:
"field-uuid": [
  {
    "file_url": "https://api.opnform.com/open/forms/123/submissions/file/filename.pdf?expires=1756808073&signature=abc123...",
    "file_name": "filename.pdf"
  }
]
File URLs are signed and expire after 10 minutes for security.

Query Parameter Details

Search Functionality

  • Searches within submission field values only (not field names/keys)
  • Uses case-insensitive matching
  • Supports partial text matching

Status Filtering

  • completed: Returns only fully completed submissions
  • partial: Returns only partially completed submissions (Pro feature)
  • all or omitted: Returns all submissions regardless of status

Pagination

  • Default per_page is 100, maximum is 100
  • Results are ordered by created_at in descending order (newest first)
403 Forbidden – The token lacks forms-read.

Authorizations

Authorization
string
header
required

Personal Access Token

Path Parameters

id
number
required

Query Parameters

page
number
default:1

Pagination page number

Required range: x >= 1
per_page
number
default:100

Number of results per page

Required range: 1 <= x <= 100

Search term to filter submissions by field values

status
enum<string>
default:all

Filter by submission status

Available options:
completed,
partial,
all

Response

Successful

data
object[]
meta
object