Sovereign OS API Orchestration Bridge — OpenAPI 1.0.0
<!-- GENERATED by scripts/render-platform-map-api-docs.mjs — do not hand-edit; edit apps/agent-bff/openapi/<spec>.json and re-run. --> Scope: The published reference for Sovereign OS API Orchestration Bridge. 7 paths — the measured spec-vs-implementation coverage lives in the complete API inventory. Status: rendered 2026-11-09 from the OpenAPI source for Sovereign OS API Orchestration Bridge — regenerate with node scripts/render-platform-map-api-docs.mjs. See also: the OpenAPI spec index.
Servers
| URL | Notes |
|---|---|
| /v1/dify/tools/api-bridge | Agent BFF API Bridge |
Paths — 7 paths / 7 operations
| Method | Path | Operation ID | Summary |
|---|---|---|---|
| POST | /invoke | invokeApi | Invoke a registered API endpoint |
| POST | /search | searchApis | Search registered APIs |
| POST | /list-providers | listProviders | List API providers |
| POST | /list-apis | listApis | List all registered APIs |
| POST | /get-industries | getIndustries | List industry verticals |
| POST | /register-provider | registerProvider | Register a new API provider |
| POST | /register-endpoint | registerEndpoint | Register a new API endpoint |
Operations
POST /invoke
Summary: Invoke a registered API endpoint Description: Calls any registered API or model by its CNS path. Handles authentication, quota checks, and cost tracking automatically.
Operation ID: invokeApi Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| cns_path | string | CNS path of the API endpoint to invoke (e.g., 'cns://api/agriculture/weather/current') |
| parameters | object | Parameters to pass to the API (mapped to query/body based on endpoint config) |
| model_override | string | Optional model override for AI endpoints |
Responses:
| Status | Meaning |
|---|---|
| 200 | API response |
POST /search
Summary: Search registered APIs Description: Find APIs by industry vertical, capability tags, or keyword search.
Operation ID: searchApis Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| industry | string | Industry vertical slug (e.g., 'agriculture-food', 'healthcare') |
| capability | string | Capability or tag to search for (e.g., 'weather', 'payments') |
| query | string | Free-text search query |
| limit | int | Maximum results (default 10, max 50) |
Responses:
| Status | Meaning |
|---|---|
| 200 | Search results |
POST /list-providers
Summary: List API providers Description: List registered API providers, optionally filtered by industry.
Operation ID: listProviders Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| industry | string | Filter by industry vertical |
| limit | int | Maximum results (default 20) |
Responses:
| Status | Meaning |
|---|---|
| 200 | Provider list |
POST /list-apis
Summary: List all registered APIs Description: List all registered API endpoints with details.
Operation ID: listApis Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| provider | string | Filter by provider name |
| limit | int | Maximum results (default 20) |
Responses:
| Status | Meaning |
|---|---|
| 200 | API list |
POST /get-industries
Summary: List industry verticals Description: Get all available industry verticals with provider and API counts.
Operation ID: getIndustries Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 200 | Industry list |
POST /register-provider
Summary: Register a new API provider Description: Register a new API provider from APIs.json metadata.
Operation ID: registerProvider Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| provider_name | string | |
| apisjson_url | string | |
| industry | string | |
| description | string | |
| website_url | string | |
| logo_url | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Registration result |
POST /register-endpoint
Summary: Register a new API endpoint Description: Register a new API endpoint with its configuration.
Operation ID: registerEndpoint Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| cns_path | string | |
| provider_name | string | |
| endpoint_name | string | |
| http_method | string enum: GET, POST, PUT, DELETE, PATCH | |
| url_pattern | string | |
| description | string | |
| input_schema | object | |
| output_schema | object | |
| pricing | object | |
| tags | string[] |
Responses:
| Status | Meaning |
|---|---|
| 200 | Registration result |
Full specification — verbatim source of truth
{
"openapi": "3.0.3",
"info": {
"title": "Sovereign OS API Orchestration Bridge",
"description": "Unified API for invoking registered APIs and models from Dify.ai workflows. Provides industry-based categorization, provider management, and metered invocation with cost tracking.",
"version": "1.0.0"
},
"servers": [
{
"url": "/v1/dify/tools/api-bridge",
"description": "Agent BFF API Bridge"
}
],
"paths": {
"/invoke": {
"post": {
"operationId": "invokeApi",
"summary": "Invoke a registered API endpoint",
"description": "Calls any registered API or model by its CNS path. Handles authentication, quota checks, and cost tracking automatically.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cns_path"
],
"properties": {
"cns_path": {
"type": "string",
"description": "CNS path of the API endpoint to invoke (e.g., 'cns://api/agriculture/weather/current')"
},
"parameters": {
"type": "object",
"description": "Parameters to pass to the API (mapped to query/body based on endpoint config)"
},
"model_override": {
"type": "string",
"description": "Optional model override for AI endpoints"
}
}
}
}
}
},
"responses": {
"200": {
"description": "API response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"cns_path": {
"type": "string"
},
"status": {
"type": "integer"
},
"duration_ms": {
"type": "integer"
},
"cost": {
"type": "number"
},
"response": {
"type": "object"
}
}
}
}
}
}
}
}
}
}
},
"/search": {
"post": {
"operationId": "searchApis",
"summary": "Search registered APIs",
"description": "Find APIs by industry vertical, capability tags, or keyword search.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"industry": {
"type": "string",
"description": "Industry vertical slug (e.g., 'agriculture-food', 'healthcare')"
},
"capability": {
"type": "string",
"description": "Capability or tag to search for (e.g., 'weather', 'payments')"
},
"query": {
"type": "string",
"description": "Free-text search query"
},
"limit": {
"type": "integer",
"description": "Maximum results (default 10, max 50)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Search results",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cns_path": {
"type": "string"
},
"method": {
"type": "string"
},
"url": {
"type": "string"
},
"description": {
"type": "string"
},
"pricing": {
"type": "object"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"count": {
"type": "integer"
}
}
}
}
}
}
}
}
}
}
},
"/list-providers": {
"post": {
"operationId": "listProviders",
"summary": "List API providers",
"description": "List registered API providers, optionally filtered by industry.",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"industry": {
"type": "string",
"description": "Filter by industry vertical"
},
"limit": {
"type": "integer",
"description": "Maximum results (default 20)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Provider list",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider_id": {
"type": "string"
},
"name": {
"type": "string"
},
"industry": {
"type": "string"
},
"api_count": {
"type": "integer"
},
"website": {
"type": "string"
}
}
}
},
"count": {
"type": "integer"
}
}
}
}
}
}
}
}
}
}
},
"/list-apis": {
"post": {
"operationId": "listApis",
"summary": "List all registered APIs",
"description": "List all registered API endpoints with details.",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Filter by provider name"
},
"limit": {
"type": "integer",
"description": "Maximum results (default 20)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "API list",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"apis": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cns_path": {
"type": "string"
},
"method": {
"type": "string"
},
"url": {
"type": "string"
},
"description": {
"type": "string"
},
"pricing": {
"type": "object"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"provider": {
"type": "string"
}
}
}
},
"count": {
"type": "integer"
}
}
}
}
}
}
}
}
}
}
},
"/get-industries": {
"post": {
"operationId": "getIndustries",
"summary": "List industry verticals",
"description": "Get all available industry verticals with provider and API counts.",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"responses": {
"200": {
"description": "Industry list",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"industries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"provider_count": {
"type": "integer"
},
"api_count": {
"type": "integer"
}
}
}
},
"count": {
"type": "integer"
}
}
}
}
}
}
}
}
}
}
},
"/register-provider": {
"post": {
"operationId": "registerProvider",
"summary": "Register a new API provider",
"description": "Register a new API provider from APIs.json metadata.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"provider_name",
"industry"
],
"properties": {
"provider_name": {
"type": "string"
},
"apisjson_url": {
"type": "string"
},
"industry": {
"type": "string"
},
"description": {
"type": "string"
},
"website_url": {
"type": "string"
},
"logo_url": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Registration result",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
},
"/register-endpoint": {
"post": {
"operationId": "registerEndpoint",
"summary": "Register a new API endpoint",
"description": "Register a new API endpoint with its configuration.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cns_path",
"provider_name",
"http_method",
"url_pattern"
],
"properties": {
"cns_path": {
"type": "string"
},
"provider_name": {
"type": "string"
},
"endpoint_name": {
"type": "string"
},
"http_method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
]
},
"url_pattern": {
"type": "string"
},
"description": {
"type": "string"
},
"input_schema": {
"type": "object"
},
"output_schema": {
"type": "object"
},
"pricing": {
"type": "object"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Registration result",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
}
}
}