@emilyb: If you’re seeing different results with the exact same request, please provide some examples so we can try to reproduce the issue.
While we wait for that information, let me provide some information on retrieving draft campaigns. The draft_only parameter is only accepted in some our index endpoints, such as GET accounts/:account_id/campaigns. Index endpoints allow users to retrieve some or all entities associated with the account specified in the resource path. In contrast, we provide show endpoints, such as GET accounts/:account_id/campaigns/:campaign_id, that allow users to retrieve specific entities. These endpoints do not accept the draft_only parameter. You can tell the difference between the two type of endpoints by looking at the data attribute. In index responses, data will be an array. In show responses, data will be an object.
Let’s look at a quick example. Campaign 9asbs is a draft campaign. When I make an index request without specifying draft only, I get an empty data array, as expected, because we did not specify draft_only=true:
$ twurl -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/campaigns?campaign_ids=9asbs"
{
"request": {
"params": {
"campaign_ids": [
"9asbs"
],
"account_id": "18ce54d4x5t"
}
},
"next_cursor": null,
"data": []
}
With draft only specified:
$ twurl -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/campaigns?campaign_ids=9asbs&draft_only=true"
{
"request": {
"params": {
"campaign_ids": [
"9asbs"
],
"account_id": "18ce54d4x5t",
"draft_only": true
}
},
"next_cursor": null,
"data": [
{
"name": "draft campaign",
"start_time": "2017-08-17T16:49:00Z",
"reasons_not_servable": [
"DRAFT"
],
"servable": false,
"daily_budget_amount_local_micro": 1000000,
"end_time": null,
"funding_instrument_id": "lygyi",
"duration_in_days": null,
"standard_delivery": true,
"total_budget_amount_local_micro": 1000000,
"id": "9asbs",
"entity_status": "DRAFT",
"account_id": "18ce54d4x5t",
"frequency_cap": null,
"currency": "USD",
"created_at": "2017-08-17T16:49:32Z",
"updated_at": "2017-08-17T16:49:32Z",
"deleted": false
}
]
}
Finally, the show request, which does not need (or accept) draft_only:
$ twurl -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/campaigns/9asbs"
{
"request": {
"params": {
"campaign_id": "9asbs",
"account_id": "18ce54d4x5t"
}
},
"data": {
"name": "draft campaign",
"start_time": "2017-08-17T16:49:00Z",
"reasons_not_servable": [
"DRAFT"
],
"servable": false,
"daily_budget_amount_local_micro": 1000000,
"end_time": null,
"funding_instrument_id": "lygyi",
"duration_in_days": null,
"standard_delivery": true,
"total_budget_amount_local_micro": 1000000,
"id": "9asbs",
"entity_status": "DRAFT",
"account_id": "18ce54d4x5t",
"frequency_cap": null,
"currency": "USD",
"created_at": "2017-08-17T16:49:32Z",
"updated_at": "2017-08-17T16:49:32Z",
"deleted": false
}
}
Hope this helps clarify. Will keep an eye out for your response.