Create an API key
- Open Dashboard → Settings → API Keys and click Create Key.
- Name the key and select the forms it can read. A key can only read the forms you select.
- Copy the key. It starts with
osf_live_and is shown once. OSForms stores only a hash of it.
formId. That’s the last part of your submission endpoint: for https://osforms.com/api/v1/f/UNKMzY8jm18x the slug is UNKMzY8jm18x. The form’s internal ID (from the dashboard URL /dashboard/forms/{id}) works too.
API keys are read-only. They can’t create, edit, or delete anything, and the dashboard endpoints don’t accept them. To revoke a key, click Revoke in Settings. It stops working immediately.
List submissions
idis stable. Use it as the foreign key when you attach your own data (status, notes, assignments) to a submission.fieldsholds exactly what the form submitted. Uploaded files are not stored, so a file field holds a placeholder string like[File: cv.pdf, 48213 bytes].- IP address, user agent, and origin are never returned.
nextCursor back as cursor to get the next page. When hasMore is false, nextCursor is null and you’ve reached the end. Cursors stay valid while new submissions arrive, so paging never skips or repeats rows.
Return only some fields
If your platform shouldn’t hold contact details, ask only for the fields it displays:Get one submission
fields parameter. Returns { "data": { ...submission } }, or 404 if the submission doesn’t exist or belongs to a form the key can’t read.
Sync new submissions
To keep your copy up to date, remember the newestsubmittedAt you’ve stored and ask for everything from that point, oldest first:
since is inclusive, so the last submission from the previous run comes back again. Upsert by id and the duplicate is harmless.
Rate limits
Each API key can make 60 requests per minute. Every response includes:
Over the limit, you get
429 with a Retry-After header in seconds. Pulling submissions doesn’t count toward your monthly submission limit.