← Back to glossary

Budget Micros

Budget micros are how the ChatGPT Ads API expresses a campaign's spending limit: the budget amount written as an integer in micros, stored as whole millionths of your account's currency. They describe the same budget you set in ChatGPT Ads Manager in machine-readable form, so they add no separate budget type and no extra spending cap.

If you launch ChatGPT Ads through the API instead of the dashboard, you set every budget and bid in micros, so the conversion must be right before launch. Get the multiplier wrong and you can submit a budget a thousand times too large or too small, overspending money or starving a campaign.

What are budget micros?

Budget micros are an integer money format where one unit of your account's currency equals 1,000,000 micros, so a 50 dollar budget is stored as 50,000,000. OpenAI applies this fixed-point convention across the Ads API so amounts stay exact. Decimal values can introduce small rounding errors, and whole integers avoid them, which matters when the platform bills real money against your limit.

The micros convention covers every money field in the API, so the pattern repeats beyond budgets. A campaign's lifetime_spend_limit_micros holds the total cap, and an ad group's max_bid_micros holds the bid. Reporting fields use the same naming. To read a value back as currency, divide by 1,000,000; to send one, multiply your intended amount by 1,000,000.

Budget micros sit underneath the daily budget and lifetime budget you already recognize, as the API expects them. In ChatGPT Ads Manager the dashboard hides the conversion and shows plain currency, so most advertisers only meet micros when they work through the API or a connected platform. AirOps manages ChatGPT Ads as one of its AI ad channels, so campaigns launched and measured through AirOps handle the micros conversion for you.

How budget micros work

Setting a budget in micros is a conversion you run before and after each API call. Here is the sequence when you create or update a ChatGPT Ads campaign programmatically.

  1. Pick the amount. Decide the budget in your account's currency, such as 100 dollars, using the same figure you would type into Ads Manager.

  2. Multiply up. Convert that amount to micros by multiplying by 1,000,000, so 100 dollars becomes 100,000,000.

  3. Send the field. Pass the integer in the matching field, such as budget.lifetime_spend_limit_micros, inside your POST to the campaigns endpoint.

  4. Pass validation. OpenAI checks the value against the minimum, which is 1,000,000 micros for a lifetime budget, and rejects anything below it.

  5. Read it back. When you fetch the campaign, divide the returned micros by 1,000,000 to display the currency amount to a person.

The micros value tells you the exact limit the API will enforce. It does not tell you what the campaign will actually spend, since delivery and pacing decide that against the limit you set.

Resources: a practical guide to setting up, targeting, and measuring ChatGPT Ads campaigns

The importance of Budget Micros for marketers

When you move ChatGPT Ads spend into the API, budget micros become the difference between a campaign that spends what you intended and one that burns through a month of budget in a day. The format is simple to use, and a conversion error is expensive.

  • Real money rides on one multiplier: a budget entered as 20 micros instead of 20,000,000 reads as a fraction of a cent, so the campaign never serves, while the reverse error overspends a thousandfold.

  • API launches scale faster than manual ones: teams running many campaigns programmatically set every limit in micros, so a correct conversion keeps automated spend aligned with the plan.

  • The market minimum is set in micros too: OpenAI's current minimum daily campaign budget for USD accounts is 25 dollars, or 25,000,000 micros, in 2026, so budgets below that are rejected before a campaign starts.

Marketer use cases

  1. Growth marketers use budget micros to set correct campaign spending limits when they launch ChatGPT Ads through the API instead of the dashboard.

  2. Demand gen leads use budget micros to script bulk campaign creation so every automated budget converts cleanly from currency to the integer the API expects.

  3. SEO managers use budget micros to read reported spend limits back into plain currency when they audit ChatGPT Ads performance against organic AI search coverage.

Key concepts

The micros multiplier

One unit of your account currency always equals 1,000,000 micros, so every conversion is a single multiply or divide by one million, with no rounding to manage and no decimal places to lose along the way.

Fields ending in _micros

Any Ads API field whose name ends in _micros expects the integer form, which covers lifetime_spend_limit_micros, daily_spend_limit_micros, and max_bid_micros across both campaigns and ad groups, so the suffix is your cue to convert.

Bid multipliers in micros

Audience bid adjustments also use micros, where OpenAI documents a range of 100,000 to 10,000,000 micros, representing 0.1 times to 10 times your base bid for a matched audience, so the same unit governs targeting as well as spend.

Benefits

  • Keep API spending limits exact by storing money as whole integers instead of error-prone decimals.

  • Convert any amount with a single multiply or divide step between currency and micros.

  • Match OpenAI's published Ads API minimums before a campaign is ever submitted.

  • Automate campaign creation at scale, since scripted budgets in micros run without manual dashboard entry.

  • Reconcile reported spend in ChatGPT Ads with the limits you set across every campaign.

Budget Micros best practices

  • Store a single conversion helper in your code, so you multiply and divide by 1,000,000 in one place and avoid scattered math.

  • Validate every budget against OpenAI's documented minimum before you POST, so the API does not reject the campaign.

  • Log both the currency amount and the micros value, so anyone auditing the campaign can trace the figure.

  • Build budgets from the account currency, since micros follow whatever currency the ad account is billed in.

  • Convert reported micros back to currency in any dashboard you build, so stakeholders read plain amounts.

  • Double-check the zero count whenever you change a budget, since one missing or extra zero shifts spend tenfold.

