Northbeam Spend Hourly API

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

Operations 3

GET /spend_hourly List spend records
POST /spend_hourly Upsert one or multiple hourly spend records
DELETE /spend_hourly 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-hourly-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-hourly-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Spend - V1 Spend Hourly 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 Hourly
paths:
  /spend_hourly:
    get:
      summary: List spend records
      parameters:
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          format: date-time
          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:00-0000
        name: hour_start_iso_begin
        in: query
        allowEmptyValue: false
        allowReserved: false
      - required: false
        deprecated: false
        style: form
        explode: false
        schema:
          type: string
          format: date-time
          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-01T01:00:00-0000
        name: hour_start_iso_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/SpendHourlyListOutputPayload'
        '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 Hourly
    post:
      summary: Upsert one or multiple hourly spend records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendHourlyUpsertInputPayload'
        required: true
      responses:
        '201':
          description: The hourly spend records were successfully upserted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendHourlyDefaultOutputPayload'
        '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 Hourly
    delete:
      summary: Delete a spend record
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendHourlyDeleteInputPayload'
        required: true
      responses:
        '200':
          description: The spend record was successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendHourlyDefaultOutputPayload'
        '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 Hourly
components:
  schemas:
    SpendHourlyDeleteInputPayload:
      properties:
        data:
          $ref: '#/components/schemas/SpendHourlyDeleteInput'
      type: object
      required:
      - data
      title: Deletion Parameters Object
    SpendHourlyDefaultOutputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendHourlyDefaultOutput'
          type: array
          title: Data
      type: object
      required:
      - data
      title: Spend Entries Return
    SpendHourlyUpsertInput:
      properties:
        hour_start_iso:
          type: string
          format: date-time
          title: Hour Start Iso
          description: The date-time of spend entry to upsert in UTC, required
          examples:
          - 1970-01-01T00:00:00-0000
        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.5
        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:
      - hour_start_iso
      - platform_name
      - campaign_id
      - campaign_name
      - spend
      - spend_currency
      title: Spend Hourly Entry
    SpendHourlyListOutputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendHourlyDefaultOutput'
          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
    SpendHourlyUpsertInputPayload:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SpendHourlyUpsertInput'
          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
    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
    SpendHourlyDeleteInput:
      properties:
        hour_start_iso:
          type: string
          format: date-time
          title: Hour Start Iso
          description: The date of spend entry to delete, required
          examples:
          - 1970-01-01T00:00:00-0000
        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:
      - hour_start_iso
      - campaign_id
      title: Spend Hourly Deletion Parameters
    SpendHourlyDefaultOutput:
      properties:
        hour_start_iso:
          type: string
          format: date-time
          title: Hour Start Iso
          description: The date-time of spend entry to upsert in UTC, required
          examples:
          - 1970-01-01T00:00:00-0000
        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.5
        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:
      - hour_start_iso
      - platform_name
      - campaign_id
      - campaign_name
      - spend
      - spend_currency
      - created_at
      - updated_at
      title: Spend Entry Return
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
    client_id:
      type: apiKey
      name: Data-Client-ID
      in: header