ioZen Docs

Getting Started

Create your first API key and make your first API request to ioZen.

Get up and running with the ioZen API in under 5 minutes.

Prerequisites

  • An ioZen account on a Pro or Business plan
  • At least one intake bot created in your workspace

Step 1: Create an API Key

  1. Go to Workspace Settings → API Keys
  2. Click Create API Key
  3. Give it a name (e.g., "My Integration")
  4. Select the scopes you need (e.g., read:intake-bots, read:submissions)
  5. Click Create
  6. Copy the key immediately — you won't be able to see it again

Your key will look like: iozen_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ123456

Step 2: Make Your First Request

Using curl

curl https://app.iozen.ai/api/v1/intake-bots \
  -H "Authorization: Bearer iozen_live_your_key_here"

Using JavaScript

const response = await fetch('https://app.iozen.ai/api/v1/intake-bots', {
  headers: {
    Authorization: 'Bearer iozen_live_your_key_here',
  },
});

const { success, data } = await response.json();
console.log(data.intake_bots);

Using Python

import requests

response = requests.get(
    "https://app.iozen.ai/api/v1/intake-bots",
    headers={"Authorization": "Bearer iozen_live_your_key_here"},
)

data = response.json()
print(data["data"]["intake_bots"])

You'll receive a response like:

{
  "success": true,
  "data": {
    "intake_bots": [
      {
        "id": "clxyz...",
        "name": "Contact Intake",
        "status": "ACTIVE",
        "submission_count": 42,
        "created_at": "2026-02-23T10:00:00.000Z",
        "updated_at": "2026-02-23T12:00:00.000Z"
      }
    ],
    "pagination": {
      "has_more": false,
      "next_cursor": null
    }
  }
}

Step 3: Create a Submission

Once you can list intake bots, try creating a submission programmatically:

curl -X POST https://app.iozen.ai/api/v1/intake-bots/YOUR_BOT_ID/submissions \
  -H "Authorization: Bearer iozen_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "full_name": "Jane Doe",
      "email": "jane@example.com",
      "message": "Hello from the API"
    }
  }'

The data object should match the field names defined in your intake bot's schema. If validation fails, the error response will include details about which fields are invalid.

Step 4: Set Up Webhooks (Optional)

Instead of polling for new submissions, register a webhook to receive real-time notifications:

curl -X POST https://app.iozen.ai/api/v1/webhooks \
  -H "Authorization: Bearer iozen_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/iozen",
    "events": ["submission.completed"]
  }'

The response includes a secret for verifying webhook signatures.

Next Steps

  • Authentication — Learn about scopes, rate limits, and key management
  • API Reference — Full endpoint reference with request/response schemas
  • Webhooks — Set up real-time event notifications
  • Error Handling — Understand error codes for robust integrations

On this page