REST API Reference
Base URL: https://api.partylayer.io/v1
All API requests require an x-api-key header.
curl -H "x-api-key: pk_live_xxx" https://api.partylayer.io/v1/appsApps
| Method | Endpoint | Description |
|---|---|---|
| GET | /apps | List apps (paginated) |
| POST | /apps | Create app |
| GET | /apps/:id | Get app |
| PATCH | /apps/:id | Update app |
| DELETE | /apps/:id | Delete app |
Users
| Method | Endpoint | Description |
|---|---|---|
| GET | /users | List users (paginated) |
| POST | /users | Create user |
| GET | /users/:id | Get user |
| POST | /users/me/wallet | Create wallet for current user |
| GET | /users/me/wallet | Get current user's wallet |
Query parameters: page, page_size, trust_level, search
API Keys
| Method | Endpoint | Description |
|---|---|---|
| GET | /api-keys | List API keys |
| POST | /api-keys | Create API key (key shown once) |
| DELETE | /api-keys/:id | Revoke API key |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
| GET | /webhooks | List webhooks |
| POST | /webhooks | Create webhook |
| PATCH | /webhooks/:id | Update webhook |
| DELETE | /webhooks/:id | Delete webhook |
| POST | /webhooks/:id/test | Send test event |
| GET | /webhooks/:id/deliveries | List deliveries |
Authentication
Passkey/WebAuthn
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/passkey/register-options | Get registration challenge |
| POST | /auth/passkey/register-verify | Verify registration |
| GET | /auth/passkey/login-options | Get login challenge |
| POST | /auth/passkey/login-verify | Verify login |
Telegram
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/telegram/verify | Verify Telegram auth data |
| GET | /auth/telegram/widget-config | Get bot config for widget |
Guest Sessions
| Method | Endpoint | Description |
|---|---|---|
| POST | /guests | Create guest session |
| GET | /guests/:id | Get guest session |
| POST | /guests/:id/convert | Convert guest to user |
| DELETE | /guests/:id | Expire session |
| POST | /guests/cleanup | Bulk expire old sessions |
Delegated Sessions
| Method | Endpoint | Description |
|---|---|---|
| POST | /delegated-sessions | Create delegated session |
| GET | /delegated-sessions/:id | Get session details |
| DELETE | /delegated-sessions/:id | Revoke session |
| POST | /delegated-sessions/:id/execute | Execute transaction |
| POST | /delegated-sessions/:id/query | Query contracts |
MFA
| Method | Endpoint | Description |
|---|---|---|
| POST | /mfa/setup | Start MFA setup |
| POST | /mfa/verify-setup | Complete MFA setup |
| POST | /mfa/challenge | Request MFA challenge |
| POST | /mfa/verify | Verify MFA code |
| GET | /mfa/status | Get MFA status |
| DELETE | /mfa | Disable MFA |
MPC Key Management
| Method | Endpoint | Description |
|---|---|---|
| POST | /mpc/shares | Store key share |
| GET | /mpc/shares/:walletId | Retrieve key share |
| DELETE | /mpc/shares/:walletId | Delete key shares |
| POST | /mpc/recover | Recover key from shares |
Custom Domains
| Method | Endpoint | Description |
|---|---|---|
| POST | /custom-domains | Register domain |
| POST | /custom-domains/verify | Verify DNS ownership |
| DELETE | /custom-domains | Remove domain |
Tenant
| Method | Endpoint | Description |
|---|---|---|
| GET | /tenant | Get current tenant |
| PATCH | /tenant | Update tenant settings |
Analytics
GET /analytics?period=30dPeriods: 7d, 30d, 90d
Billing
| Method | Endpoint | Description |
|---|---|---|
| POST | /billing/checkout | Create Stripe checkout session |
| POST | /billing/portal | Create billing portal session |
| GET | /billing/usage | Get current usage |
Health
| Method | Endpoint | Description |
|---|---|---|
| GET | /healthz | Health check |
| GET | /readyz | Readiness check |
Response Format
Success
{ "data": { ... } }Paginated
{
"data": [...],
"total": 100,
"page": 1,
"pageSize": 50,
"hasMore": true
}Error
{
"error": "Human-readable message",
"code": "ERROR_CODE",
"details": []
}HTTP Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request / Validation Error |
| 401 | Unauthorized |
| 403 | Forbidden (MFA required) |
| 404 | Not Found |
| 409 | Conflict (duplicate) |
| 410 | Gone (expired) |
| 429 | Rate Limited |
| 500 | Internal Server Error |