RESTful API
Version 1.0

Base URL

https://api.appdrift.com/v1

Authentication

All API requests require authentication using a Bearer token in the Authorization header.

Request Header

Authorization: Bearer YOUR_API_TOKEN

Note: API tokens can be generated from your account settings under API Access.

API Endpoints

GET/api/appsList all apps
POST/api/appsCreate new app
GET/api/apps/{id}Get app details
PUT/api/apps/{id}Update app
POST/api/apps/{id}/syncSync app with store
POST/api/versions/{id}/publishPublish version

Apps

GET/api/appsList all apps

Query Parameters

platformFilter by platform (ios, android)
statusFilter by status (draft, published, in_review)

Response

{
  "apps": [
    {
      "id": 1,
      "name": "MyApp",
      "platform": "ios",
      "bundle_id": "com.example.myapp",
      "status": "published",
      "created_at": "2024-01-15T10:00:00Z"
    }
  ],
  "total": 1
}
POST/api/appsCreate new app

Request Body

{
  "name": "MyApp",
  "platform": "ios",
  "bundle_id": "com.example.myapp",
  "description": "App description"
}

Response

{
  "id": 1,
  "name": "MyApp",
  "platform": "ios",
  "bundle_id": "com.example.myapp",
  "status": "draft",
  "created_at": "2024-01-15T10:00:00Z"
}

Versions

POST/api/versions/{id}/publishPublish version to store

Path Parameters

idVersion ID to publish

Request Body

{
  "submit_for_review": true,
  "auto_release": false
}

Response

{
  "success": true,
  "version_id": 123,
  "status": "in_review",
  "message": "Version submitted for review"
}

Error Responses

The API uses standard HTTP status codes to indicate success or failure.

400 Bad RequestCLIENT_ERROR

Invalid request parameters or body

401 UnauthorizedAUTH_ERROR

Missing or invalid authentication token

403 ForbiddenPERMISSION_ERROR

Insufficient permissions for requested resource

404 Not FoundNOT_FOUND

Requested resource does not exist

500 Internal Server ErrorSERVER_ERROR

Unexpected server error occurred

Error Response Format

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request parameters",
    "details": {
      "field": "bundle_id",
      "reason": "Bundle ID already exists"
    }
  }
}

Rate Limiting

API Rate Limits

Standard Rate Limit

1000 requests/hour

Burst Rate Limit

100 requests/minute

Rate limit information is included in response headers:X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset