PublisherResponse
Publisher response (excludes sensitive fields)
Properties
| Property | Type | Required | Description |
|---|---|---|---|
a2a_agent_card |
any | No | Cached A2A agent card |
a2a_endpoint_url |
string,null | No | A2A endpoint base URL (for compute_type = agent) |
a2a_health_status |
string,null | No | A2A health status: unknown, healthy, unhealthy, unreachable |
accepted_assets |
array,null | No | Accepted assets for payment |
allowed_passthrough_headers |
Array<string> | Yes | |
api_key_header |
string,null | No | Header name to inject upstream_api_key into (e.g., "Authorization", "X-API-Key") |
api_key_query_param |
string,null | No | Query parameter name to inject upstream_api_key into (e.g., "api_key", "apiKey") |
api_url |
string,null | No | External API URL (for integration_type = api) |
billing_model |
string | Yes | |
branch_id |
string,null | No | SerenDB branch ID (for database_type = serendb) |
capabilities |
Array<string> | Yes | Publisher-declared capabilities for task matching |
categories |
Array<string> | Yes | |
compute_type |
any | No | |
created_at |
string | Yes | |
database_config |
any | No | Provider config (sensitive fields redacted) |
database_name |
string,null | No | Database name within the SerenDB project |
database_type |
any | No | |
description |
string,null | No | |
email |
string,null | No | Publisher contact email for notifications and support |
endpoints |
array,null | No | Structured endpoint definitions for LLM discoverability and access control |
gateway_fee_percent |
string | Yes | |
id |
string | Yes | |
integration_type |
any | No | |
is_active |
boolean | Yes | |
is_verified |
boolean | Yes | |
logo_url |
string,null | No | |
mcp_capabilities |
any | No | Cached MCP capabilities (tools, resources, prompts) |
mcp_endpoint |
string,null | No | MCP server endpoint URL (for integration_type = mcp) |
name |
string | Yes | |
oauth_provider_id |
string,null | No | OAuth provider ID for BYOC (Bring Your Own Credentials) authentication |
ownership_tracking_enabled |
boolean | Yes | |
pricing |
array,null | No | Pricing config per asset (if included) |
project_id |
string,null | No | SerenDB project ID (for database_type = serendb) |
protected_operations |
any | No | |
publisher_category |
PublisherCategory | Yes | Publisher category: database, integration, or compute |
publisher_type |
PublisherType | Yes | |
request_content_type |
string | Yes | Content-Type for upstream API requests |
requires_user_oauth |
boolean | Yes | If true, users must connect via OAuth before using this publisher |
resource_description |
string,null | No | |
resource_id_response_path |
string,null | No | |
resource_id_url_pattern |
string,null | No | |
resource_name |
string,null | No | |
routing |
any | No | |
slug |
string | Yes | |
token_cache_ttl_seconds |
integer,null | No | TTL for cached exchanged tokens in seconds |
token_exchange_method |
string,null | No | HTTP method for exchange endpoint (POST or GET) |
token_exchange_mode |
string,null | No | How to send Seren token: header, body, or query |
token_exchange_url |
string,null | No | URL to call for exchanging Seren API keys for publisher auth tokens |
token_response_field |
string,null | No | JSON field in exchange response containing the token |
total_queries |
integer | Yes | |
undocumented_endpoint_policy |
UndocumentedEndpointPolicy | Yes | Policy for handling requests to paths not in the endpoints catalog |
unique_agents_served |
integer | Yes | |
updated_at |
string | Yes | |
upstream_cost_response_path |
string,null | No | Dot-separated path to upstream cost in response body (for pay_per_use and prepaid passthrough billing). Example: "usage.cost" |
upstream_headers |
any | Yes | Non-sensitive headers to send to upstream API |
usage_examples |
array,null | No | Usage examples showing how to call the publisher's API |
use_cases |
Array<string> | Yes | Human-readable use case descriptions |
verification_expires_at |
string,null | No | When verification expires (NULL = no expiry) |
wallet_address |
WalletAddress | Yes | |
wallet_network_id |
string | Yes | Network for the wallet address |
View JSON Schema
{
"type": "object",
"description": "Publisher response (excludes sensitive fields)",
"required": [
"id",
"name",
"slug",
"categories",
"capabilities",
"use_cases",
"publisher_type",
"wallet_address",
"wallet_network_id",
"publisher_category",
"billing_model",
"gateway_fee_percent",
"allowed_passthrough_headers",
"request_content_type",
"upstream_headers",
"ownership_tracking_enabled",
"undocumented_endpoint_policy",
"is_active",
"is_verified",
"total_queries",
"unique_agents_served",
"created_at",
"updated_at",
"requires_user_oauth"
],
"properties": {
"a2a_agent_card": {
"description": "Cached A2A agent card"
},
"a2a_endpoint_url": {
"type": [
"string",
"null"
],
"description": "A2A endpoint base URL (for compute_type = agent)"
},
"a2a_health_status": {
"type": [
"string",
"null"
],
"description": "A2A health status: unknown, healthy, unhealthy, unreachable"
},
"accepted_assets": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/components/schemas/AssetInfo"
},
"description": "Accepted assets for payment"
},
"allowed_passthrough_headers": {
"type": "array",
"items": {
"type": "string"
}
},
"api_key_header": {
"type": [
"string",
"null"
],
"description": "Header name to inject upstream_api_key into (e.g., \"Authorization\", \"X-API-Key\")"
},
"api_key_query_param": {
"type": [
"string",
"null"
],
"description": "Query parameter name to inject upstream_api_key into (e.g., \"api_key\", \"apiKey\")"
},
"api_url": {
"type": [
"string",
"null"
],
"description": "External API URL (for integration_type = api)"
},
"billing_model": {
"type": "string"
},
"branch_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "SerenDB branch ID (for database_type = serendb)"
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Publisher-declared capabilities for task matching"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"compute_type": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/ComputeType",
"description": "Compute type when publisher_category = compute"
}
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"database_config": {
"description": "Provider config (sensitive fields redacted)"
},
"database_name": {
"type": [
"string",
"null"
],
"description": "Database name within the SerenDB project"
},
"database_type": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/DatabaseType",
"description": "Database type when publisher_category = database"
}
]
},
"description": {
"type": [
"string",
"null"
]
},
"email": {
"type": [
"string",
"null"
],
"description": "Publisher contact email for notifications and support"
},
"endpoints": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/components/schemas/EndpointDefinition"
},
"description": "Structured endpoint definitions for LLM discoverability and access control"
},
"gateway_fee_percent": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"integration_type": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/IntegrationType",
"description": "Integration type when publisher_category = integration"
}
]
},
"is_active": {
"type": "boolean"
},
"is_verified": {
"type": "boolean"
},
"logo_url": {
"type": [
"string",
"null"
]
},
"mcp_capabilities": {
"description": "Cached MCP capabilities (tools, resources, prompts)"
},
"mcp_endpoint": {
"type": [
"string",
"null"
],
"description": "MCP server endpoint URL (for integration_type = mcp)"
},
"name": {
"type": "string"
},
"oauth_provider_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "OAuth provider ID for BYOC (Bring Your Own Credentials) authentication"
},
"ownership_tracking_enabled": {
"type": "boolean"
},
"pricing": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/components/schemas/PricingConfigResponse"
},
"description": "Pricing config per asset (if included)"
},
"project_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "SerenDB project ID (for database_type = serendb)"
},
"protected_operations": {},
"publisher_category": {
"$ref": "#/components/schemas/PublisherCategory",
"description": "Publisher category: database, integration, or compute"
},
"publisher_type": {
"$ref": "#/components/schemas/PublisherType"
},
"request_content_type": {
"type": "string",
"description": "Content-Type for upstream API requests"
},
"requires_user_oauth": {
"type": "boolean",
"description": "If true, users must connect via OAuth before using this publisher"
},
"resource_description": {
"type": [
"string",
"null"
]
},
"resource_id_response_path": {
"type": [
"string",
"null"
]
},
"resource_id_url_pattern": {
"type": [
"string",
"null"
]
},
"resource_name": {
"type": [
"string",
"null"
]
},
"routing": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/GeoRoutingConfig",
"description": "Geographic routing configuration (if publisher has geo-restricted upstream API)"
}
]
},
"slug": {
"type": "string"
},
"token_cache_ttl_seconds": {
"type": [
"integer",
"null"
],
"format": "int32",
"description": "TTL for cached exchanged tokens in seconds"
},
"token_exchange_method": {
"type": [
"string",
"null"
],
"description": "HTTP method for exchange endpoint (POST or GET)"
},
"token_exchange_mode": {
"type": [
"string",
"null"
],
"description": "How to send Seren token: header, body, or query"
},
"token_exchange_url": {
"type": [
"string",
"null"
],
"description": "URL to call for exchanging Seren API keys for publisher auth tokens"
},
"token_response_field": {
"type": [
"string",
"null"
],
"description": "JSON field in exchange response containing the token"
},
"total_queries": {
"type": "integer",
"format": "int64"
},
"undocumented_endpoint_policy": {
"$ref": "#/components/schemas/UndocumentedEndpointPolicy",
"description": "Policy for handling requests to paths not in the endpoints catalog"
},
"unique_agents_served": {
"type": "integer",
"format": "int64"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"upstream_cost_response_path": {
"type": [
"string",
"null"
],
"description": "Dot-separated path to upstream cost in response body (for pay_per_use and prepaid passthrough billing).\nExample: \"usage.cost\""
},
"upstream_headers": {
"description": "Non-sensitive headers to send to upstream API"
},
"usage_examples": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/components/schemas/UsageExample"
},
"description": "Usage examples showing how to call the publisher's API"
},
"use_cases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Human-readable use case descriptions"
},
"verification_expires_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "When verification expires (NULL = no expiry)"
},
"wallet_address": {
"$ref": "#/components/schemas/WalletAddress"
},
"wallet_network_id": {
"type": "string",
"description": "Network for the wallet address"
}
}
}