inite-ai Sources API

Read-only trust inputs (scope `brain:read`): declared source identity ⋈ learned reputation. Public projection — operator annotations (owner/note) stay on the admin surface.

Operations 2

GET /v1/sources List source reputations (trust inputs) #
GET /v1/sources/{sourceKey} One source’s declared identity, trust scopes, and history #

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/inite-ai:inite-ai-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

inite-ai-sources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Generated from the zod wire contracts (`pnpm openapi:build` — scripts/build-openapi.ts); do not edit by hand. Excluded on purpose: the operator/ops surface (jobs, leases, policy, stats, maintenance, GDPR cascades), which is indexed in docs/api.md, and the MCP transport `ALL /mcp/{companyId}`, which is JSON-RPC over Streamable HTTP rather than REST — MCP clients discover it through `tools/list` (docs/mcp.md). Scopes are plain bearer-key grants, not OAuth flows — each operation states its required scope.'
  license:
    identifier: AGPL-3.0-or-later
    name: AGPL-3.0-or-later
  summary: 'The community-facing platform surface: the memory core (fact ingest, search, multi-hop, synthesize, entity and fact reads), the Domain Pack registry and tenant pack admin, the document pipeline, the external-indexer work protocol, the raw-substrate driver, the evidence substrate, and source reputation reads.'
  title: INITE Brain — Platform Sources API
  version: 2.6.0
servers:
- description: Hosted instance (placeholder — self-hosted deployments serve the same paths on their own origin).
  url: https://brain.inite.ai
security:
- bearerAuth: []
tags:
- description: 'Read-only trust inputs (scope `brain:read`): declared source identity ⋈ learned reputation. Public projection — operator annotations (owner/note) stay on the admin surface.'
  name: Sources
paths:
  /v1/sources:
    get:
      description: 'Catalogue of everything brain knows ABOUT its fact sources: the operator-declared identity (type, authLevel) joined with the learned agreement rates, one row per sourceKey. Public projection — operator annotations (owner/note) are served only on the brain:admin surface. `domain` additionally captures that domain''s learned rate into `domainTrust` and makes `minSamples` judge it (falling back to the global row). Source: src/sources/public-sources.controller.ts.


        Required scope: `brain:read`.'
      operationId: listSources
      parameters:
      - description: Capture this domain’s learned rate per source (`domainTrust`).
        in: query
        name: domain
        required: false
        schema:
          type: string
      - description: Only sources declared with this type.
        in: query
        name: type
        required: false
        schema:
          enum:
          - human
          - website
          - document
          - api
          - agent
          - sensor
          - system
          type: string
      - description: Only sources whose learned rate rests on at least this many samples (domain-scoped row when `domain` is given, global row otherwise).
        in: query
        name: minSamples
        required: false
        schema:
          type: integer
      - description: Page size (default 50, max 200).
        in: query
        name: limit
        required: false
        schema:
          type: integer
      - description: Page offset.
        in: query
        name: offset
        required: false
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSourcesListResponse'
          description: The reputation catalogue page.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      summary: List source reputations (trust inputs)
      tags:
      - Sources
  /v1/sources/{sourceKey}:
    get:
      description: 'Declared type/authLevel, every learned scope (global first, then domains alphabetically), and the reputation-over-time trail (newest first, capped at 50 rows). Public projection — owner/note are excluded. Same data the `get_source_reputation` MCP tool serves.


        Required scope: `brain:read`.'
      operationId: getSourceReputation
      parameters:
      - description: Source key, `vertical:recorder` (e.g. `rent:tenant_bot`).
        in: path
        name: sourceKey
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSourceDetailResponse'
          description: The source reputation detail.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: One source’s declared identity, trust scopes, and history
      tags:
      - Sources
components:
  schemas:
    SourceHistoryRow:
      additionalProperties: false
      properties:
        agreementRate:
          type: number
        domain:
          type:
          - string
          - 'null'
        recordedAt:
          type: string
        sampleCount:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
      required:
      - domain
      - agreementRate
      - sampleCount
      - recordedAt
      type: object
    PublicSourcesListResponse:
      additionalProperties: false
      properties:
        limit:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        offset:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        sources:
          items:
            $ref: '#/components/schemas/PublicSourceSummary'
          type: array
        total:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
      required:
      - sources
      - total
      - limit
      - offset
      type: object
    PublicDeclaredSource:
      additionalProperties: false
      properties:
        authLevel:
          maximum: 1
          minimum: 0
          type: number
        type:
          enum:
          - human
          - website
          - document
          - api
          - agent
          - sensor
          - system
          type: string
      required:
      - type
      - authLevel
      type: object
    ErrorResponse:
      description: Standard NestJS error envelope.
      properties:
        error:
          type: string
        message:
          anyOf:
          - type: string
          - items:
              type: string
            type: array
        statusCode:
          type: integer
      required:
      - statusCode
      - message
      type: object
    TrustScopeRow:
      additionalProperties: false
      properties:
        agreementRate:
          type: number
        domain:
          type:
          - string
          - 'null'
        lastSeenAt:
          type:
          - string
          - 'null'
        lossCount:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        sampleCount:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        winCount:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
      required:
      - domain
      - agreementRate
      - sampleCount
      - winCount
      - lossCount
      - lastSeenAt
      type: object
    PublicSourceSummary:
      additionalProperties: false
      properties:
        declared:
          anyOf:
          - $ref: '#/components/schemas/PublicDeclaredSource'
          - type: 'null'
        domainTrust:
          anyOf:
          - $ref: '#/components/schemas/TrustScopeRow'
          - type: 'null'
        globalTrust:
          anyOf:
          - $ref: '#/components/schemas/TrustScopeRow'
          - type: 'null'
        scopedDomains:
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        sourceKey:
          type: string
      required:
      - sourceKey
      - declared
      - globalTrust
      - scopedDomains
      type: object
    PublicSourceDetailResponse:
      additionalProperties: false
      properties:
        declared:
          anyOf:
          - $ref: '#/components/schemas/PublicDeclaredSource'
          - type: 'null'
        history:
          items:
            $ref: '#/components/schemas/SourceHistoryRow'
          type: array
        sourceKey:
          type: string
        trust:
          items:
            $ref: '#/components/schemas/TrustScopeRow'
          type: array
      required:
      - sourceKey
      - declared
      - trust
      - history
      type: object
  responses:
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Missing or unknown bearer key.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: The key lacks the required scope.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: No such resource in this tenant.
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Validation failed.
  securitySchemes:
    bearerAuth:
      description: 'API key (`Authorization: Bearer <key>`); its SHA-256 must be registered in BRAIN_API_KEYS. Keys carry scopes (`brain:read`, `brain:write`, `brain:admin`, `brain:read_pii`, `registry:publish`, `registry:curate`, `indexer:write`) — each operation states the scope it requires. Not an OAuth flow.'
      scheme: bearer
      type: http