API reference

Org-scoped REST API for Zapier and other automation clients. Authenticate with API keys, list forms, send form links, and read submissions.

Base URLhttps://api.refiles.io/api/v1

Overview

This cookie-free surface lives under /api/v1. Every request must include a Bearer organization API key. Keys are created in the app under Settings → Integrations.

Authentication

Send your key in the Authorization header. Keys start with refiles_.

Open Integrations

Header
Authorization: Bearer refiles_…
GET/me

Returns the organization and API key name for the authenticated key.

Request

curl -s "https://api.refiles.io/api/v1/me" \
  -H "Authorization: Bearer refiles_YOUR_KEY"

Response

{
  "organizationId": "00000000-0000-4000-8000-000000000001",
  "organizationName": "Example Co",
  "apiKeyName": "Zapier"
}
GET/forms

Lists published forms for the organization.

Parameters

NameInRequiredDescription
limitqueryNoMax forms to return (1-200, default 100).

Request

curl -s "https://api.refiles.io/api/v1/forms?limit=100" \
  -H "Authorization: Bearer refiles_YOUR_KEY"

Response

{
  "forms": [
    {
      "id": "00000000-0000-4000-8000-000000000002",
      "title": "Skydive waiver",
      "slug": "skydive-waiver",
      "status": "published"
    }
  ]
}
POST/forms/:formId/send-link

Emails a public form link to a recipient.

Parameters

NameInRequiredDescription
formIdpathYesForm UUID.
tobodyYesRecipient email address.
recipient_namebodyNoOptional display name for the recipient.
additional_infobodyNoOptional JSON value passed through with the send.

Request

curl -s -X POST "https://api.refiles.io/api/v1/forms/FORM_UUID/send-link" \
  -H "Authorization: Bearer refiles_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"guest@example.com","recipient_name":"Alex Guest"}'

Response

{
  "ok": true,
  "formUrl": "https://app.refiles.io/f/skydive-waiver"
}
GET/forms/:formId/submissions

Lists form submissions newest first.

Parameters

NameInRequiredDescription
formIdpathYesForm UUID.
limitqueryNoPage size (1-100, default 50).
cursorqueryNoOpaque cursor from a previous nextCursor value.

Request

curl -s "https://api.refiles.io/api/v1/forms/FORM_UUID/submissions?limit=50" \
  -H "Authorization: Bearer refiles_YOUR_KEY"

Response

{
  "submissions": [
    {
      "id": "00000000-0000-4000-8000-000000000003",
      "formId": "00000000-0000-4000-8000-000000000002",
      "submittedAt": "2026-10-19T12:00:00.000Z",
      "status": "completed",
      "answers": {}
    }
  ],
  "nextCursor": null,
  "hasMore": false
}

Errors

Failed requests return JSON with an error string.

StatusMeaning
401Missing or invalid API key.
404Form not found for this organization.
422Invalid request body.
429Rate limited on send-link.
503Email is not configured.

Docs updated November 15, 2026