App Management API

Create, read, update, and delete apps programmatically

App Management API

The App Management API allows you to programmatically create, retrieve, update, and delete apps in your Appizer organization without using the dashboard.

Base URL

text
https://api.appizer.com/v1/apps

Authentication

All App Management API requests require authentication using your Organization API Key:

text
X-API-Key: apps_your_organization_api_key

The API key must be included in the X-API-Key header of every request.

Getting Your API Key

Organization admins can find and regenerate their API key in the Organization Settings:

  1. Log in to your Appizer dashboard
  2. Navigate to Settings (gear icon)
  3. Scroll to the "App Management API" section
  4. Copy your API key or regenerate it if needed

Request Format

All requests must include the following headers:

text
X-API-Key: apps_your_api_key
Content-Type: application/json

Response Format

All responses are returned in JSON format with the following structure:

json
{
  "success": true,
  "app": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "My App",
    ...
  }
}

Error responses:

json
{
  "error": "Error message describing what went wrong"
}

Common Fields

All app objects returned by the API contain the following fields:

Field Type Description
id string Unique app UUID
organization_id string UUID of the owning organization
name string App name
description string | null Optional app description
api_key string App tracking API key (ak_...)
api_secret string App tracking API secret (as_...)
platform string Always "web" for API-created apps
bundle_id string | null Mobile app bundle ID (set via dashboard)
environment string "production", "staging", or "development"
app_store_url string | null iOS App Store URL
play_store_url string | null Google Play Store URL
website_url string | null Website URL
authorized_domains array Domain strings allowed to use the SDK
data_retention_days number Days to retain event data (default: 365)
timezone string App timezone (default: UTC)
features object Feature flags: push, analytics, audiences, ai_insights
status string "active" or "inactive"
engagement_platform string "none" or "wonderpush"
engagement_credentials object | null Credentials for engagement platform
email_platform string "none" or "brevo"
email_credentials object | null Credentials for email platform
webhook_enabled boolean Whether webhook passthrough is enabled
webhook_url string | null Webhook URL if enabled
webhook_use_query_params boolean Whether to send event data as query parameters
context_info string | null Custom context for AI-generated content
url_context string | null Auto-scraped context from app URLs
cached_user_count number Cached count of tracked users
cached_event_count number Cached count of tracked events
cached_last_event string | null ISO 8601 timestamp of the most recent event
stats_last_updated string | null ISO 8601 timestamp of last stats refresh
created_at string ISO 8601 creation timestamp
updated_at string ISO 8601 last-updated timestamp

Available Endpoints

  1. Create an App - POST /v1/apps
  2. List Apps - GET /v1/apps
  3. Get App Details - GET /v1/apps/:id
  4. Update App - PATCH /v1/apps/:id
  5. Delete App - DELETE /v1/apps/:id

Error Handling

The API returns standard HTTP status codes:

  • 200 OK - Request successful
  • 201 Created - Resource created successfully
  • 400 Bad Request - Invalid request parameters
  • 401 Unauthorized - Missing or invalid API key
  • 403 Forbidden - API key disabled
  • 404 Not Found - Resource not found
  • 500 Internal Server Error - Server error

Error responses include an error field with a description:

json
{
  "error": "App name is required and must be 1-100 characters"
}

Rate Limiting

Currently, there are no rate limits on the App Management API. However, we recommend implementing reasonable delays between requests to avoid overwhelming the server.

Best Practices

  1. Secure Your API Key - Treat your API key like a password. Never commit it to version control.
  2. Use HTTPS - Always use HTTPS when making API requests.
  3. Handle Errors Gracefully - Check status codes and handle errors appropriately in your application.
  4. Validate Input - Validate all input data before sending requests.
  5. Store Safely - Store API keys in environment variables or secure configuration files.

Examples

Create an App (Node.js)

javascript
const fetch = require('node-fetch');

const apiKey = 'apps_your_api_key';
const appData = {
  name: 'My New App',
  description: 'My awesome app',
  timezone: 'America/New_York'
};

const response = await fetch('https://api.appizer.com/v1/apps', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(appData)
});

const result = await response.json();
if (result.success) {
  console.log('App created:', result.app.id);
} else {
  console.error('Error:', result.error);
}

List All Apps (Python)

python

api_key = 'apps_your_api_key'
headers = {
    'X-API-Key': api_key,
    'Content-Type': 'application/json'
}

response = requests.get('https://api.appizer.com/v1/apps', headers=headers)
result = response.json()

if result.get('success'):
    for app in result['apps']:
        print(f"App: {app['name']} ({app['id']})")
else:
    print(f"Error: {result.get('error')}")

Next Steps

On this page