Skip to main content

Get Campaign History

Retrieve the change history for a specific campaign, including who changed what, when the change occurred, and the previous versus new values. Supports filtering by date range, action type, and field key, with pagination.

Written by Lior Avidar
Updated over 2 weeks ago

Endpoint

GET /external/campaigns/:campaignId/history


Required Header

Authorization: Bearer YOUR_API_TOKEN


Path Parameter

campaignId (Number) – The unique ID of the campaign whose history you want to retrieve.

Query Parameters (All Optional)

Parameter

Type

Description

start_date

String

Start of date range (ISO 8601 UTC, e.g. 2024-01-01T00:00:00Z). Records before this timestamp are excluded.

end_date

String

End of date range (ISO 8601 UTC). Must be later than start_date if both are provided.

action

String

Filter by change type: Create, Update, or Delete.

field_key

String

Filter by field key. Must be one of the supported field keys listed below.

limit

Number

Maximum number of records to return (1–200). Default: 50.

offset

Number

Number of records to skip for pagination. Default: 0.

Notes

  • Records are returned sorted by timestamp in descending order (newest first).

  • Ordering is deterministic across pagination.

  • All timestamps are returned in ISO 8601 UTC format with Z suffix.

  • start_date and end_date filters are interpreted strictly as UTC.

  • History retention is unlimited. All available campaign history is returned.

Example Request

curl -X GET "https://aura-platform.isappcloud.com/external/campaigns/12345/history?start_date=2024-01-01T00:00:00Z&end_date=2024-12-31T23:59:59Z&action=Update&field_key=daily_budget&limit=25&offset=0" \ -H "Authorization: Bearer YOUR_API_TOKEN"
Example Response

Example Response

{
"campaign_id": 123456,
"meta": {
"total": 2,
"limit": 25,
"offset": 0,
"applied_filters": {
"start_date": "2024-01-01T00:00:00Z",
"end_date": "2024-12-31T23:59:59Z",
"action": "Update",
"field_key": "daily_budget"
}
},
"records": [
{
"timestamp": "2024-06-15T14:32:00Z",
"entity": "Campaign",
"field_key": "daily_budget",
"field": "Daily Budget",
"action": "Update",
"old_value": "1000",
"new_value": "1500",
"details": "Budget updated via API",
"modified_by": "user@example.com",
"modified_by_type": "INTERNAL_USER"
},
{
"timestamp": "2024-06-10T09:00:00Z",
"entity": "Campaign",
"field_key": "daily_budget",
"field": "Daily Budget",
"action": "Update",
"old_value": "500",
"new_value": "1000",
"details": "",
"modified_by": "External API",
"modified_by_type": "EXTERNAL_API"
}
]
}

Returned Fields

Top Level

Field

Type

Description

campaign_id

Integer

Campaign ID the history belongs to.

meta

Object

Pagination details and applied filters.

records

Array

List of history entries.

meta Object

Field

Type

Description

total

Integer

Total number of records matching the filters (before pagination).

limit

Integer

Maximum number of records returned in this response.

offset

Integer

Offset used for this page.

applied_filters

Object

Echo of query parameters that were applied (only non-empty values).

Each Record in records

Field

Type

Description

timestamp

String

When the change occurred (ISO 8601 UTC).

entity

String

Always "Campaign" for this endpoint.

field_key

String

Stable external field key (see supported list below).

field

String

Human-readable field name.

action

String

Create, Update, or Delete.

old_value

String

Value before the change. Returns "-" for Create.

new_value

String

Value after the change. Returns "-" for Delete.

details

String

Optional description of the change.

modified_by

String

User email or system name that performed the change.

modified_by_type

String

INTERNAL_USER or EXTERNAL_API.


Supported Field Keys

field_key

Description

campaign_name

Campaign name

install_url

Install URL

impression_url

Impression URL

campaign_status

Campaign status

cost_model

Cost model

bid

Bid

daily_budget

Daily budget

monthly_budget

Monthly budget

total_budget

Total budget

schedule

Schedule

kpi

KPI

kpi_goals

KPI goals

age

Age targeting

carrier

Carrier targeting

carrier_id

Carrier ID

city

City targeting

customer

Customer targeting

dma

DMA targeting

device_language

Device language

device_manufacturer

Device manufacturer

device_model

Device model

device_type

Device type

gender

Gender targeting

publishers

Publishers

state

State targeting


Possible Errors

Status

Description

404 – Not Found

No campaign with the specified ID, or campaign does not belong to the advertiser associated with the token.

403 – Unauthorized

Invalid or missing token.

400 – Bad Request

Invalid query parameters. Examples: malformed ISO date, end_date earlier than start_date, unsupported action, unsupported field_key, limit outside 1–200 range, or invalid offset.

Did this answer your question?