Use the /status endpoint to track the progress of background jobs. When you create or update an app, the settings migration runs as a background job. The API returns a ticket_token that you can use to check the job status.
Get ticket status
Retrieve the current status of a background job using the ticket token.
API protocol
Endpoint: https://automate.adjust.com/app-automation/status/{ticket_token}
Method: GET
Response: Ticket Status Response
Parameters
| Parameter | Data type | In | Required | Description |
|---|---|---|---|---|
ticket_token | String | Path | Yes | The ticket token returned from a previous API operation (e.g., app creation or update). |
Example
curl --location 'https://automate.adjust.com/app-automation/status/e5b07bb3-b5f3-40a8-8a2d-197d30b6beff' \--header 'Authorization: Bearer {your-adjust-api-token}'{ "status": "completed", "kind": "migration", "result": { "events": { "successes": ["purchase", "registration", "level_complete"], "failures": [] }, "partners": { "successes": ["facebook", "google", "applovin"], "failures": [] }, "trackers": { "successes": ["facebook_installs", "google_installs"], "failures": [] } }}{ "status": "opened", "kind": "migration", "result": { "events": { "successes": ["purchase"], "failures": [] } }}{ "status": "failed", "kind": "migration", "result": { "events": { "successes": ["purchase"], "failures": [] }, "partners": { "section": "partners", "detail": "Could not be started because events section has failed" } }}Status values
| Status | Description |
|---|---|
new | The job has been created but hasn’t started processing yet. |
opened | The job is currently being processed. |
completed | The job finished successfully. Check the result field for details. |
failed | The job failed. Check the result field for error details. |
Job types
The kind field indicates what type of operation the ticket is tracking:
| Kind | Description |
|---|---|
migration | Template app migration (copying settings from template to target app) |
update_app | App settings update (name, store ID, bundle ID changes) |
create_signature | SDK signature generation |
event_partial_update | Event creation or update |
partner_partial_update | Partner settings update |
tracker_partial_update | Tracker settings update |
callback_partial_update | Callback URL update |
Understanding results
The result object contains information about what succeeded and what failed during the job. The structure depends on the job type.
Migration results
For migration jobs, the result includes status for each app section that was processed:
{ "result": { "events": { "successes": ["event_name_1", "event_name_2"], "failures": [] }, "partners": { "successes": ["facebook", "google"], "failures": ["snapchat"] }, "trackers": { "successes": [], "failures": [], "skipped": "Partner facebook not configured in target app" } }}Partial update results
For partial update jobs, the result shows which items were successfully updated and which failed:
{ "result": { "successes": [{ "app_token": "abc123", "name": "purchase" }], "failures": [ { "app_token": "xyz789", "name": "invalid_event", "detail": "Event not found" } ] }}Polling for status
When waiting for a job to complete, we recommend polling the status endpoint with a reasonable interval:
- Wait 2-3 seconds after receiving the ticket token before the first status check.
- Poll every 5-10 seconds until the status is
completedorfailed. - Set a maximum timeout (e.g., 5 minutes) to avoid infinite polling.
Data models
Ticket Status Response
| Parameter | Data type | Description |
|---|---|---|
status* | String | Current status of the job. One of: new, opened, completed, failed. |
kind* | String | Type of job. One of: migration, update_app, create_signature, event_partial_update, partner_partial_update, tracker_partial_update, callback_partial_update. |
result* | Object | Information about successes and failures during the job. Structure varies by job type. |