Skip to content

Developer Portal

The developer dashboard is available at availengine.com — manage businesses, API keys, billing, and download agent skills for any booking vertical. No code required.

All endpoints below are also available for programmatic use. They require JWT authentication. Register as a developer via POST /v1/auth/developer/register or through the dashboard's register page.

Profile

GET /v1/developer/me

Returns your profile, role, subscription status, and all owned businesses.

json
{
  "user_id": "uuid",
  "email": "dev@example.com",
  "role": "developer",
  "subscription": {
    "status": "active",
    "ends_at": null,
    "has_payment_method": true
  },
  "businesses": [
    {
      "id": "uuid",
      "name": "Demo Salon",
      "slug": "demo-salon",
      "business_type": "service",
      "subscription_status": "trial",
      "is_active": true,
      "is_dev": true,
      "created_at": "2026-05-01T10:00:00Z"
    }
  ]
}

For developers, businesses lists every business you own. For business owners, it returns just their single business. subscription is null for business owners (they have per-business billing, not developer billing).

Businesses

GET /v1/developer/businesses

List all businesses you own. Cursor-paginated, newest first.

bash
curl https://api.availengine.com/v1/developer/businesses \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

POST /v1/developer/businesses

Create a new business. Returns a scoped API key — store it, it won't be shown again.

bash
curl -X POST https://api.availengine.com/v1/developer/businesses \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My New Business",
    "business_type": "salon",
    "is_dev": false
  }'
FieldTypeRequiredDescription
namestringYes2–100 chars
business_typestringNoDefault "service". Any string up to 50 chars
is_devboolNoDefault false. Sandbox business (free, 1 per developer)

Response:

json
{
  "business_id": "uuid",
  "name": "My New Business",
  "slug": "my-new-business",
  "api_key": "avail_live_abc123def456...",
  "api_key_prefix": "avail_live_",
  "scopes": ["read", "write"]
}

Sandbox limit: Each developer gets 1 free is_dev: true business. Creating a second returns 402 Payment Required.

This endpoint also:

  • Creates default business_settings (60-min slots, €0.20 deposit)
  • Creates default operating_hours (all 7 days closed)
  • For business_owner roles, sets app_metadata.business_id

GET /v1/developer/businesses/{business_id}

Get full details for a specific business. You must own it (ownership check enforced).

DELETE /v1/developer/businesses/{business_id}

Deactivate a business (sets is_active: false). Also revokes all API keys for that business. The business and its data are preserved — it just stops being billable and accessible.

Billing

Developers subscribe to AvailEngine to use the API. See the pricing page for the 4-tier model — from Free to €129/mo (Scale) based on businesses and booking volume.

POST /v1/developer/billing/checkout

Start a Stripe Checkout session to subscribe.

bash
curl -X POST https://api.availengine.com/v1/developer/billing/checkout \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"plan": "starter"}'

Response:

json
{
  "checkout_url": "https://checkout.stripe.com/..."
}

Redirect the user to checkout_url. On success they're sent to /developer?subscription=success. On cancel, /developer?subscription=cancelled.

POST /v1/developer/billing/portal

Open the Stripe Customer Portal to manage payment method, view invoices, or cancel.

bash
curl -X POST https://api.availengine.com/v1/developer/billing/portal \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response:

json
{
  "portal_url": "https://billing.stripe.com/..."
}

Quickstart

GET /v1/developer/quickstart/{business_id}

Returns ready-to-use curl commands and cURL snippets for integrating with a specific business.

bash
curl https://api.availengine.com/v1/developer/quickstart/{business_id} \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response includes:

  • business — name, id, slug
  • curl — ready-to-paste availability check and booking creation commands

Stripe Connect (Per-Business Deposits)

If a business wants to accept deposit payments (for no-show protection), they need a Stripe Connect account. The developer dashboard handles this — go to Business Settings → Stripe Connect. The business owner completes Stripe onboarding once, and deposits flow directly to their bank account.

Released under the MIT License.