Clarity World Monitor API

The world-monitor API from Clarity — 4 operation(s) for world-monitor.

Operations 4

GET /api/v1/world-monitor/raw-events Get Raw Events #
GET /api/v1/world-monitor/{project_id}/events Get Project Events #
GET /api/v1/world-monitor/{project_id}/events/detailed Get Project Events Detailed #
POST /api/v1/world-monitor/config Upsert Project Config #

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/onclarity-com:onclarity-com-world-monitor-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

onclarity-com-world-monitor-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fast World Monitor API
  version: 0.1.0
tags:
- name: world-monitor
paths:
  /api/v1/world-monitor/raw-events:
    get:
      tags:
      - world-monitor
      summary: Get Raw Events
      description: 'Fetch all raw ingested World Monitor events.


        Args:

        limit: Maximum number of rows to return (1–500, default 50).

        offset: Number of rows to skip for pagination.


        Returns:

        Paginated list of raw events sorted by ``ingested_at`` DESC.


        Raises:

        HTTPException 401: Invalid or missing PSK token.

        HTTPException 503: Database is unreachable.'
      operationId: get_raw_events_api_v1_world_monitor_raw_events_get
      security:
      - HTTPBearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          description: Max rows to return
          default: 50
          title: Limit
        description: Max rows to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Rows to skip
          default: 0
          title: Offset
        description: Rows to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/world-monitor/{project_id}/events:
    get:
      tags:
      - world-monitor
      summary: Get Project Events
      description: 'Fetch processed World Monitor events for a project.


        Args:

        project_id: VoC project ID to filter by.

        limit: Maximum number of rows to return (1–500, default 50).

        offset: Number of rows to skip for pagination.


        Returns:

        Paginated list of processed events sorted by ``processed_at`` DESC.


        Raises:

        HTTPException 401: Invalid or missing PSK token.

        HTTPException 503: Database is unreachable.'
      operationId: get_project_events_api_v1_world_monitor__project_id__events_get
      security:
      - HTTPBearer: []
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          description: Max rows to return
          default: 50
          title: Limit
        description: Max rows to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Rows to skip
          default: 0
          title: Offset
        description: Rows to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/world-monitor/{project_id}/events/detailed:
    get:
      tags:
      - world-monitor
      summary: Get Project Events Detailed
      description: 'Fetch processed events JOINed with their raw event data.


        Args:

        project_id: VoC project ID to filter by.

        limit: Maximum number of rows to return (1–500, default 50).

        offset: Number of rows to skip for pagination.


        Returns:

        Paginated list of processed events with full raw event detail,

        sorted by ``processed_at`` DESC.


        Raises:

        HTTPException 401: Invalid or missing PSK token.

        HTTPException 503: Database is unreachable.'
      operationId: get_project_events_detailed_api_v1_world_monitor__project_id__events_detailed_get
      security:
      - HTTPBearer: []
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          description: Max rows to return
          default: 50
          title: Limit
        description: Max rows to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Rows to skip
          default: 0
          title: Offset
        description: Rows to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/world-monitor/config:
    post:
      tags:
      - world-monitor
      summary: Upsert Project Config
      description: 'Create or update a World Monitor project configuration.


        Only ``project_id``, ``name``, ``entities`` (name/aliases/keywords), and

        ``topic_entity_map`` (keywords + entity names) are required. The LLM

        enriches everything else (sector, country, dollar_exposure, disambiguation,

        confidence scores, countries_of_interest, geo_irrelevance_keywords) before

        saving. If the LLM is unavailable, sensible defaults are used.


        Args:

        payload: Project configuration input (see ``ProjectConfigPayload``).


        Returns:

        The enriched configuration as persisted.


        Raises:

        HTTPException 401: Invalid or missing PSK token.

        HTTPException 422: Invalid request payload.

        HTTPException 503: Database is unreachable.'
      operationId: upsert_project_config_api_v1_world_monitor_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectConfigPayload'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
components:
  schemas:
    PaginatedResponse:
      properties:
        data:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Data
        total:
          type: integer
          title: Total
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
      type: object
      required:
      - data
      - total
      - limit
      - offset
      title: PaginatedResponse
      description: Standard paginated response envelope.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    TopicInput:
      properties:
        keywords:
          items:
            type: string
          type: array
          title: Keywords
          description: Topic keywords for news matching
        entities:
          items:
            $ref: '#/components/schemas/TopicEntityInput'
          type: array
          title: Entities
          description: Entities relevant to this topic
      type: object
      required:
      - keywords
      - entities
      title: TopicInput
    ConfigResponse:
      properties:
        status:
          type: string
          title: Status
        project_id:
          type: integer
          title: Project Id
        name:
          type: string
          title: Name
        entities:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Entities
        topic_entity_map:
          additionalProperties: true
          type: object
          title: Topic Entity Map
        countries_of_interest:
          items:
            type: string
          type: array
          title: Countries Of Interest
        geo_irrelevance_keywords:
          items:
            type: string
          type: array
          title: Geo Irrelevance Keywords
      type: object
      required:
      - status
      - project_id
      - name
      - entities
      - topic_entity_map
      - countries_of_interest
      - geo_irrelevance_keywords
      title: ConfigResponse
      description: Response after upserting a project config.
    ProjectConfigPayload:
      properties:
        project_id:
          type: integer
          title: Project Id
          description: VoC project ID
        name:
          type: string
          title: Name
          description: Human-readable project name
        entities:
          items:
            $ref: '#/components/schemas/EntityInput'
          type: array
          title: Entities
          description: Portfolio entities to monitor
        topic_entity_map:
          additionalProperties:
            $ref: '#/components/schemas/TopicInput'
          type: object
          title: Topic Entity Map
          description: Topic-to-entity mapping
        is_active:
          type: boolean
          title: Is Active
          description: Whether monitoring is active
          default: true
        countries_of_interest:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Countries Of Interest
          description: ISO-2 country codes (LLM infers if omitted)
        geo_irrelevance_penalty:
          type: number
          title: Geo Irrelevance Penalty
          description: Penalty for irrelevant geographies
          default: 0.4
        geo_irrelevance_keywords:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Geo Irrelevance Keywords
          description: Geo noise keywords (LLM infers if omitted)
      type: object
      required:
      - project_id
      - name
      - entities
      - topic_entity_map
      title: ProjectConfigPayload
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    EntityInput:
      properties:
        name:
          type: string
          title: Name
          description: Entity display name
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: Alternative names / spellings
        keywords:
          items:
            type: string
          type: array
          title: Keywords
          description: Search keywords for this entity
      type: object
      required:
      - name
      title: EntityInput
    TopicEntityInput:
      properties:
        name:
          type: string
          title: Name
          description: Entity name (must match an entry in entities)
      type: object
      required:
      - name
      title: TopicEntityInput
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
    HTTPBasic:
      type: http
      scheme: basic