broadcastwell-com Public API

The Public API from broadcastwell-com — 4 operation(s) for public.

Operations 4

GET /index/categories Index categories #
GET /index/categories/{category} Who AI names in one category #
GET /public-fix Public Fix runs #
GET /public-fix/{slug} One Public Fix run #

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/broadcastwell-com:broadcastwell-com-public-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

broadcastwell-com-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Broadcastwell Public API
  version: 1.0.0
  summary: Read the answers five AI engines gave to your buyers' questions, with every receipt.
  description: 'Read only. Every rate is a five field object: pct, low, high, interval and base, where low and high are the 95% Wilson interval and base states the count. Every headline figure counts scheduled runs only. Adaptive runs are labelled and never pooled. Errors are problem details with a next step. Version 1 changes only by addition.


    The public demo key bwp_demo_kalvenor_sample reads the fictional Kalvenor sample at /accounts/sample.


    The separate commercial Agent Test is run by ChatGPT Work with Cloud browser, two runs per task at least two hours apart. Its ten task results and 20 session receipts are delivered through the owning account after human review; they are not pooled with the five-engine measurements described by this API.'
  contact:
    name: Broadcastwell
    email: hello@broadcastwell.com
    url: https://broadcastwell.com
  termsOfService: https://broadcastwell.com/terms
servers:
- url: https://app.broadcastwell.com/api/v1
security:
- bearer: []
tags:
- name: Public
paths:
  /index/categories:
    get:
      operationId: listIndexCategories
      summary: Index categories
      description: The 14 categories of the public Absence Index release 2026-09 with their vendor counts, 10 questions and 150 planned answers each, and the address of each category page. The same read as list_categories on the public connector. No key needed; 60 requests a minute and 1,000 a day per address.
      tags:
      - Public
      security: []
      responses:
        '200':
          description: The categories
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Access-Control-Allow-Origin:
              schema:
                type: string
                const: '*'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  sample:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/IndexCategoryList'
        '404':
          $ref: '#/components/responses/Problem404'
        '429':
          $ref: '#/components/responses/Problem429'
  /index/categories/{category}:
    get:
      operationId: getIndexCategory
      x-example-path: /index/categories/crm
      summary: Who AI names in one category
      description: 'One published category record: every vendor named and cited with counts, base and 95% interval, per engine and per question, one receipt for each named vendor (a published answer that names it, by record id), the most cited source domains and the published files behind every number. Accepts the category id, slug or name. Counts are observed answers on stated dates, not a ranking. No key needed.'
      tags:
      - Public
      security: []
      parameters:
      - name: category
        in: path
        required: true
        description: A category id, slug or name.
        schema:
          type: string
          maxLength: 120
        example: crm
      responses:
        '200':
          description: The category record
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Access-Control-Allow-Origin:
              schema:
                type: string
                const: '*'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  sample:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/IndexCategoryRecord'
        '404':
          $ref: '#/components/responses/Problem404'
        '429':
          $ref: '#/components/responses/Problem429'
  /public-fix:
    get:
      operationId: listPublicFixRuns
      summary: Public Fix runs
      description: 'The Public Fix runs a visitor can open, newest first: the company, its status, the day of 30 and the day 0 named count. No key needed.'
      tags:
      - Public
      security: []
      responses:
        '200':
          description: The runs
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Access-Control-Allow-Origin:
              schema:
                type: string
                const: '*'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  sample:
                    type: boolean
                  data:
                    type: object
                    required:
                    - runs
                    properties:
                      runs:
                        type: array
                        items:
                          type: object
                      page_url:
                        type: string
        '404':
          $ref: '#/components/responses/Problem404'
        '429':
          $ref: '#/components/responses/Problem429'
  /public-fix/{slug}:
    get:
      operationId: getPublicFixRun
      x-example-path: /public-fix/vantaa-tax
      summary: One Public Fix run
      description: 'One public run as its page shows it: the day 0 record with its intervals and exclusions, the verified statements, the plan and the published log. A run that is not public answers 404. No key needed.'
      tags:
      - Public
      security: []
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          pattern: ^[a-z0-9-]{2,60}$
        example: vantaa-tax
      responses:
        '200':
          description: The run
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Access-Control-Allow-Origin:
              schema:
                type: string
                const: '*'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  sample:
                    type: boolean
                  data:
                    type: object
                    required:
                    - slug
                    - company
                    - status
                    - day0
                    - log
                    - page_url
                    properties:
                      slug:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                      day:
                        type: integer
                      day0:
                        type:
                        - object
                        - 'null'
                      log:
                        type: array
                        items:
                          type: object
                      page_url:
                        type: string
        '404':
          $ref: '#/components/responses/Problem404'
        '429':
          $ref: '#/components/responses/Problem429'