Avoid hardcoding a long micros integer from memory. Typing a long string of zeros by hand is where tenfold and hundredfold errors creep in, because the eye misses a zero that a conversion step would catch.

Tools and technologies

  • AirOps: manages ChatGPT Ads as one of its AI ad channels, launching and measuring campaigns so the micros conversion is handled for you.

  • ChatGPT Ads Manager: OpenAI's dashboard that shows budgets in plain currency and converts to micros behind the scenes when you set a campaign.

  • ChatGPT Ads API: OpenAI's programmatic interface where you send budgets and bids directly in micros through the campaigns and ad groups endpoints.

Getting started with Budget Micros

  1. Read the docs. Open OpenAI's Ads API reference this week and note every field that ends in _micros. This costs nothing and takes about an hour.

  2. Map your currency. Confirm which currency your ad account is billed in, since micros follow the account currency and the minimums vary by market.

  3. Write a converter. Build a small helper that multiplies currency to micros and divides micros back, then reuse it everywhere you touch a budget or bid.

  4. Test on a paused campaign. Create a campaign with status paused, set a known budget in micros, and fetch it back to confirm the value matches your intended amount.

  5. Launch and reconcile. Set the campaign live, then compare reported spend against the micros limit you set, converting back to currency so the numbers stay readable. Make this comparison a routine so a conversion mistake surfaces in hours instead of at the end of a billing cycle.

Key takeaways

  • Budget micros express ChatGPT Ads spending limits as integers, where one unit of account currency equals 1,000,000 micros.

  • You convert by multiplying currency into micros to send a budget and dividing to read one back.

  • The format only applies through the Ads API, since the dashboard shows and accepts plain currency.

  • A single misplaced zero can overspend or underspend a campaign by a factor of ten or more.

  • Centralizing the conversion in one tested helper is where teams remove the error before money moves.

Frequently asked questions about budget micros

How are budget micros different from the daily budget I set in Ads Manager?

Budget micros and the daily budget describe the same spending limit in two forms. The daily budget is the currency figure you type into ChatGPT Ads Manager, and budget micros are any budget stored as an integer for the Ads API, where one currency unit equals a million micros. The dashboard runs the conversion silently, so an advertiser who never touches the API may never see a micros value. Through the API you set budgets directly in micros, using fields such as daily_spend_limit_micros or lifetime_spend_limit_micros depending on the budget type. So the daily budget is a product concept you manage in the interface, and micros are the data format the programmatic surface uses to carry it. If you work only in the dashboard, you set currency and move on. If you script campaigns, you send and read every amount in micros, then convert back to currency for anyone reading the numbers.

How much is one budget micro worth when I set a budget?

One budget micro is worth one millionth of your account's currency, so a million micros equal a single unit, such as one dollar in a USD account. You apply the conversion whenever you create or update a campaign or ad group through the Ads API, since budgets, spend limits, and bids all travel as micros. To go from currency to micros, multiply your intended amount by a million; to display a stored value, divide by a million. The worth of a micro changes with the account currency, because the ratio is fixed to whatever currency the account is billed in, whether dollars or euros. You never set a budget in single micros in practice, since even the smallest real budgets run into the millions of micros. The rule to remember stays constant: a million micros is always one unit of your currency, so the only variable is which currency your account uses.

Why do budget micros translate to different amounts across different ad accounts?

Budget micros translate to different currency amounts because the unit is pegged to each ad account's billing currency instead of a single global currency. The multiplier never changes, since a million micros always equals one unit of the account currency. What varies is the unit itself: 30,000,000 micros is 30 dollars in a USD account and 30 euros in a EUR account, and those are different sums of money. Minimum budgets vary the same way, because OpenAI sets market-specific minimums in each local currency instead of converting one figure. So the same micros integer can represent more or less real spend depending on where the account is based and how it is billed. When you manage campaigns across markets, you cannot assume one micros value means the same spend everywhere. You convert against each account's own currency, confirm the local minimum, and treat the integer as currency-specific instead of universal.

Can I change my budget by editing budget micros directly in the API?

Yes. You control a campaign's budget by sending a new micros value to the Ads API, so editing the integer is exactly how you raise or lower spend programmatically. To increase a lifetime budget, send a larger lifetime_spend_limit_micros; to reduce it, send a smaller one, within the limits OpenAI enforces. One constraint is firm: you cannot cut a lifetime budget below what the campaign has already spent, so the floor moves up as delivery continues. The value must also clear the documented minimum for the budget type, or the update is rejected. Beyond those rules, the micros field is fully under your control, and a correct conversion is the only thing standing between your intended amount and what the API records. Always fetch the campaign back after an update and divide the returned micros by a million, so you can confirm the new limit matches the currency amount you meant to set.

What counts as a correct budget micros value before I launch a campaign?

A correct budget micros value is one that equals your intended currency amount times a million and clears the minimum for that budget type and market. The simplest check is reversibility: divide the integer by a million and confirm you get back the exact amount you meant to spend. OpenAI enforces market-specific minimums in local currency, so a daily or lifetime value below your market's floor will not launch. Good practice adds a sanity check on magnitude: a figure in the low thousands of micros is almost always an error, since that reads as a fraction of a cent. For a budget you set often, store the known-good micros value and compare new entries against it. A value that converts cleanly back to a sensible currency amount, sits above the market minimum, and matches the plan you approved is what good looks like before you set the campaign live.