Moonpull provides APIs for both submission and retrieval of information. They are relatively simple and the details of each of the relevant endpoints are in the relevant overviews.
Submission Overview: There are also APIs for confirming completion of the submission and determining the audits remaining for the month.
Retrieval Overview: For publishers to retrieval batch results
Batch ID Retrieval: Batches completed in a time period
The batch data retrieval endpoint provides data in the same format as is available by downloading from the platform - the Publisher Report. Therefore the data format is described in the Publisher Report document.
The API uses the format where quotes round a value can alter its value, as illustrated in the scenarios in the box below.
"proxyYN": true, <= true
"proxyYN": false, <= false
"proxyYN": "true", <= true (note the quotes)
"proxyYN": "false", <= TRUE (note the quotes) (this happens because any non-empty string is "truthy")
Moonpull utilised the application/json MIME type. This means all keys and string values have to be wrapped in double-quotes (") and no comments are allowed.
Empty values on a key need to have a "".
cookieType and proxyYN values do not need a ""
On a response from Moonpull you should save/log the header x-request-id in the case you
run into unexpected issues and need to contact us. If you ever have endpoint-specific issues
that you are not expecting, please contact support with that request ID + the issue
#Support
For further support contact the Moonpull Team: support@moonpullpartners.com - or simply submit a ticket from within the Knowledgebase
Endpoint reporting the IDs for specific batches completed in specified time period. It is to be used to determine batches to retrieve.
The detail with which the endpoint is set up is important. It may be every time it's triggered daily it is set to look to a seven day period. and you have a corresponding process to 'ignore' all the batches already imported. So if there is a retrieval error, then the next daily request will capture all completed batches to then be queued for retrieval.
| x-api-key required | string Your Moonpull api key generated in the app |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "finished_at": "string",
- "link_count": 0
}
]Submit a new batch to Moonpull
Currently (2025Q1) the only compulsory field is the affiliate URL. However, there is development work to make all of the following compulsory:
The development work will include more error checking and responses on errors.
We recognise that the field names of userDefinedNetwork and userDefinedMerchant are confusing.
The field userDefinedNetwork is NOT one that the user can choose. See below.
The field userDefinedMerchant is one that the user can specify in their own format.
Network name - userDefinedNetwork
If the network name that is specified is one you don't have access to, or it is spelt incorrectly (including being blank), the link is failed at the time of audit, not at the time of submission therefore you would see 'failed status' in the platform and/or the Publisher Report. The network names for your account should be as specified in the 'Single Link Submit' dropdown in the platform.
Country code
This needs to be in the 2-digit ISO code format. The supported countries are available from Moonpull. Alternatively, the current list may be seen from the options available in the 'Single Link Submit' Dropdown in the platform.
| x-api-key required | string Your Moonpull api key generated in the app |
| name | string |
| description | string |
| queue | string |
Array of objects (Link) |
{- "name": "string",
- "description": "string",
- "queue": "a",
- "links": [
- {
- "userDefinedNetwork": "string",
- "userDefinedMerchant": "string",
- "countryCode": "gb",
- "tagA": "string",
- "tagB": "string",
- "tagC": "string",
- "tagD": "string",
- "tagE": "string",
- "cookieType": 0,
- "cookieName": "string",
- "customAni": "string",
- "proxyYN": true,
- "proxyCountryCode": "gb"
}
]
}{- "batchId": "123e4567-e89b-12d3-a456-426614174000"
}Get details of a batch and if it's finished or not
| batchId required | string <uuid> The uuid of the batch |
| x-api-key required | string Your Moonpull api key generated in the app |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isComplete": true
}Returns information about the client. Includes the user email for the api key, maximum batch size and remaining audit count.
| x-api-key required | string Your Moonpull api key generated in the app |
{- "company": "string",
- "user": "string",
- "maxBatchSize": 0,
- "remainingAudits": 0
}Get a csv response of audit reports
| from required | string <date> The start date for the reports |
| to required | string <date> The end date for the reports |
| deleted | boolean Whether to include deleted reports |
| x-api-key required | string Your Moonpull api key generated in the app |
{- "errorMessage": "Invalid from/to date(s)"
}Get a csv or json response of audit reports for a batch
| batchId required | string <uuid> The uuid of the batch |
| json | boolean Whether to return json response |
| x-api-key required | string Your Moonpull api key generated in the app |
Get a json response of audit reports for a batch
| batchId required | string <uuid> The uuid of the batch |
| json | boolean Whether to return json response |
| x-api-key required | string Your Moonpull api key generated in the app |
[- {
- "Batch Name": "string",
- "Link ID": 0,
- "Audit ID": "0eb00b0a-f3db-466c-97a2-191044f37433",
- "Batch ID": "1737548d-4ff8-41a3-ad6a-b1bc866d884a",
- "Company": "string",
- "Country Code": "string",
- "Timestamp": "2019-08-24T14:15:22Z",
- "Date": "2019-08-24",
- "Click Reference": "string",
- "Tag A": "string",
- "Tag B": "string",
- "Tag C": "string",
- "Tag D": "string",
- "Tag E": "string",
- "Network": "string",
- "Merchant": "string",
- "Publisher ID": "string",
- "Advertiser ID": "string",
- "Closed": "string",
- "Client Comment": "string",
- "EMCS Source": "string",
- "EMCS Date": "2019-08-24",
- "Enhanced Memory Cookie Status": "string",
- "EMCS Country": "string",
- "EMCS Created By": "string",
- "EMCS Comment": "string",
- "EMCS Cookie Name": "string",
- "EMCS Cookie Type": "string",
- "S2S Likely": "string",
- "Comment Badge (Time of Audit)": "string",
- "Advertiser Public Comment": "string",
- "ANI lost before ALP": "string",
- "ANI lost on final redirect to ALP": "string",
- "Enhanced Script Status": "string",
- "Enhanced Consent Status": "string",
- "Enhanced CMP Details": "string"
}
]