Authenticate via Microsoft Identity Platform OAuth 2.0 (MSAL) to obtain an access token; use the Bulk Service SOAP endpoint or the REST-style bulk upload approach.
Prepare a CSV or TSV file following the Bulk API record format with columns Type, Status, Campaign, Budget, Budget Type, Time Zone, and other required fields per record type.
Submit the bulk file by calling UploadEntityRecordsAsync (SOAP) or via the upload URL obtained from GetBulkUploadUrl; include developer token and customer/account headers.
Capture the RequestId from the upload response and poll GetBulkUploadStatus until the RequestStatus is Completed or Failed.
Download the result file from the URL provided in GetBulkUploadStatus response; the result file contains per-row error codes for any rejected records.
Parse error codes in the result file; common issues include missing required fields, invalid time zones, or budget below minimums.
Known gotchas
Every SOAP request must include the AuthenticationToken, DeveloperToken, CustomerId, and AccountId headers — omitting any one results in an authentication or authorization fault.
Bulk files use a tab-separated format by default; ensure the column order and record type names exactly match the Bulk API schema, as the service is strict about format.
Changes submitted via the Bulk API are not instantaneous; allow processing time before querying the status — aggressive polling can trigger rate limiting.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp