Northbeam Spend API

The Spend API from Northbeam — 1 operation(s) for spend.

Operations 3

GET /spend List spend records
POST /spend Upsert one or multiple spend records
DELETE /spend Delete a spend record

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/northbeam-spend-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

northbeam-spend-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: V1 Spend API
  termsOfService: https://www.northbeam.io/terms
  version: 1.0.0
servers:
- url: https://api.northbeam.io/v1
  description: Production Endpoint
- url: https://api-uat.northbeam.io/v1
  description: User Acceptance Testing (UAT), Production Equivalent (provided for Customer Testing ONLY, spend submitted here does not get used in attribution)
security:
- api_key: []
  client_id: []
tags:
- name: Spend
paths:
  /spend:
    get:
      summary: List spend records
      parameters:
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          format: date
          description: The date of spend entries to search for - provide this OR the Date Start/End ONLY
          examples:
          - '1970-01-01'
        name: date
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          format: date
          description: The date range of a spend entries to search for - provide this or and a end date OR a date ONLY
          examples:
          - '1970-01-01T00:00:00Z'
        name: date_start
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          format: date
          description: The date range of a spend entries to search for - provide this or and a start date OR a date ONLY
          examples:
          - '1970-01-01T00:00:00Z'
        name: date_end
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          description: The Ad Platform Account ID to search for, required
          examples:
          - '12345'
        name: platform_account_id
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          description: The Ad Platform's Campaign ID to search for
          examples:
          - '12345'
        name: campaign_id
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          description: The Ad Platform's Adset ID to search for
          examples:
          - '12345'
        name: adset_id
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          description: The Ad Platform's Ad ID to search for
          examples:
          - '12345'
        name: ad_id
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: integer
          minimum: 1
          description: If Paginating - supply page number
          default: 1
          examples:
          - 1
        name: page
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: integer
          description: Results per page - Maximum of 1000 results per page
          default: 1000
          examples:
          - 1000
        name: page_size
        in: query
        allowEmptyValue: false
        allowReserved: false
      responses:
        '200':
          description: List of spend records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendListOutputPayload'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        '422':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        4XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        5XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
      deprecated: false
      tags:
      - Spend
    post:
      summary: Upsert one or multiple spend records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendUpsertInputPayload'
        required: true
      responses:
        '201':
          description: The spend records were successfully upserted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendDefaultOutputPayload'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        '422':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        4XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        5XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
      deprecated: false
      tags:
      - Spend
    delete:
      summary: Delete a spend record
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendDeleteInputPayload'
        required: true
      responses:
        '200':
          description: The spend record was successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendDefaultOutputPayload'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        '422':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        4XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
        5XX:
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
      deprecated: false
      tags:
      - Spend
