Outbrain Budgets API

Budget management

Business capability
Marketing Operations Management BC-400.50

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /budgets/{id} Retrieve a budget with remaining spend details · Retrieve a single Budget #
Ask an LLM
“How much is left unspent on one of my Outbrain budgets?”
“Can I see whether a budget is shared between several campaigns?”
Tell an agent
Show the amount remaining and pacing for budget {id}.
Check if budget {id} is shared across campaigns.
PUT /budgets/{id} Change a budget's amount or dates · Update an existing Budget #
Ask an LLM
“How do I raise the amount on an existing budget?”
“Can I move a budget's start date after it has already started spending?”
Tell an agent
Increase the amount of budget {id} to 5000.
Change the end date of budget {id} to the end of next month.
DELETE /budgets/{id} Delete an unused, detached budget · Delete an existing Budget #
Ask an LLM
“Can I delete a budget that is still attached to a campaign?”
“How do I remove a budget that never spent anything?”
Tell an agent destructive · confirm first
Delete budget {id}.
Remove the detached, unspent budget {id} from my account.
GET /marketers/{id}/budgets List a marketer's budgets, optionally detached only · List Budgets for a Marketer #
Ask an LLM
“Which budgets aren't attached to any campaign yet?”
“How many budgets does my marketer account have in total?”
Tell an agent
List only the detached budgets for marketer {id}.
Count all budgets under marketer {id}, including detached ones if {detachedOnly} is false.
POST /marketers/{id}/budgets Create a budget that can run forever or end · Create a Budget for a Marketer #
Ask an LLM
“Can I create a budget with no end date so it runs forever?”
“Does a new budget name have to be unique for the marketer?”
Tell an agent
Create a monthly budget called Q1 Spend for marketer {id} starting January 15.
Set up an open-ended daily budget of 100 under marketer {id} with runForever on.
GET /marketers/{marketerId}/budgets List all budgets belonging to a marketer · List Budgets For A Marketer #
Ask an LLM
“What budgets belong to my marketer account?”
“Where do I see every budget a marketer owns in one list?”
Tell an agent
List all budgets for marketer {marketerId}.
Give me the names and amounts of every budget owned by marketer {marketerId}.
POST /marketers/{marketerId}/budgets Create a shared budget with a currency · Create A Budget #
Ask an LLM
“How do I create a shared budget that several campaigns can draw from?”
“Can I set the currency and budget type when creating a shared budget?”
Tell an agent
Create a shared {type} budget named {name} of {amount} for marketer {marketerId}.
Make a {amount} {currency} shared budget called {name}, type {type}, from {startDate} to {endDate} for marketer {marketerId}.
GET /budgets/{budgetId} Look up a budget by its budget ID · Get A Budget By Id #
Ask an LLM
“How do I fetch a budget when I only have its budgetId?”
“What does a budget record look like when I look it up by identifier?”
Tell an agent
Look up budget {budgetId}.
Fetch the budget record with identifier {budgetId}.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/outbrain:outbrain-budgets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

outbrain-budgets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Outbrain Budgets API
  version: '0.1'
  contact:
    name: Outbrain Developer Center
    url: https://developer.outbrain.com
  description: 'Operations tagged Budgets across 2 of this provider''s published API definitions: outbrain-amplify-api-full-openapi.yml, outbrain-amplify-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.outbrain.com/amplify/v0.1
  description: Production Server
security:
- OBTokenAuth: []
tags:
- name: Budgets
  description: 'Budget objects represent an amount of money to be spent via the Amplify platform. A single Budget may be shared among Campaigns (also known as a "shared budget"), though it is more common to have just one Campaign per Budget.


    For convenience, Budget objects are often embedded inside the Campaign objects.'
