Complete reference for all resources available through the Appizer MCP server.
Overview
The Appizer MCP server provides both Resources (read-only data access via URI patterns) and Tools (interactive operations with parameters). This document covers the Resource endpoints, while the Tools documentation covers the interactive operations.
Resource Types
MCP provides access to the following resource types:
- Apps - Application configurations, metadata, and statistics
- Events - User activity and behavior data with filtering
- Users - User profiles, properties, and event history
- Audiences - User segments and cohort information
- Analytics - Pre-calculated metrics and insights
- Versions - App version history and release information
- Campaigns - Push notification campaigns and delivery data
Apps
List All Apps
GET /mcp/resources
Returns all apps accessible to your organization.
Response:
{
"resources": {
"apps": [
{
"id": "app_123",
"name": "Mobile App",
"description": "iOS and Android app",
"type": "app",
"uri": "/mcp/resources/apps/app_123"
}
]
}
}
Get App Details
GET /mcp/resources/apps/:appId
Returns detailed information about a specific app.
Response:
{
"id": "app_123",
"name": "Mobile App",
"description": "iOS and Android app",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-07-01T14:22:10Z",
"stats": {
"users": 15420,
"events": 982345,
"last_activity": "2025-07-19T21:15:33Z"
},
"top_events": [
{
"name": "app_open",
"count": 45678
},
{
"name": "purchase",
"count": 2341
}
]
}
Events
Query Events
GET /mcp/events
Query events with filters.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | Filter by app ID |
event_name | string | Filter by event name |
user_id | string | Filter by user ID |
start_date | string | Start date (ISO 8601) |
end_date | string | End date (ISO 8601) |
limit | integer | Max results (default: 100, max: 1000) |
offset | integer | Pagination offset (default: 0) |
Response:
{
"events": [
{
"id": "evt_789",
"app_id": "app_123",
"user_id": "user_456",
"event_name": "purchase",
"properties": {
"amount": 49.99,
"item": "Premium Plan"
},
"created_at": "2025-07-19T20:15:33Z"
}
],
"pagination": {
"total": 982345,
"limit": 100,
"offset": 0,
"has_more": true
}
}
Example: Get Recent Purchases
const response = await fetch(
'https://api.appizer.com/mcp/events?app_id=app_123&event_name=purchase&limit=10',
{
headers: {
'X-MCP-API-Key': process.env.APPIZER_MCP_API_KEY
}
}
);
const data = await response.json();
console.log(data.events);
Users
Get User Data
GET /mcp/users/:userId
Returns detailed user information.
Response:
{
"id": "user_456",
"external_id": "user_123",
"email": "user@example.com",
"phone": "+1234567890",
"properties": {
"name": "John Doe",
"plan": "premium",
"signup_date": "2023-06-15"
},
"created_at": "2023-06-15T10:30:00Z",
"last_active": "2025-07-19T20:15:33Z",
"event_count": 1234,
"origin": {
"channel": "ios-app",
"campaign": "spring-launch"
}
}
Example: Get User Event History
import requests
user_id = 'user_456'
# Get user details
user_response = requests.get(
f'https://api.appizer.com/mcp/users/{user_id}',
headers={'X-MCP-API-Key': os.getenv('APPIZER_MCP_API_KEY')}
)
# Get user's recent events
events_response = requests.get(
'https://api.appizer.com/mcp/events',
headers={'X-MCP-API-Key': os.getenv('APPIZER_MCP_API_KEY')},
params={'user_id': user_id, 'limit': 50}
)
user_data = user_response.json()
user_events = events_response.json()['events']
print(f"User: {user_data['properties']['name']}")
print(f"Recent events: {len(user_events)}")
Audiences
List Audiences
GET /mcp/resources/audiences
Returns all audiences for an app.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | Filter by app ID |
Response:
{
"audiences": [
{
"id": "aud_456",
"name": "Active Users",
"description": "Users active in the last 30 days",
"type": "audience",
"app_id": "app_123",
"user_count": 5420,
"uri": "/mcp/resources/audiences/aud_456"
}
]
}
Get Audience Details
GET /mcp/resources/audiences/:audienceId
Returns detailed audience information including user list.
Response:
{
"id": "aud_456",
"name": "Active Users",
"description": "Users active in the last 30 days",
"app_id": "app_123",
"user_count": 5420,
"criteria": "Users with last_active within 30 days",
"created_at": "2025-01-10T09:15:00Z",
"updated_at": "2025-07-19T20:00:00Z",
"users": [
{
"user_id": "user_456",
"email": "user@example.com",
"last_active": "2025-07-19T20:15:33Z"
}
]
}
Versions
List App Versions
GET /mcp/resources/apps/:appId/versions
Returns version release history for an app.
Response:
{
"app_id": "app_123",
"app_name": "Mobile App",
"current_version": "2.1.0",
"versions": [
{
"id": "ver_789",
"version": "2.1.0",
"release_notes": "New onboarding flow",
"released_at": "2026-01-15T10:00:00Z",
"created_by": "user@example.com"
},
{
"id": "ver_456",
"version": "2.0.0",
"release_notes": "Major redesign",
"released_at": "2025-12-01T09:00:00Z",
"created_by": "user@example.com"
}
],
"total": 2
}
Get App Versions Tool
The get_app_versions MCP tool allows AI assistants to fetch version history with optional date filtering.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | App ID (required) |
start_date | string | Filter versions released after this date (ISO 8601, optional) |
end_date | string | Filter versions released before this date (ISO 8601, optional) |
Example Use Case:
# AI assistant analyzing version impact
import requests
# Get versions for an app
versions_response = requests.get(
'https://api.appizer.com/mcp/resources/apps/app_123/versions',
headers={'X-MCP-API-Key': os.getenv('APPIZER_MCP_API_KEY')}
)
versions = versions_response.json()['versions']
# Find version 2.0 release date
v2_release = next(v for v in versions if v['version'] == '2.0.0')
release_date = v2_release['released_at']
# Query events before and after release
before_events = requests.get(
'https://api.appizer.com/mcp/events',
headers={'X-MCP-API-Key': os.getenv('APPIZER_MCP_API_KEY')},
params={
'app_id': 'app_123',
'end_date': release_date,
'limit': 1000
}
)
after_events = requests.get(
'https://api.appizer.com/mcp/events',
headers={'X-MCP-API-Key': os.getenv('APPIZER_MCP_API_KEY')},
params={
'app_id': 'app_123',
'start_date': release_date,
'limit': 1000
}
)
# Compare metrics
print(f"Events before v2.0: {len(before_events.json()['events'])}")
print(f"Events after v2.0: {len(after_events.json()['events'])}")
AI Prompt Example:
"Compare user engagement metrics before and after we released version 2.0"
The AI assistant will:
- Use
get_app_versionsto find the v2.0 release date - Query events before and after that date
- Calculate and compare engagement metrics
- Provide insights on the version's impact
Campaigns
List Push Campaigns
GET /mcp/resources/campaigns
Returns all push notification campaigns for an app.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | Filter by app ID |
status | string | Filter by status (scheduled, live, paused, sent) |
limit | integer | Max results (default: 50) |
Response:
{
"app_id": "app_123",
"campaigns": [
{
"id": "camp_789",
"name": "Welcome Series",
"title": "Welcome to our app!",
"status": "live",
"schedule_type": "trigger",
"trigger_event": "user_signup",
"audience_id": "aud_456",
"created_at": "2025-07-15T10:00:00Z",
"stats": {
"sent": 2451,
"delivered": 2310,
"clicked": 189,
"converted": 23
}
}
],
"total": 1
}
Get Campaign Details
GET /mcp/resources/campaigns/:campaignId
Returns detailed campaign information including delivery analytics.
Response:
{
"id": "camp_789",
"name": "Welcome Series",
"title": "Welcome to our app!",
"message": "Thanks for joining! Here's how to get started...",
"status": "live",
"schedule_type": "trigger",
"trigger_event": "user_signup",
"audience_id": "aud_456",
"audience_name": "New Users",
"created_at": "2025-07-15T10:00:00Z",
"updated_at": "2025-07-19T15:30:00Z",
"stats": {
"sent": 2451,
"delivered": 2310,
"clicked": 189,
"converted": 23,
"delivery_rate": 94.3,
"click_rate": 8.2,
"conversion_rate": 1.0
},
"performance": {
"avg_delivery_time": "2.3s",
"peak_delivery_hour": "14:00",
"best_performing_segment": "ios-users"
}
}
Analytics
Get Engagement Metrics
GET /mcp/analytics/engagement
Returns comprehensive engagement metrics for an app.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | App ID (required) |
start_date | string | Start date (ISO 8601) |
end_date | string | End date (ISO 8601) |
segment | string | User segment filter (optional) |
Response:
{
"app_id": "app_123",
"period": {
"start_date": "2025-07-01",
"end_date": "2025-07-19"
},
"metrics": {
"dau": 1250,
"wau": 5420,
"mau": 15420,
"stickiness": {
"daily_to_weekly": 23.1,
"weekly_to_monthly": 28.4,
"daily_to_monthly": 8.1
},
"retention": {
"day_1": 85.2,
"day_7": 62.1,
"day_30": 41.3
}
},
"segments": [
{
"name": "ios-users",
"dau": 890,
"retention_day_7": 65.4
},
{
"name": "android-users",
"dau": 360,
"retention_day_7": 56.2
}
]
}
Get Event Analytics
GET /mcp/analytics/events/:eventName
Returns detailed analytics for a specific event.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | App ID (required) |
start_date | string | Start date (ISO 8601) |
end_date | string | End date (ISO 8601) |
group_by | string | Time grouping (hour, day, week, month) |
Response:
{
"event_name": "purchase_completed",
"app_id": "app_123",
"period": {
"start_date": "2025-07-01",
"end_date": "2025-07-19"
},
"total_events": 1247,
"unique_users": 892,
"trends": [
{
"date": "2025-07-01",
"count": 45,
"unique_users": 38
},
{
"date": "2025-07-02",
"count": 52,
"unique_users": 41
}
],
"properties": {
"amount": {
"avg": 24.99,
"median": 19.99,
"p95": 49.99
},
"currency": {
"USD": 89.2,
"EUR": 7.8,
"GBP": 3.0
}
},
"peak_times": {
"hour_of_day": "14:00",
"day_of_week": "Tuesday",
"timezone": "UTC"
}
}
Get Funnel Analytics
GET /mcp/analytics/funnels
Returns conversion funnel analysis.
Parameters:
| Parameter | Type | Description |
|---|---|---|
app_id | string | App ID (required) |
events | array | Array of event names in sequence |
start_date | string | Start date (ISO 8601) |
end_date | string | End date (ISO 8601) |
time_window | string | Max time between steps (default: "7 days") |
Response:
{
"app_id": "app_123",
"funnel": {
"events": ["app_opened", "view_product", "add_to_cart", "purchase_completed"],
"time_window": "7 days"
},
"steps": [
{
"event": "app_opened",
"users": 10000,
"conversion_rate": 100.0
},
{
"event": "view_product",
"users": 4500,
"conversion_rate": 45.0,
"dropoff_rate": 55.0
},
{
"event": "add_to_cart",
"users": 1800,
"conversion_rate": 18.0,
"dropoff_rate": 60.0
},
{
"event": "purchase_completed",
"users": 720,
"conversion_rate": 7.2,
"dropoff_rate": 60.0
}
],
"overall_conversion": 7.2,
"analysis": {
"biggest_dropoff": "view_product → add_to_cart",
"dropoff_percentage": 60.0,
"recommendation": "Optimize product page layout and add clear CTAs"
}
}
Pagination
All list endpoints support pagination:
async function getAllEvents(appId) {
let allEvents = [];
let offset = 0;
const limit = 1000;
let hasMore = true;
while (hasMore) {
const response = await fetch(
`https://api.appizer.com/mcp/events?app_id=${appId}&limit=${limit}&offset=${offset}`,
{
headers: {
'X-MCP-API-Key': process.env.APPIZER_MCP_API_KEY
}
}
);
const data = await response.json();
allEvents = allEvents.concat(data.events);
hasMore = data.pagination.has_more;
offset += limit;
}
return allEvents;
}
Error Responses
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing MCP API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource not found |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Best Practices
- Use pagination for large datasets
- Cache frequently accessed resources
- Filter events by date range to reduce response size
- Monitor API usage to stay within rate limits
- Handle errors gracefully with retry logic
- Use specific queries instead of fetching all data
Next Steps
- MCP Tools - Interactive operations and AI integration
- MCP Overview - General information and setup
- MCP Authentication - Security guide
- API Reference - Complete API documentation