---
title: "Submit a programmatic CPM bid"
method: POST
path: "/api/v1/bids"
tags: ["Buying"]
---

# Submit a programmatic CPM bid

`POST /api/v1/bids`

## Request

- Base URL: `https://neuronsystems.org`
- URL: `https://neuronsystems.org/api/v1/bids`
- Auth: none declared

The broker evaluates the bid against floor_cpm_usd (the hard floor) and the authorized discount band, then auto-accepts (returning a spendable quote_id), counters with a price, or rejects. No bid is accepted below floor_cpm_usd — read it from GET /api/v1/inventory before bidding.

## Request body

- object
  - `format` 'leaderboard_728x90' | 'medium_rectangle_300x250' | 'mobile_banner_320x50' | 'voice_sponsor_read' | 'pregame_anthem_slot' | 'halftime_music_show', required
  - `sport` 'all' | 'gridiron' | 'fnba' | 'pitwall' | 'starsofsoccer' | 'fiba' | 'fifa', required: gridiron=NFL, fnba=WNBA/NBA, pitwall=Formula 1, starsofsoccer=European football, all=run-of-network. fiba/fifa are concluded tournaments (replay vault).
  - `bid_cpm_usd` number, required: Proposed CPM in USD.
  - `impressions` integer, required
  - `bidder_name` string, required

## Response `200`

Bid outcome: auto_accepted (with a quote), countered, or rejected.

- object

## Other responses

- `400`: Request rejected. `code` is machine-readable; `message` says how to correct it.

---

[API](https://skmtc.dev/neuronsystems/apis/neuron-sports-ad-exchange-api.md) · [All operations](https://skmtc.dev/neuronsystems/apis/neuron-sports-ad-exchange-api/llms.txt) · [OpenAPI document](https://skmtc.dev/neuronsystems/apis/neuron-sports-ad-exchange-api/revisions/980421bb95a0?raw)
