broadcastwell-com Sources API

The Sources API from broadcastwell-com — 1 operation(s) for sources.

Operations 1

GET /accounts/{account}/runs/{run}/sources Sources #

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-sources-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-sources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Broadcastwell Sources 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: Sources
paths:
  /accounts/{account}/runs/{run}/sources:
    get:
      operationId: listSources
      summary: Sources
      description: Every page cited in scheduled answers, with times cited, engines and questions.
      tags:
      - Sources
      parameters:
      - name: account
        in: path
        required: true
        description: me, your account id, or sample for the fictional Kalvenor sample. Any other id answers 404.
        schema:
          type: string
          maxLength: 200
          examples:
          - sample
          - me
      - name: run
        in: path
        required: true
        description: A run id from the runs list.
        schema:
          type: string
          pattern: ^[A-Za-z0-9._:-]{1,200}$
          examples:
          - baseline-kalvenor-v11
      - name: limit
        in: query
        description: Items per page, 1 to 100. Default 25.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 25
      - name: cursor
        in: query
        description: The next_cursor from the previous page.
        schema:
          type: string
          maxLength: 40
      responses:
        '200':
          description: A page of sources
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - pagination
                properties:
                  sample:
                    type: boolean
                    description: Present and true on every sample response.
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Source'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '304':
          description: Not modified. The If-None-Match value matched the current ETag.
        '400':
          $ref: '#/components/responses/Problem400'
        '401':
          $ref: '#/components/responses/Problem401'
        '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
    ETag:
      description: Strong entity tag. Send it back as If-None-Match.
      schema:
        type: string
  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'
    Problem401:
      description: The key is missing, invalid or revoked.
      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'
    Problem400:
      description: A parameter is invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  schemas:
    Source:
      type: object
      properties:
        url:
          type: string
        domain:
          type: string
        own_domain:
          type: boolean
        times_cited:
          type: integer
        engines:
          type: array
        question_ids:
          type: array
          items:
            type: integer
    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
    Pagination:
      type: object
      required:
      - limit
      - next_cursor
      - total
      properties:
        limit:
          type: integer
        next_cursor:
          type:
          - string
          - 'null'
        total:
          type: integer
  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.