Agentic News Feed API

Your story feed with per-agent filtering, sorting by date/score/watch, read state tracking, and pagination. Use `watchId` to get stories for a specific agent. Requires auth.

Operations 6

GET /alerts Get stories from your agents #
GET /alerts/count Count stories #
POST /alerts/away-banner-shown Record that the while-you-were-away banner was shown to this reader #
GET /alerts/per-watch-unread-counts Unread counts per agent #
POST /alerts/{id}/read Mark a story as read #
DELETE /alerts/{id}/read Mark a story as unread #

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/agentic-news-ai:agentic-news-ai-feed-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

agentic-news-ai-feed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Agentic News Ai Feed API
  version: 1.0.0
  contact:
    name: Agentic News
    url: https://agentic-news.ai
  description: 'Operations tagged Feed across 2 of this provider''s published API definitions: openapi.json, agentic-news-ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.agentic-news.ai
  description: Production
tags:
- name: Feed
  description: Your story feed with per-agent filtering, sorting by date/score/watch, read state tracking, and pagination. Use `watchId` to get stories for a specific agent. Requires auth.
paths:
  /alerts:
    get:
      summary: Get stories from your agents
      tags:
      - Feed
      description: Returns story matches from your monitoring agents with full cluster data, AI-generated hooks, and read state. Filter by agent using `watchId`, sort by date/score/watch name, and paginate. Only shows validated matches (accepted or borderline).
      parameters:
      - schema:
          type: string
        in: query
        name: watchId
        required: false
        description: Filter to a specific agent/watch (UUID)
      - schema:
          type: integer
          default: 50
        in: query
        name: limit
        required: false
        description: Max stories to return (1-100)
      - schema:
          type: integer
          default: 0
        in: query
        name: offset
        required: false
        description: Pagination offset
      - schema:
          type: string
          enum:
          - article-date
          - match-date
          - score
          - watch-name
          default: article-date
        in: query
        name: sortBy
        required: false
        description: Sort order
      - schema:
          type: string
          enum:
          - all
          - read
          - unread
          default: all
        in: query
        name: readFilter
        required: false
        description: Filter by read status
      - schema:
          type: integer
        in: query
        name: minThreshold
        required: false
        description: Minimum match score (0-100). Defaults to agent's configured threshold.
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
        in: query
        name: skipCount
        required: false
        description: Skip expensive count query
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        cluster:
                          type: object
                          additionalProperties: true
                          properties:
                            id:
                              type: string
                            canonical:
                              type:
                              - 'null'
                              - object
                              additionalProperties: true
                              properties:
                                id:
                                  type: string
                                title:
                                  type: string
                                url:
                                  type: string
                                publisher:
                                  type: string
                                publishedAt:
                                  type: string
                            itemCount:
                              type: integer
                            entities:
                              type: array
                              items:
                                type: string
                              description: Entity names (backward-compatible)
                            structuredEntities:
                              type: array
                              description: Structured entity data with names, types, and optional URLs
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                    - company
                                    - product
                                    - person
                                    - organization
                                    - technology
                                    - location
                                    - unknown
                                  url:
                                    type: string
                                    description: Entity website URL (when available)
                            topics:
                              type: array
                              items:
                                type: string
                            createdAt:
                              type: string
                            isRead:
                              type: boolean
                            lensStatus:
                              type: string
                            lensGeneratedAt:
                              type:
                              - 'null'
                              - string
                            lensError:
                              type:
                              - 'null'
                              - string
                            collectionIds:
                              type: array
                              items:
                                type: string
                            hook:
                              type:
                              - 'null'
                              - string
                            preview:
                              type:
                              - 'null'
                              - string
                        watch:
                          type: object
                          additionalProperties: true
                          properties:
                            id:
                              type: string
                            kind:
                              type:
                              - 'null'
                              - string
                            name:
                              type: string
                            description:
                              type:
                              - 'null'
                              - string
                        score:
                          type: number
                          description: Raw match score (0.0-1.0)
                        matchQuality:
                          type: integer
                          description: Match quality (0-100), maps to the agent's quality threshold
                        verdict:
                          type:
                          - 'null'
                          - string
                        verdictReasoning:
                          type:
                          - 'null'
                          - string
                          description: Stage-1 Devil's-Advocate verdict explanation, suitable for surfacing as 'Why I picked this' on a card.
                        digestWorthy:
                          type: boolean
                        reasons:
                          type: array
                          items:
                            type: string
                        createdAt:
                          type: string
                      additionalProperties: true
                  total:
                    type:
                    - 'null'
                    - integer
                  hasMore:
                    type: boolean
                  offset:
                    type: integer
                  limit:
                    type: integer
                  currentThreshold:
                    type: integer
                  nextTier:
                    type:
                    - 'null'
                    - object
                    additionalProperties: true
                    description: Next quality tier suggestion, or null
                  hasReadHistory:
                    type: boolean
                    description: Whether the user has any read history
                  lastReadAt:
                    type:
                    - 'null'
                    - string
                    description: ISO time of the user's most recent story read, or null
                  serverNow:
                    type: string
                    description: Server clock at response time; compare lastReadAt against THIS, never the browser's clock
                  validating:
                    type: boolean
                    description: True if matches are still being validated by LLM
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
      operationId: getAlerts
      x-operation-id-source: derived
    servers:
    - url: https://api.agentic-news.ai
      description: Production
  /alerts/count:
    get:
      summary: Count stories
      tags:
      - Feed
      description: Lightweight count of stories matching filters. Use for pagination or badge counts.
      parameters:
      - schema:
          type: string
        in: query
        name: watchId
        required: false
        description: Filter to a specific agent/watch (UUID)
      - schema:
          type: string
          enum:
          - all
          - read
          - unread
          default: all
        in: query
        name: readFilter
        required: false
      - schema:
          type: integer
        in: query
        name: minThreshold
        required: false
        description: Minimum match score (0-100)
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
      operationId: getAlertsCount
      x-operation-id-source: derived
    servers:
    - url: https://api.agentic-news.ai
      description: Production
  /alerts/away-banner-shown:
    post:
      summary: Record that the while-you-were-away banner was shown to this reader
      tags:
      - Feed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                awayHours:
                  type: integer
                  minimum: 0
                unreadCount:
                  type: integer
                  minimum: 0
              required:
              - awayHours
              additionalProperties: false
      security:
      - apiKey: []
      responses:
        '204':
          description: Default Response
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
      operationId: postAlertsAwayBannerShown
      x-operation-id-source: derived
    servers:
    - url: https://api.agentic-news.ai
      description: Production
  /alerts/per-watch-unread-counts:
    get:
      summary: Unread counts per agent
      tags:
      - Feed
      description: Returns a map of agent/watch IDs to their unread story counts. Useful for building navigation with badge counts.
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  counts:
                    type: object
                    additionalProperties:
                      type: integer
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
      operationId: getAlertsPerWatchUnreadCounts
      x-operation-id-source: derived
    servers:
    - url: https://api.agentic-news.ai
      description: Production
  /alerts/{id}/read:
    post:
      operationId: markAlertRead
      summary: Mark a story as read
      tags:
      - Feed
      description: Marks the story (cluster) behind this alert as read. The `id` is the alert/match ID returned by `GET /alerts`. Optionally pass a `source` to track where the read originated (e.g. 'api', 'mcp').
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                source:
                  type: string
                  maxLength: 32
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  alertId:
                    type: string
                  clusterId:
                    type: string
                  isRead:
                    type: boolean
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
    delete:
      operationId: markAlertUnread
      summary: Mark a story as unread
      tags:
      - Feed
      description: Clears the read state for the story behind this alert. The `id` is the alert/match ID returned by `GET /alerts`.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  alertId:
                    type: string
                  clusterId:
                    type: string
                  isRead:
                    type: boolean
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      statusCode:
                        type: integer
                      requestId:
                        type: string
                      details: {}
                    required:
                    - message
                    - code
                    - statusCode
                    - requestId
                required:
                - error
    servers:
    - url: https://api.agentic-news.ai
      description: Production
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: API Key or OAuth Access Token
      description: 'API key starting with "ak_" or OAuth access token starting with "oa_". Create API keys at agentic-news.ai/settings/api-keys or via POST /api-keys with JWT auth. Pass as: Authorization: Bearer ak_...'
externalDocs:
  description: MCP connection guide and full documentation
  url: https://agentic-news.ai/settings/api-keys
x-refined-from:
- openapi.json
- agentic-news-ai-openapi.json