Quickstart

From zero to "form submission received in dashboard" in under 5 minutes.

1. Get a secret key

In the dashboard:

  1. Open the service (e.g. Forms).
  2. Click the Developers tab.
  3. Click Create key. Pick the test environment to start. Tick the scope you need (e.g. service.forms.submit).
  4. Copy the sk_test_… value. This is the only time you'll see it.
Never paste secret keys in browser code. They're server-side only. Public keys (pk_…) are for the browser.

2. Pick a base URL

EnvironmentBase URLKey prefix
Livehttps://app.softsolz.uksk_live_…
Sandboxhttps://app.softsolz.uk (key routes you)sk_test_…

The key's prefix tells us which workspace to write to - same URL, different data.

3. Submit data

Replace YOUR_SLUG with your form's slug and YOUR_KEY with the value from step 1.

curl -X POST https://app.softsolz.uk/api/v1/services/forms/forms/YOUR_SLUG/submit \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "name": "Jane Doe",
      "email": "jane@example.com",
      "message": "Hello from curl"
    }
  }'

Field keys in data must match the field ids defined on the form (not labels).

Node.js

await fetch('https://app.softsolz.uk/api/v1/services/forms/forms/YOUR_SLUG/submit', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.SOFTSOLZ_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ data: { name, email, message } }),
})

Python

import os, requests
requests.post(
    f'https://app.softsolz.uk/api/v1/services/forms/forms/{slug}/submit',
    headers={'Authorization': f'Bearer {os.environ["SOFTSOLZ_KEY"]}'},
    json={'data': {'name': name, 'email': email, 'message': message}},
)

4. Verify it landed

Open Forms → Submissions in the dashboard. Your row appears at the top with an "Unread" badge. Source = Server API.

What's next

Done? Treat your sk_* key like a password - rotate it any time from the same Developers tab.