itsbaba-com Sources API

Newsrooms in the wire.

Operations 3

GET /api/v1/sources List newsrooms #
GET /api/v1/sources/{key} One newsroom, with profile when computed #
GET /api/v1/sources/{key}/activity Measured newsroom behaviour #

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/itsbaba-com:itsbaba-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

itsbaba-com-sources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: baba News Sources API
  version: 1.3.0
  description: 'The Israeli press as structured JSON: stories by side, running multi-day threads, what is accelerating, coverage gaps as a first-class resource, newsroom profiles and measured behaviour, the desk register, an incremental change feed, the daily brief, search, and people. Authenticate with `Authorization: Bearer nk_live_…`. Keys carry scopes: stories, sources, brief, search, people.'
servers:
- url: https://news.itsbaba.com
  description: Production
security:
- bearer: []
tags:
- name: Sources
  description: Newsrooms in the wire.
paths:
  /api/v1/sources:
    get:
      operationId: sources_list
      summary: List newsrooms
      tags:
      - Sources
      security:
      - bearer:
        - sources
      parameters:
      - name: lang
        in: query
        description: Output language. Hebrew falls back to English per field when a row is missing.
        schema:
          type: string
          enum:
          - en
          - he
          default: en
      responses:
        '200':
          description: Success
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
          content:
            application/json:
              schema:
                type: object
              example:
                data:
                - key: ynet
                  name: Ynet
                  language: he
                  side: centre
                  lean: center
                  place: Rishon LeZion
                  profile: null
                nextCursor: null
                lang: en
                generatedAt: '2026-09-04T12:00:00.000Z'
        '304':
          description: Not modified. Same ETag and Cache-Control as 200, empty body.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
        '401':
          description: Missing or invalid API key.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '403':
          description: This key cannot access this endpoint.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '429':
          description: Rate limit or monthly quota exceeded.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '503':
          description: The News API is temporarily unavailable.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
  /api/v1/sources/{key}:
    get:
      operationId: sources_get
      summary: One newsroom, with profile when computed
      tags:
      - Sources
      security:
      - bearer:
        - sources
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
          content:
            application/json:
              schema:
                type: object
        '304':
          description: Not modified.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
        '401':
          description: Missing or invalid API key.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '403':
          description: This key cannot access this endpoint.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '404':
          description: Source not found.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '429':
          description: Rate limit or monthly quota exceeded.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '503':
          description: The News API is temporarily unavailable.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
  /api/v1/sources/{key}/activity:
    get:
      operationId: sources_activity
      summary: Measured newsroom behaviour
      description: 'What a newsroom did rather than what its profile says it is: crawl outcomes over the window, and the byline, originality, opinion, press-release and filing-lag rates the profile cron computed over its own 30-day window. successRate is over finished runs only, so a crawl still in flight never reads as a failure.'
      tags:
      - Sources
      security:
      - bearer:
        - sources
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      - name: days
        in: query
        description: Days back, 1-30. Non-integer or negative values are 400; values above 30 are clamped.
        schema:
          type: integer
          minimum: 1
          maximum: 30
          default: 7
      responses:
        '200':
          description: Success
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
          content:
            application/json:
              schema:
                type: object
              example:
                key: ynet
                windowDays: 7
                crawl:
                  windowDays: 7
                  runs: 249
                  okRuns: 246
                  errorRuns: 2
                  abortedRuns: 0
                  runningRuns: 1
                  discovered: 5120
                  scraped: 980
                  newArticles: 412
                  errors: 14
                  lastRunAt: '2026-09-04T11:50:00.000Z'
                  lastFinishedAt: '2026-09-04T11:51:00.000Z'
                  successRate: 0.9919
                behaviour:
                  windowDays: 30
                  stories: 400
                  bylineRate: 0.8
                  originalRate: 0.6
                  opinionShare: 0.1
                  pressReleaseShare: 0.05
                  medianLagMinutes: 20
                  computedAt: '2026-09-04T04:00:00.000Z'
                generatedAt: '2026-09-04T12:00:00.000Z'
        '304':
          description: Not modified.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
            ETag:
              schema:
                type: string
              description: Body hash. Send as If-None-Match on later GETs.
            Cache-Control:
              schema:
                type: string
              description: private, max-age=60 on keyed GETs.
        '400':
          description: Invalid days.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '401':
          description: Missing or invalid API key.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '403':
          description: This key cannot access this endpoint.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '404':
          description: Source not found.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '429':
          description: Rate limit or monthly quota exceeded.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed this minute. Omitted when no positive limit is known.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left this minute. Omitted when no positive limit is known.
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
        '503':
          description: The News API is temporarily unavailable.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Opaque id for this request.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                        enum:
                        - unauthorized
                        - forbidden
                        - suspended
                        - rate_limited
                        - quota_exceeded
                        - not_found
                        - bad_request
                        - internal
                        - unavailable
                      message:
                        type: string
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'News API key. Live keys are `nk_live_` plus 32 base62 characters; test keys use `nk_test_`. Scopes: stories, sources, brief, search, people.'