TIGER FORM API V1.0

Getting Started

The TIGER FORM API lets your server create forms, send or read submissions, download QR images, and receive webhook events. All paths live under https://api.form-qr-code-generator.com/v1. Every account has a monthly API request limit by plan (Freemium 500; Starter 10,000; Business 30,000; Professional 50,000; Enterprise — contact us or [email protected] — see Rate Limits & Retries). When the limit is reached, responses return HTTP 429.

New integrator? Start here (about 5 minutes)
  1. Copy your API key from Settings → Integration in the web app.
  2. Run End-to-End Integration Steps 1–5 (form → submission → read back → QR download). Uses bash + jq for cURL — or use SDK Examples (Node/Python). Already have a form? Skip Step 1 and set QR_ID from the app or GET /forms.
  3. When a call fails, check Error Model (404 = wrong URL, 401 = bad key, 400/403 = business rule or role). See also Common Mistakes.

What to read first

Pick one path by goal — you do not need every guide on day one.

Your goalRead in order
Code samples (Node / Python)SDK Examples · full walkthrough: End-to-End Integration
Push or pull submissions on an existing formAuthenticationCreate a SubmissionRead Submissions (optional: Webhooks)
Create forms + QR from codeEnd-to-End IntegrationForm Field TypesHow to Customize Your QR Code
Push notifications (webhook)Webhooks (+ optional poll in Read Submissions)
Analytics / CSV exportForm Analytics
Reuse a marketplace templateForm Templates API (GET /form-templates/{templateId}/form-createPOST /forms) — skip if you build layouts yourself

Documentation map

Full index — bookmark for later. Day one: Core Concepts + one workflow guide above is enough.

AreaGuide
OverviewCore Concepts (Common Mistakes), End-to-End Integration
FundamentalsAuthentication, Versioning, Rate Limits & Retries, Error Model
Forms & QRCreate a Form, Form Field Types, Manage Forms, How to Customize Your QR Code, Built-in QR Design Presets
UploadsUpload APIs Compared
SubmissionsCreate a Submission, Read Submissions, Manage Submissions, Submission Field Reference
Form AnalyticsForm Analytics
Account & eventsAccount API, Webhooks
Form authoring (optional)AI Form Builder, Form Templates API, Quiz Forms
TeamTeam API (optional)
SDK & opsSDK Examples, Reliability, Support

Account setup

  1. Register on TIGER FORM (Freemium includes a limited API quota; paid plans include higher limits — Rate Limits & Retries).
  2. Copy your API key from Settings → Integration.
    API Key Dashboard Screenshot
  3. Optional: import public.openapi.json or postman.collection.json into Postman or your HTTP client. Before production, skim ReliabilityBefore Go-Live Checklist and Typical Latency (POST /forms often 1–2s).
cURL examples (optional — E2E walkthrough has full copy-paste steps)

Example: list forms (cURL)

API_KEY="<API_KEY>"

curl -sS -X GET "https://api.form-qr-code-generator.com/v1/forms?page=1&limit=5" \
  -H "Authorization: Bearer ${API_KEY}" \
  -H "Accept: application/json"

Example: success response (HTTP 200)

{
  "status": "success",
  "data": {
    "total": 2,
    "page": 1,
    "pageSize": 5,
    "totalPages": 1,
    "items": [
      {
        "id": "507f1f77bcf86cd799439011",
        "qrId": "ABC123",
        "title": "Contact form",
        "shortText": "Contact us",
        "shortUrl": "https://tgr.li/ABC123",
        "scans": 120,
        "submissions": 45,
        "active": true,
        "createdAt": "2025-06-01T10:00:00.000Z",
        "updatedAt": "2025-06-15T08:30:00.000Z"
      }
    ]
  }
}

Empty account: same shape with total: 0, totalPages: 0, items: [].

Example: auth error (HTTP 401)

{
  "status": "failed",
  "message": "Not authorized",
  "code": 401,
  "data": {}
}

Validation and business-rule errors usually return HTTP 400 or 403 with the same status: failed shape. See Rate Limits & Retries for HTTP 429 and Core Concepts for when the API returns 400 vs 404.

Example: create a text submission

Full walkthrough: End-to-End Integration Step 3. Below reads the field key from submission-schema (requires jq) — do not hardcode keys from doc JSON examples.

API_KEY="<API_KEY>"
QR_ID=$(curl -sS "https://api.form-qr-code-generator.com/v1/forms?page=1&limit=1" \
  -H "Authorization: Bearer ${API_KEY}" \
  | jq -r '.data.items[0].qrId')

FIELD_KEY=$(curl -sS "https://api.form-qr-code-generator.com/v1/forms/${QR_ID}/submission-schema" \
  -H "Authorization: Bearer ${API_KEY}" \
  | jq -r '.data.fields | keys[0]')

curl -sS -X POST "https://api.form-qr-code-generator.com/v1/forms/${QR_ID}/submissions" \
  -H "Authorization: Bearer ${API_KEY}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: demo-abc123-001" \
  -d "$(jq -n --arg k "$FIELD_KEY" '{answers: {($k): "Jane Doe"}}')"

Working with file uploads or submission attachments? See Upload APIs Compared.

When a call fails

Check in this order — most issues are URL, key, or payload (not server bugs):

  1. Wrong path or method → HTTP 404 (Error Model · 5-minute checklist)
  2. Bad or missing API key → HTTP 401
  3. Wrong qrId, role, or body → HTTP 400 / 403 (often not 404 for bad form id)
  4. Quota exhausted → HTTP 429 (Rate Limits & Retries)

Pitfall list: Common Mistakes. Full step-by-step: Error Model → 5-Minute Troubleshooting Checklist. No free form slots on create → HTTP 400 — use an existing qrId from GET /forms or archive a test form in the web app.