Skip to main content

Plans, billing and Quick Build

Read your plan, manage activation and create an application configuration. Use dashboard Billing for initial plan selection. Quick Build creates resources and credentials; repeating it can create additional resources.

API conventions · All endpoints · Schemas

/e/v1/developer/plans/​

Read the authenticated developer’s SyAuth entitlement as a plan list.

Authentication: X-Developer-Token with the scope shown below, an active SyAuth plan, and access to the resource. Dashboard requests use your signed-in account.

GET​

Required developer-token scope: read_plans.

No body. Returns your active SyAuth plan information. id is your subscription/user-plan ID, not the catalogue plan ID; use it for operations requiring user_plan_id.

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

200 — json

JSON response varies with the request. See the operation requirements and linked schema; validation errors may be keyed by field name.

403 — json


{
"error": "EXAMPLE_ERROR",
"code": "EXAMPLE_CODE"
}

500 — json


{
"error": "Unable to verify SYAUTH subscription due to system error. Please try again later."
}

500 — json


{
"error": "Failed to fetch plan data"
}

503 — json


{
"error": "EXAMPLE_ERROR",
"code": "EXAMPLE_CODE"
}

/e/v1/public/billing-plans/​

Read the SyAuth catalogue and public PayPal client ID.

Availability note: standalone access with the credential described below has a known authentication limitation. Check integration availability before relying on this operation. If it returns an unexpected 401, contact support with the endpoint and sanitized response.

GET​

No body. If this endpoint rejects an anonymous request or returns an empty catalogue, use dashboard Billing and contact support if plans remain unavailable.

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

200 — json


{
"paypal_client_id": "EXAMPLE_PAYPAL_CLIENT_ID",
"plans": [],
"currency": "USD"
}

/e/v1/developer/billing/subscribe/​

Record an approved PayPal subscription.

Authentication: X-Developer-Token with the scope shown below, an active SyAuth plan, and access to the resource. Dashboard requests use your signed-in account.

POST​

Required JSON plan_id (SyAuth catalogue plan ID) and subscription_id (approved PayPal subscription ID). Activation verifies the approved subscription. Obtain the subscription ID through checkout.

Example request body:


{
"plan_id": "CATALOGUE_PLAN_ID",
"subscription_id": "APPROVED_PAYPAL_SUBSCRIPTION_ID"
}

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

201 — json

JSON response varies with the request. See the operation requirements and linked schema; validation errors may be keyed by field name.

400 — json


{
"error": "plan_id and subscription_id are required"
}

400 — json


{
"error": "unknown_plan"
}

502 — json


{
"error": "activation_failed"
}

/e/v1/developer/billing/subscribe-free/​

Activate a zero-price SyAuth plan.

Authentication: X-Developer-Token with the scope shown below, an active SyAuth plan, and access to the resource. Dashboard requests use your signed-in account.

POST​

Required JSON plan_slug from the current SyAuth catalogue. Use dashboard Billing for initial setup. If activation returns a subscription/access error, contact support; there is no additional customer credential that bypasses account provisioning.

Request fields (combine with the requirements and schema above):

LocationFieldFallback when absent
bodyplan_slugnot supplied

Example request body:


{
"plan_slug": "syauth-free"
}

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

201 — json

JSON response varies with the request. See the operation requirements and linked schema; validation errors may be keyed by field name.

400 — json


{
"error": "plan_slug is required"
}

400 — json


{
"error": "not_a_free_plan"
}

502 — json


{
"error": "activation_failed"
}

/e/v1/developer/quick-build/​

Create a workspace authentication configuration in one transaction.

Authentication: X-Developer-Token with the scope shown below, an active SyAuth plan, and access to the resource. Dashboard requests use your signed-in account.

POST​

Required developer-token scope: write_quick_build.

Required JSON workspace UUID, company_name string, admin_contact email, nonempty auth_providers array (email and/or oauth), nonempty redirect_uris array of URLs. Optional application_name, allowed_scopes (comma-delimited, default openid,profile,email), external_providers array. External providers require oauth in auth_providers. Returns client, tokens, templates, providers and env_config. Generated credentials are sensitive.

Request / response schema: QuickBuildRequest, QuickBuildResponse.

Related schemas: QuickBuildRequest, QuickBuildResponse.

Example request body:


{
"workspace": "11111111-1111-4111-8111-111111111111",
"company_name": "Example company",
"admin_contact": "[email protected]",
"auth_providers": [
"email",
"oauth"
],
"redirect_uris": [
"http://127.0.0.1:8080/callback"
]
}

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

201 — json


{
"oauth_client": {},
"api_tokens": [
{}
],
"email_templates": [
{}
],
"external_providers": [
{}
],
"env_config": "EXAMPLE_ENV_CONFIG"
}

201 — json

JSON response varies with the request. See the operation requirements and linked schema; validation errors may be keyed by field name.

400 — json

JSON response varies with the request. See the operation requirements and linked schema; validation errors may be keyed by field name.

500 — json


{
"error": "Quick Build failed: EXAMPLE"
}

/e/v1/developer/stats/​

Read dashboard counts and recent users.

Authentication: X-Developer-Token with the scope shown below, an active SyAuth plan, and access to the resource. Dashboard requests use your signed-in account.

GET​

Required developer-token scope: read_stats.

Optional workspace_id query switches to workspace/custom-database context. Response includes counts, recent_users and from_custom_db. Unhealthy active custom database can return 503.

Request fields (combine with the requirements and schema above):

LocationFieldFallback when absent
queryworkspace_idnot supplied

Related schemas: User.

Success and error response examples

Illustrative values; conditional branches are alternatives. Fields vary with the operation and account configuration.

200 — json


{
"total_users": "EXAMPLE_TOTAL_USERS",
"total_groups": "EXAMPLE_TOTAL_GROUPS",
"total_tokens": "EXAMPLE_TOTAL_TOKENS",
"total_oauth_clients": "EXAMPLE_TOTAL_OAUTH_CLIENTS",
"total_templates": "EXAMPLE_TOTAL_TEMPLATES",
"total_providers": "EXAMPLE_TOTAL_PROVIDERS",
"from_custom_db": true,
"recent_users": [
{
"id": "11111111-1111-4111-8111-111111111111",
"email": "[email protected]",
"first_name": "Example",
"last_name": "Example",
"company": "EXAMPLE_COMPANY",
"website": "https://app.example.test/callback",
"country": "EXAMPLE_COUNTRY",
"job_title": "EXAMPLE_JOB_TITLE",
"phone_number": "EXAMPLE_PHONE_NUMBER",
"email_verified": true,
"created_at": "2026-10-26T12:00:00Z",
"updated_at": "2026-10-26T12:00:00Z",
"last_login": "2026-10-26T12:00:00Z",
"created_via_api_key": "EXAMPLE_CREATED_VIA_API_KEY",
"developer_id": "EXAMPLE_DEVELOPER_ID",
"workspace": "11111111-1111-4111-8111-111111111111",
"oauth_client": "11111111-1111-4111-8111-111111111111"
}
]
}

500 — json


{
"error": "EXAMPLE_ERROR"
}

503 — json


{
"error": "Custom database connection is active but not healthy. Please check the connection status or deactivate it to use internal database."
}