Outbrain Budgets API

Budget management

Operations 8

GET /budgets/{id} Retrieve a single Budget #
PUT /budgets/{id} Update an existing Budget #
DELETE /budgets/{id} Delete an existing Budget #
GET /marketers/{id}/budgets List Budgets for a Marketer #
POST /marketers/{id}/budgets Create a Budget for a Marketer #
GET /marketers/{marketerId}/budgets List Budgets For A Marketer #
POST /marketers/{marketerId}/budgets Create A Budget #
GET /budgets/{budgetId} Get A Budget By Id #

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-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 email required.

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-budgets-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.\n\nAll attribute values left unset in this PUT will remain unchanged.\n\nOnly the following Budget properties are updatable:\n\n- \namount - The amount must be lower than the maximumAmount.\nA budget's minimum amount limit is determined by its type:\n\nDAILY - more than 25\n\nMONTHLY - more than 750\n\nCAMPAIGN - The campaign's days amount multiplied by 25\n\n- \nstartDate - The start date cannot be in the past. Start date cannot be modified after budget has started (ie: start date already passed)\n\n- \nendDate - The end date must be after the start date, and cannot be in the past.\n\n- \nrunForever - If set to 'true', the 'endDate' attribute should not be included as it is meaningless.\nThe current 'endDate' attribute of the Budget (if exists) will be discarded.\nIn case of passing 'false', 'endDate' attribute must be also passed.\n\n- \ndailyTarget - The maximum amount of spend that is allowed per day. Relevant only if DAILY_TARGET pacing is used.\n\n- \ntype - Allows to move between different budget types.\n\n- \npacing - 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.\n\nThe Budgets Collection resource has the following attributes:\n\n- \ncount - Number of Budgets found for this Marketer\n\n- \nbudgets - 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
    BudgetList:
      type: object
      properties:
        count:
          type: integer
        budgets:
          type: array
          items:
            $ref: '#/components/schemas/Budget'
    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
  parameters:
    BudgetIdPath:
      name: budgetId
      in: path
      required: true
      schema:
        type: string
    MarketerIdPath:
      name: marketerId
      in: path
      required: true
      schema:
        type: string
      description: Marketer (customer account) identifier.
  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-budgets-api-openapi.yml