components:
  headers:
    RateLimitReset:
      description: Seconds until the window resets.
      schema:
        type: integer
    RateLimitLimit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    RateLimitRemaining:
      description: Requests left in the current window.
      schema:
        type: integer
  responses:
    Problem429:
      description: Rate limit reached. Retry-After says when to retry.
      headers:
        Retry-After:
          schema:
            type: integer
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Problem404:
      description: Nothing with that id is available to this key.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  schemas:
    Problem:
      type: object
      required:
      - type
      - title
      - status
      - code
      - detail
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
        code:
          type: string
        detail:
          type: string
    IndexCategoryList:
      type: object
      required:
      - release
      - framing
      - totals
      - categories
      properties:
        release:
          type: object
        framing:
          type: string
        totals:
          type: object
          properties:
            categories:
              type: integer
            vendors:
              type: integer
        categories:
          type: array
          items:
            type: object
            required:
            - id
            - name
            - vendors
            - questions
            - answers_planned
            - page_url
            properties:
              id:
                type: string
              slug:
                type: string
              name:
                type: string
              definition:
                type: string
              vendors:
                type: integer
              questions:
                type: integer
              answers_planned:
                type: integer
              answers_captured_on:
                type:
                - string
                - 'null'
              page_url:
                type: string
    IndexCategoryRecord:
      type: object
      required:
      - release
      - framing
      - category
      - measured
      - questions
      - vendors
      - source_domains
      - receipts
      properties:
        release:
          type: object
        framing:
          type: string
        category:
          type: object
          required:
          - id
          - name
          properties:
            id:
              type: string
            slug:
              type: string
            name:
              type: string
            definition:
              type: string
            answers_captured_on:
              type:
              - string
              - 'null'
        measured:
          type: object
        questions:
          type: array
          items:
            type: object
        vendors:
          type: array
          items:
            type: object
            required:
            - name
            - named
            - cited
            - engines
            properties:
              name:
                type: string
              canonical_domain:
                type: string
              named:
                type: object
                required:
                - count
                - base
                properties:
                  count:
                    type: integer
                  base:
                    type: integer
                  rate:
                    type:
                    - number
                    - 'null'
                  lower:
                    type:
                    - number
                    - 'null'
                  upper:
                    type:
                    - number
                    - 'null'
              cited:
                type: object
                required:
                - count
                - base
                properties:
                  count:
                    type: integer
                  base:
                    type: integer
                  rate:
                    type:
                    - number
                    - 'null'
                  lower:
                    type:
                    - number
                    - 'null'
                  upper:
                    type:
                    - number
                    - 'null'
              engines:
                type: array
                items:
                  type: object
              record_url:
                type: string
        never_named:
          type: array
          items:
            type: string
        source_domains:
          type: array
          items:
            type: object
            required:
            - domain
            - answers
            - base
            properties:
              domain:
                type: string
              answers:
                type: integer
              base:
                type: integer
        receipts:
          type: object
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An account API key, or the public demo key.
x-changelog:
- date: '2026-10-15'
  version: 1.1.0
  change: 'Added POST /accounts/me/questions: a live question, by a key whose account allowed live questions when creating it. Without preview_hash it previews and spends nothing; with it, it asks and uses one credit.'
- date: '2026-10-14'
  version: 1.0.0
  change: 'Added the public tier, no key needed: GET /index/categories, GET /index/categories/{category} and GET /public-fix, GET /public-fix/{slug}, the same reads as the public connector at /mcp/public. 60 requests a minute and 1,000 a day per address.'
- date: '2026-10-07'
  version: 1.0.0
  change: 'Added read-only GET /kpi: organic evidence, sponsored presence and permissioned AI referrals with sources and dates. The demo key returns fictional SAMPLE DATA.'
- date: '2026-10-06'
  version: 1.0.0
  change: 'Agent Test: ten tasks run by ChatGPT Work with Cloud browser, two runs per task at least two hours apart. Account findings require all 20 receipts and human review. The separate Agent Gap study uses one primary run per task with a repeat sample.'
- date: '2026-09-21'
  version: 1.0.0
  change: 'Version 1 published: runs, run summary, questions, receipts, displacement, sources, fixes, history, alerts, proof and method. Account API keys, the public demo key and webhooks.'
- date: '2026-09-28'
  version: 1.0.0
  change: Added GET /index/lookup, the public Absence Index lookup by website or name. No key needed.
x-rate-limits:
  key_per_minute: 60
  key_per_day: 5000
  demo_per_address_minute: 30
  note: Defaults. The live values are returned on every response in the RateLimit headers.