For agents and developers
Book a placement through the API.
Use the same reviewed sponsorship flow as the website. Each exclusive placement costs $100 USD per calendar month and renews until canceled.
OpenAPI specification · Live availability and dimensions · Plain-text agent workflow · Agent discovery
Agents can submit, monitor, and manage campaigns. The publisher still approves artwork; the owner authorizes the initial monthly subscription through Stripe Checkout. Publication and monthly renewals are automatic after those steps. This API does not accept cards, Shared Payment Tokens, or MPP payments.
Check the traffic behind the offer
GET /api/sponsors/traffic returns the same report as traffic in the slot catalog: 30 completed UTC days, daily rows, totals, averages, source definitions, and updated_at. Check status and the inclusive window dates before quoting figures. Delayed updates are marked stale; unavailable metrics are null.
automatic_refresh=false means a dated snapshot while automatic refresh is being configured. Daily updates are enabled once automatic_refresh=true; always check the freshness status.
Cloudflare page views include bots and are not unique visitors or ad impressions. Data served includes all site responses, including media and assets; it is not completed-download volume. These counts do not guarantee campaign results.
1. Choose a placement and submit artwork
The left and right placements each require a 160 × 300 image. The bottom placement requires both a 728 × 90 desktop image and a 320 × 50 mobile image. Use static PNG, JPEG, or WebP files, each at most 1 MiB.
curl 'https://spacedownloader.io/api/sponsors/slots'
curl 'https://spacedownloader.io/api/sponsors/campaigns' \
-H 'Idempotency-Key: REPLACE_WITH_A_RANDOM_UUID' \
-F 'slot_id=left' \
-F 'name=Your business' \
-F '[email protected]' \
-F 'url=https://example.com/' \
-F '[email protected]'
For the bottom slot, also send [email protected]. Save the returned token securely; it grants management access to this campaign. The private management link keeps the token in its fragment, outside server request logs. Do not share it or place it in a query string.
Use one unpredictable idempotency key per submission. Reuse it only when retrying the same fields and files; changing the request requires a new key. Keep this key private too.
2. Wait for approval, then check out
curl 'https://spacedownloader.io/api/sponsors/campaigns/CAMPAIGN_ID' \
-H 'Authorization: Bearer YOUR_CAMPAIGN_TOKEN'
curl -X POST 'https://spacedownloader.io/api/sponsors/campaigns/CAMPAIGN_ID/checkout' \
-H 'Authorization: Bearer YOUR_CAMPAIGN_TOKEN'
Poll status no more than once per minute. Review happens before payment. Approval does not reserve inventory: availability is checked again and the slot is reserved when checkout starts. The response contains a Stripe Checkout URL. Obtain the payer's explicit authorization for the $100 monthly subscription before proceeding; card authentication may require the owner. The API never accepts raw card details.
Follow campaign.next_action for the next operation and who must perform it: the agent, publisher, or payer. A successful browser redirect is not payment confirmation. Wait for campaign.display_active=true to confirm publication. Stripe confirmations update the campaign even if the customer closes the browser.
3. Manage the campaign
Authenticated POST /api/sponsors/campaigns/CAMPAIGN_ID/cancel stops renewal and retains the already-paid period. POST .../portal returns a short-lived Stripe URL for invoices and payment-method changes.
To change the banner or destination, submit a complete multipart replacement to POST .../revision with name, url, desktop, and mobile for the bottom slot. The current approved banner remains displayed while the replacement is reviewed.
Campaign status includes the paid-through timestamp and approximate banner-view and click counts. Counts are deduplicated within an hour and are not a guarantee of unique people, delivery, or conversions.
HTTP 409 means the slot or campaign state changed; refresh status before retrying. HTTP 429 means wait before retrying. For a network error during checkout, retry the same campaign's checkout endpoint; do not submit another campaign or payment.
All banners and destination changes require review. No scripts, deceptive download buttons, false security warnings, phishing, malware, or unlawful content. See the sponsorship terms.