---
title: "Submit an ad (quote-first flow, step 1)"
method: POST
path: "/api/ads/submit"
tags: ["Advertising"]
---

# Submit an ad (quote-first flow, step 1)

`POST /api/ads/submit`

Submit ad details and an image to get a payment quote. Returns a quote_id and an unsigned USDC transfer transaction. The caller signs and broadcasts the transaction from their Web3 wallet, then calls POST /api/ads/submit/pay to finalise. Rate limit: 10 requests/min/IP.

## Response `200`

Quote generated - sign and broadcast the transaction, then call /api/ads/submit/pay

- object
  - `quote_id` string — Use this in the /api/ads/submit/pay call
  - `status` string
  - `expires_at` string, date-time
  - `payment` object — Unsigned USDC transfer transaction and payment metadata
  - `next_step` string

## Other responses

- `400` — Invalid input
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/blocklottos/apis/block-lottos-api.md) · [All operations](https://skmtc.net/blocklottos/apis/block-lottos-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/blocklottos/block-lottos-api/versions/43ed97cec4a5/schema)