components:
  schemas:
    SpendDeleteInput:
      properties:
        date:
          type: string
          format: date
          title: Date
          description: The date of spend entry to delete, required
          examples:
          - '1970-01-01'
        platform_account_id:
          type: string
          title: Platform Account Id
          description: The Ad Platform Account ID to delete, required
          default: ''
          examples:
          - '12345'
        campaign_id:
          type: string
          title: Campaign Id
          description: The Ad Platform's Campaign ID to delete, required
          examples:
          - '12345'
        adset_id:
          type: string
          title: Adset Id
          description: The Ad Platform's Adset ID to delete, defaults to '' if empty
          default: ''
          examples:
          - '12345'
        ad_id:
          type: string
          title: Ad Id
          description: The Ad Platform's Ad ID to delete, defaults to '' if empty
          default: ''
          examples:
          - '12345'
      type: object
      required:
      - date
      - campaign_id
      title: Deletion Parameters
    SpendUpsertInput:
      properties:
        date:
          type: string
          format: date
          title: Date
          description: The date of spend entry to upsert, required
          examples:
          - '1970-01-01'
        platform_account_id:
          type: string
          title: Platform Account Id
          description: The Ad Platform Account ID to upsert, used for segregating ad objects per ad platform account
          default: ''
          examples:
          - '12345'
        platform_name:
          type: string
          title: Platform Name
          description: The Ad Platform Name to upsert, required
          examples:
          - Facebook
        campaign_id:
          type: string
          title: Campaign Id
          description: The Ad Platform's Campaign ID (utm_campaign, if known) to upsert, required
          examples:
          - '12345'
        campaign_name:
          type: string
          title: Campaign Name
          description: The Ad Platform Campaign Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `campaign_id`
          examples:
          - Banana Festival Awareness Campaign
        adset_id:
          type: string
          title: Adset Id
          description: The Ad Platform's Adset ID (utm_term, if known) to upsert, defaults to '' if empty (not all platforms support adsets)
          default: ''
          examples:
          - '12345'
        adset_name:
          type: string
          title: Adset Name
          description: The Ad Platform Adset Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `adset_id` - defaults to '' if empty
          default: ''
          examples:
          - Banana Adset
        ad_id:
          type: string
          title: Ad Id
          description: The Ad Platform's Ad ID (utm_content, if known) to upsert, defaults to '' if empty (not all platforms support ads)
          default: ''
          examples:
          - '12345'
        ad_name:
          type: string
          title: Ad Name
          description: The Ad Platform Ad Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `adset_id` - defaults to '' if empty
          default: ''
          examples:
          - Banana Ad
        spend:
          type: number
          minimum: 0
          title: Spend
          description: Amount (in currency) spent on ad object to upsert, defaults to 0 if empty
          examples:
          - '123'
        spend_currency:
          type: string
          maxLength: 3
          minLength: 3
          title: Spend Currency
          description: The Currency of the Spend per ISO 4217 to upsert, required
          examples:
          - USD
          - CAD
        impressions:
          type: number
          minimum: 0
          title: Impressions
          description: The amount of impressions the ad object received on a given date, defaults to 0 if empty
          default: 0
          examples:
          - 299
        clicks:
          type: number
          minimum: 0
          title: Clicks
          description: The amount of clicks the ad object received on a given date, defaults to 0 if empty
          default: 0
          examples:
          - 0
      type: object
      required:
      - date
      - platform_name
      - campaign_id
      - campaign_name
      - spend
      - spend_currency
      title: Spend Entry
    SpendDefaultOutputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendDefaultOutput'
          type: array
          title: Data
      type: object
      required:
      - data
      title: Spend Entries Return
    SpendDefaultOutput:
      properties:
        date:
          type: string
          format: date
          title: Date
          description: The date of spend entry to upsert, required
          examples:
          - '1970-01-01'
        platform_account_id:
          type: string
          title: Platform Account Id
          description: The Ad Platform Account ID to upsert, used for segregating ad objects per ad platform account
          default: ''
          examples:
          - '12345'
        platform_name:
          type: string
          title: Platform Name
          description: The Ad Platform Name to upsert, required
          examples:
          - Facebook
        campaign_id:
          type: string
          title: Campaign Id
          description: The Ad Platform's Campaign ID (utm_campaign, if known) to upsert, required
          examples:
          - '12345'
        campaign_name:
          type: string
          title: Campaign Name
          description: The Ad Platform Campaign Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `campaign_id`
          examples:
          - Banana Festival Awareness Campaign
        adset_id:
          type: string
          title: Adset Id
          description: The Ad Platform's Adset ID (utm_term, if known) to upsert, defaults to '' if empty (not all platforms support adsets)
          default: ''
          examples:
          - '12345'
        adset_name:
          type: string
          title: Adset Name
          description: The Ad Platform Adset Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `adset_id` - defaults to '' if empty
          default: ''
          examples:
          - Banana Adset
        ad_id:
          type: string
          title: Ad Id
          description: The Ad Platform's Ad ID (utm_content, if known) to upsert, defaults to '' if empty (not all platforms support ads)
          default: ''
          examples:
          - '12345'
        ad_name:
          type: string
          title: Ad Name
          description: The Ad Platform Ad Name to upsert - will be as Ad Name in the Northbeam Dashboard - can be the same as `adset_id` - defaults to '' if empty
          default: ''
          examples:
          - Banana Ad
        spend:
          type: number
          minimum: 0
          title: Spend
          description: Amount (in currency) spent on ad object to upsert, defaults to 0 if empty
          examples:
          - '123'
        spend_currency:
          type: string
          maxLength: 3
          minLength: 3
          title: Spend Currency
          description: The Currency of the Spend per ISO 4217 to upsert, required
          examples:
          - USD
          - CAD
        impressions:
          type: number
          minimum: 0
          title: Impressions
          description: The amount of impressions the ad object received on a given date, defaults to 0 if empty
          default: 0
          examples:
          - 299
        clicks:
          type: number
          minimum: 0
          title: Clicks
          description: The amount of clicks the ad object received on a given date, defaults to 0 if empty
          default: 0
          examples:
          - 0
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - date
      - platform_name
      - campaign_id
      - campaign_name
      - spend
      - spend_currency
      - created_at
      - updated_at
      title: Spend Entry Return
    RequestError:
      properties:
        errors:
          anyOf:
          - items:
              $ref: '#/components/schemas/ErrorLoc'
            type: array
          - type: 'null'
          title: Errors
        message:
          type: string
          title: Message
        request_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Request Id
      type: object
      required:
      - message
      title: RequestError
    SpendDeleteInputPayload:
      properties:
        data:
          $ref: '#/components/schemas/SpendDeleteInput'
      type: object
      required:
      - data
      title: Deletion Parameters Object
    SpendUpsertInputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendUpsertInput'
          type: array
          title: Data
      type: object
      required:
      - data
      title: Spend Entries
    ErrorLoc:
      properties:
        loc:
          type: string
          title: Loc
        msg:
          type: string
          title: Msg
        type:
          type: string
          title: Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ErrorLoc
    SpendListOutputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendDefaultOutput'
          type: array
          title: Data
        page:
          type: integer
          title: Page
        page_size:
          type: integer
          title: Page Size
        total_pages:
          type: integer
          title: Total Pages
        total_count:
          type: integer
          title: Total Count
      type: object
      required:
      - data
      - page
      - page_size
      - total_pages
      - total_count
      title: Spend Entries Return Metadata
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
    client_id:
      type: apiKey
      name: Data-Client-ID
      in: header