paths:
  /budgets/{id}:
    get:
      operationId: getBudgetsId
      summary: Retrieve a single Budget
      description: 'The Budget object has the following attributes:


        Property

        Type

        Semantic

        Example


        id

        String

        The id of this Budget. read-only

        "00f4b02153ee75f3c9dc4fc128ab041962"


        name

        String

        The name of this Budget.

        "First quarter budget"


        shared

        Boolean

        Whether the Budget is shared between Campaigns, provided for convenience based on the number of Campaigns associated to this Budget. read-only

        true


        amount

        Money

        The monetary amount of this Budget

        2000.00


        currency

        String

        The currency denomination applied to the budget amount read-only

        "USD"


        amountRemaining

        Money

        The unspent monetary amount remaining on this Budget. read-only

        150.00


        amountSpent

        Money

        The spent monetary amount of this Budget. read-only

        1850.00


        creationTime

        Time

        The time when this Budget was created. read-only

        "2013-01-14 07:19:16"


        lastModified

        Time

        The last modification date of this Budget. read-only

        "2014-01-15 12:24:01"


        startDate

        Date

        The date this Budget is scheduled to begin spending.

        "2014-01-15"


        endDate

        Date

        The date this Budget is scheduled to stop spending. If runForever is true this will not be used.

        "2014-01-17"


        runForever

        Boolean

        Designates whether the budged has an end date In case of true, ''endDate'' attribute will not be part of the Budgets'' attributes.

        true


        type

        Budget Type

        Controls on which period the Budget refreshes

        "MONTHLY"


        pacing

        Pacing Type

        Controls how fast the Budget will be spent

        "AUTOMATIC"


        dailyTarget

        Money

        The maximum amount of spend that is allowed per day. Relevant for DAILY_TARGET pacing.

        100.00


        maximumAmount

        Money

        The maximum amount allowed if defined read-only

        100.00'
      tags:
      - Budgets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: the Budget id
        example: 00f4b02153ee75f3c9dc4fc128ab041962
      responses:
        '200':
          description: JSON representation of Budget Resource
          content:
            application/json:
              schema:
                type: object
              example:
                id: 00f4b02153ee75f3c9dc4fc128ab041962
                lastModified: '2013-10-16 12:24:01'
                name: Boost 'ABC' Brand budget
                shared: true
                amount: 2000.0
                amountRemaining: 100.0
                amountSpent: 1850.0
                creationTime: '2013-06-03 22:14:41'
                startDate: '2013-09-16'
                runForever: true
                type: MONTHLY
                pacing: AUTOMATIC
                dailyTarget: 100.0
                maximumAmount: 100.0
                currency: USD
          headers:
            AMPLIFY-REQUEST-ID:
              description: Request correlation / rate-limit signal
              schema:
                type: string
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      operationId: updateBudgetsId
      summary: Update an existing Budget
      description: 'To update a Budget send a JSON with the updated value for one or more of the updatable Budget attributes.


        All attribute values left unset in this PUT will remain unchanged.


        Only the following Budget properties are updatable:


        -

        amount - The amount must be lower than the maximumAmount.

        A budget''s minimum amount limit is determined by its type:


        DAILY - more than 25


        MONTHLY - more than 750


        CAMPAIGN - The campaign''s days amount multiplied by 25


        -

        startDate - The start date cannot be in the past. Start date cannot be modified after budget has started (ie: start date already passed)


        -

        endDate - The end date must be after the start date, and cannot be in the past.


        -

        runForever - If set to ''true'', the ''endDate'' attribute should not be included as it is meaningless.

        The current ''endDate'' attribute of the Budget (if exists) will be discarded.

        In case of passing ''false'', ''endDate'' attribute must be also passed.


        -

        dailyTarget - The maximum amount of spend that is allowed per day. Relevant only if DAILY_TARGET pacing is used.


        -

        type - Allows to move between different budget types.


        -

        pacing - Allows to move between different pacing types (dailyTarget paramenter have to be set when moving to DAILY_TARGET pacing).'
      tags:
      - Budgets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: the Budget id
        example: 00f4b02153ee75f3c9dc4fc128ab041962
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              amount: 5000.0
              endDate: '2013-11-16'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                id: 00f4b02153ee75f3c9dc4fc128ab041962
                name: Boost 'ABC' Brand budget
                shared: false
                amount: 100.0
                currency: USD
                amountRemaining: 100.0
                amountSpent: 0.0
                creationTime: '2013-10-16 12:24:01'
                lastModified: '2013-10-16 12:24:01'
                startDate: '2013-11-16'
                runForever: false
                type: CAMPAIGN
                pacing: DAILY_TARGET
                dailyTarget: 200.0
                maximumAmount: 200.0
          headers:
            AMPLIFY-REQUEST-ID:
              description: Request correlation / rate-limit signal
              schema:
                type: string
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteBudgetsId
      summary: Delete an existing Budget
      description: Only a detached budget (a budget that is not attached to any campaign) and no traffic was made on it, can be deleted.
      tags:
      - Budgets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: the Budget id
        example: 00f4b02153ee75f3c9dc4fc128ab041962
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    servers:
    - url: https://api.outbrain.com/amplify/v0.1
      description: Production Server
  /marketers/{id}/budgets:
    get:
      operationId: getMarketersIdBudgets
      summary: List Budgets for a Marketer
      description: 'Retrieve a collection of all Budgets for the specified Marketer.


        The Budgets Collection resource has the following attributes:


        -

        count - Number of Budgets found for this Marketer


        -

        budgets - Array of budget objects'
      tags:
      - Budgets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: the id of the Marketer
        example: 00f4b02153ee75f3c9dc4fc128ab041962
      - name: detachedOnly
        in: query
        required: false
        schema:
          type: boolean
        description: return only budgets that are not attached to any campaign
        example: 'true'
      responses:
        '200':
          description: JSON representation of all Budgets associated with Marketer {id}
          content:
            application/json:
              schema:
                type: object
              example:
                count: 1
                budgets:
                - id: 00f4b02153ee75f3c9dc4fc128ab041962
                  name: Boost 'ABC' Brand budget
                  shared: false
                  amount: 100.0
                  currency: USD
                  amountRemaining: 100.0
                  amountSpent: 0.0
                  creationTime: '2013-10-16 12:24:01'
                  lastModified: '2013-10-16 12:24:01'
                  startDate: '2013-11-16'
                  runForever: false
                  type: CAMPAIGN
                  pacing: DAILY_TARGET
                  dailyTarget: 200.0
                  maximumAmount: 200.0
          headers:
            AMPLIFY-REQUEST-ID:
              description: Request correlation / rate-limit signal
              schema:
                type: string
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createMarketersIdBudgets
      summary: Create a Budget for a Marketer
      description: 'To create a new budget use the following properties


        Property

        Type

        Semantic

        Example


        name

        String

        The name of this Budget. Must be unique per each marketer. Maximum length is 100 characters.

        "First quarter budget"


        amount

        Money

        The monetary amount of this Budget

        2000.00


        startDate

        Date

        The date this Budget is scheduled to begin spending.

        "2014-01-15"


        endDate

        Date

        The date this Budget is scheduled to stop spending. If runForever is true this will not be used.

        "2014-01-17"


        runForever

        Boolean

        Designates whether the budget has an end date. In case of true, endDate attribute will be ignored.

        true


        type

        Budget Type

        Controls on which period the Budget refreshes

        "MONTHLY"


        pacing

        Pacing Type

        Controls how fast the Budget will be spent. For budget type DAILY only SPEND_ASAP pacing is supported.

        "AUTOMATIC"


        dailyTarget

        Money

        The maximum amount of spend that is allowed per day. Mandatory only in case the pacing is set to DAILY_TARGET

        100.00'
      tags:
      - Budgets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: the id of the Marketer
        example: 00f4b02153ee75f3c9dc4fc128ab041962
      - name: detachedOnly
        in: query
        required: false
        schema:
          type: boolean
        description: return only budgets that are not attached to any campaign
        example: 'true'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: new budget
              amount: 100
              startDate: '2014-06-26'
              endDate: '2015-07-26'
              pacing: SPEND_ASAP
              type: CAMPAIGN
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                id: 006b09dce4c948774439b4c1ee6a05d0aa
                name: new budget
                shared: false
                amount: 100.0
                currency: CAD
                amountRemaining: 100.0
                amountSpent: 0.0
                creationTime: '2014-12-22 08:19:18'
                lastModified: '2014-12-22 08:19:18'
                startDate: '2015-06-26'
                endDate: '2014-07-26'
                runForever: false
                type: CAMPAIGN
                pacing: SPEND_ASAP
          headers:
            AMPLIFY-REQUEST-ID:
              description: Request correlation / rate-limit signal
              schema:
                type: string
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    servers:
    - url: https://api.outbrain.com/amplify/v0.1
      description: Production Server
  /marketers/{marketerId}/budgets:
    get:
      summary: List Budgets For A Marketer
      description: Retrieve all budgets belonging to a marketer.
      operationId: listBudgets
      tags:
      - Budgets
      parameters:
      - $ref: '#/components/parameters/MarketerIdPath'
      responses:
        '200':
          description: A list of budgets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetList'
    post:
      summary: Create A Budget
      description: Create a new shared budget for the marketer.
      operationId: createBudget
      tags:
      - Budgets
      parameters:
      - $ref: '#/components/parameters/MarketerIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetRequest'
      responses:
        '201':
          description: Budget created.
    servers:
    - url: https://api.outbrain.com/amplify/v0.1
      description: Production Server
  /budgets/{budgetId}:
    get:
      summary: Get A Budget By Id
      description: Retrieve a single budget by its identifier.
      operationId: getBudget
      tags:
      - Budgets
      parameters:
      - $ref: '#/components/parameters/BudgetIdPath'
      responses:
        '200':
          description: A budget resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Budget'
    servers:
    - url: https://api.outbrain.com/amplify/v0.1
      description: Production Server
