inite-ai Registry API
Discovery reads over the global Domain Pack registry (shared across all tenants).
Discovery reads over the global Domain Pack registry (shared across all tenants).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/inite-ai:inite-ai-registry-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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 Registry 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: Discovery reads over the global Domain Pack registry (shared across all tenants).
name: Registry
paths:
/v1/registry/packs:
get:
description: 'Lists published packs (latest installable version each). The catalogue is shared across all tenants; any authenticated key may browse. Source: src/registry/registry.controller.ts.
Required scope: `brain:read`.'
operationId: listRegistryPacks
parameters:
- description: Substring match on pack id / description.
in: query
name: q
required: false
schema:
type: string
- description: Filter by publisher id.
in: query
name: publisher
required: false
schema:
type: string
- description: Filter by keyword tag.
in: query
name: tag
required: false
schema:
type: string
- description: Page size.
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/RegistryListResponse'
description: The catalogue page.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
summary: Browse the global Domain Pack catalogue
tags:
- Registry
/v1/registry/packs/{packId}:
get:
description: 'All published versions of a pack, newest first, including yanked ones (flagged).
Required scope: `brain:read`.'
operationId: getRegistryPackVersions
parameters:
- description: The pack id.
in: path
name: packId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RegistryVersionsResponse'
description: Version history (empty list when the pack is unknown).
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
summary: One pack's published version history
tags:
- Registry
/v1/registry/packs/{packId}/{version}:
get:
description: 'Returns the full manifest body for install/inspection. `latest` is an alias for the latest non-yanked version.
Required scope: `brain:read`.'
operationId: getRegistryPackManifest
parameters:
- description: The pack id.
in: path
name: packId
required: true
schema:
type: string
- description: A published version, or `latest`.
in: path
name: version
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RegistryManifestResponse'
description: The resolved manifest.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
summary: Resolve one version to its full manifest
tags:
- Registry
/v1/registry/publishers/{publisher}:
get:
description: 'The publisher profile (when one was written — see PUT /v1/admin/registry/publishers/{publisher}) plus the publisher''s catalogue entries. 404 only when the publisher is entirely unknown (no profile AND no packs). Source: src/registry/registry.controller.ts.
Required scope: `brain:read`.'
operationId: getRegistryPublisher
parameters:
- description: The publisher id (trust-store key id).
in: path
name: publisher
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PublisherResponse'
description: The publisher page.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
summary: A publisher's public page as JSON
tags:
- Registry
components:
schemas:
RegistryVersion:
additionalProperties: false
properties:
checksum:
type: string
description:
type: string
downloads:
default: 0
maximum: 9007199254740991
minimum: 0
type: integer
keywords:
items:
type: string
type: array
origin:
type: string
packId:
type: string
publishedAt:
type: string
publisher:
type:
- string
- 'null'
signed:
type: boolean
verified:
default: false
type: boolean
version:
type: string
yankReason:
type:
- string
- 'null'
yanked:
type: boolean
required:
- packId
- version
- checksum
- description
- keywords
- publisher
- signed
- verified
- yanked
- yankReason
- publishedAt
- downloads
type: object
DisplayPrice:
additionalProperties: false
properties:
amount:
description: Minor units (e.g. cents).
exclusiveMinimum: 0
maximum: 9007199254740991
type: integer
currency:
description: 3-letter ISO 4217 currency code.
pattern: ^[A-Za-z]{3}$
type: string
required:
- amount
- currency
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
PublisherProfile:
additionalProperties: false
properties:
bio:
type: string
contactEmail:
type:
- string
- 'null'
createdAt:
type: string
displayName:
type: string
publisher:
type: string
updatedAt:
type:
- string
- 'null'
url:
type:
- string
- 'null'
required:
- publisher
- displayName
- url
- bio
- contactEmail
- createdAt
- updatedAt
type: object
RegistryListResponse:
additionalProperties: false
properties:
packs:
items:
$ref: '#/components/schemas/RegistryPackSummary'
type: array
required:
- packs
type: object
RegistryPackSummary:
additionalProperties: false
properties:
description:
type: string
displayPrice:
$ref: '#/components/schemas/DisplayPrice'
downloads:
default: 0
maximum: 9007199254740991
minimum: 0
type: integer
featured:
type: boolean
featuredAt:
type: string
keywords:
items:
type: string
type: array
latestVersion:
type: string
origin:
type: string
packId:
type: string
paid:
type: boolean
publishedAt:
type: string
publisher:
type:
- string
- 'null'
signed:
type: boolean
verified:
default: false
type: boolean
versionCount:
maximum: 9007199254740991
minimum: 0
type: integer
required:
- packId
- latestVersion
- description
- keywords
- publisher
- signed
- verified
- downloads
- versionCount
type: object
PublisherResponse:
additionalProperties: false
properties:
packs:
items:
$ref: '#/components/schemas/RegistryPackSummary'
type: array
profile:
anyOf:
- $ref: '#/components/schemas/PublisherProfile'
- type: 'null'
publisher:
type: string
required:
- publisher
- profile
- packs
type: object
RegistryManifestResponse:
additionalProperties: false
properties:
checksum:
type: string
manifest:
additionalProperties: {}
propertyNames:
type: string
type: object
packId:
type: string
version:
type: string
yanked:
type: boolean
required:
- packId
- version
- checksum
- yanked
- manifest
type: object
RegistryVersionsResponse:
additionalProperties: false
properties:
latestVersion:
type:
- string
- 'null'
packId:
type: string
versions:
items:
$ref: '#/components/schemas/RegistryVersion'
type: array
required:
- packId
- latestVersion
- versions
type: object
responses:
Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: The key lacks the required scope.
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Missing or unknown bearer key.
NotFound:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: No such resource in this tenant.
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