components:
  schemas:
    Error:
      type: object
      description: Error envelope returned on 400/401/403/404/429 responses.
      properties:
        moreInfo:
          type: string
          description: Short machine-readable hint identifying the failing operation.
        errorMessage:
          type: string
          description: Human-readable error message.
      examples:
      - moreInfo: get-budget
        errorMessage: access denied
    BudgetRequest:
      type: object
      required:
      - name
      - amount
      - type
      properties:
        name:
          type: string
        amount:
          type: number
        currency:
          type: string
        type:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
    Budget:
      type: object
      properties:
        id:
          type: string
        marketerId:
          type: string
        name:
          type: string
        amount:
          type: number
        currency:
          type: string
        type:
          type: string
          enum:
          - daily
          - monthly
          - total
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
    BudgetList:
      type: object
      properties:
        count:
          type: integer
        budgets:
          type: array
          items:
            $ref: '#/components/schemas/Budget'
  parameters:
    MarketerIdPath:
      name: marketerId
      in: path
      required: true
      schema:
        type: string
      description: Marketer (customer account) identifier.
    BudgetIdPath:
      name: budgetId
      in: path
      required: true
      schema:
        type: string
  securitySchemes:
    OBTokenAuth:
      type: apiKey
      in: header
      name: OB-TOKEN-V1
      description: Token obtained from GET /login (HTTP Basic) or from https://my.outbrain.com/create-token. Valid for 30 days.
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic credentials used only on GET /login to obtain an OB-TOKEN-V1 token.
x-refined-from:
- outbrain-amplify-api-full-openapi.yml
- outbrain-amplify-api-openapi.yml