CalypsoAI · Schema
PostProvidersWithTemplateBody
Artificial IntelligenceSecurityComplianceEnterpriseGenerative AI
Properties
| Name | Type | Description |
|---|---|---|
| authTemplate | object | Optional template to use to fetch authentication credentials. |
| capabilities | object | Set of capabilities that the provider will have. Cannot be changed after creation. |
| default | boolean | Whether the new provider should the default provider. Has no effect if enable is false. |
| enable | boolean | Enable the new provider for the default project for the group/global settings. |
| inputs | object | Input values that can be accessed in the template. |
| maxRequestsPerSecond | object | Deprecated, use requestConcurrencyLimit instead. |
| name | string | The name can be used to identify the provider instead of the id. It is case-sensitive, unique and can only contain letters, numbers and dashes. |
| projectId | object | Limit access to the provider to a given project. |
| redTeam | boolean | Mark provider for use in attack campaigns. |
| requestConcurrencyLimit | object | Specifies concurrency limits for requests from campaign run attacks. |
| secrets | object | Secrets that can be accessed in the template. |
| tag | object | Optional tag to attach to the provider. |
| template | object | Provider template to use when sending prompts. |
| test | boolean | Whether to test the provider connection before creation. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/calypsoai-com/main/json-schema/calypsoai-com-post-providers-with-template-body-schema.json",
"title": "PostProvidersWithTemplateBody",
"x-generated": "2026-10-20",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/calypsoai-com-openapi.json#/components/schemas/PostProvidersWithTemplateBody",
"properties": {
"authTemplate": {
"anyOf": [
{
"oneOf": [
{
"$ref": "#/$defs/APIRequestBlock"
},
{
"$ref": "#/$defs/APIRetryBlock"
},
{
"$ref": "#/$defs/APIWorkflowBlock"
}
]
},
{
"type": "null"
}
],
"description": "Optional template to use to fetch authentication credentials.",
"title": "Authtemplate"
},
"capabilities": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ProviderCapability"
},
"type": "array",
"uniqueItems": true
},
{
"type": "null"
}
],
"description": "Set of capabilities that the provider will have. Cannot be changed after creation.",
"title": "Capabilities"
},
"default": {
"default": false,
"description": "Whether the new provider should the default provider. Has no effect if enable is false.",
"title": "Default",
"type": "boolean"
},
"enable": {
"default": false,
"description": "Enable the new provider for the default project for the group/global settings.",
"title": "Enable",
"type": "boolean"
},
"inputs": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"description": "Input values that can be accessed in the template.",
"title": "Inputs"
},
"maxRequestsPerSecond": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Deprecated, use requestConcurrencyLimit instead.",
"title": "Maxrequestspersecond"
},
"name": {
"description": "The name can be used to identify the provider instead of the id. It is case-sensitive, unique and can only contain letters, numbers and dashes.",
"pattern": "^[a-zA-Z0-9-_]+$",
"title": "Name",
"type": "string"
},
"projectId": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "Limit access to the provider to a given project.",
"title": "Projectid"
},
"redTeam": {
"default": false,
"description": "Mark provider for use in attack campaigns.",
"title": "Redteam",
"type": "boolean"
},
"requestConcurrencyLimit": {
"anyOf": [
{
"$ref": "#/$defs/RequestConcurrencyLimit"
},
{
"type": "null"
}
],
"description": "Specifies concurrency limits for requests from campaign run attacks."
},
"secrets": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"$ref": "#/$defs/NewSecret"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"description": "Secrets that can be accessed in the template.",
"title": "Secrets"
},
"tag": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Optional tag to attach to the provider.",
"title": "Tag"
},
"template": {
"description": "Provider template to use when sending prompts.",
"oneOf": [
{
"$ref": "#/$defs/APIRequestBlock"
},
{
"$ref": "#/$defs/APIRetryBlock"
},
{
"$ref": "#/$defs/APIWorkflowBlock"
}
],
"title": "Template"
},
"test": {
"default": false,
"description": "Whether to test the provider connection before creation.",
"title": "Test",
"type": "boolean"
}
},
"required": [
"name",
"template"
],
"type": "object",
"$defs": {
"APIRequestBlock": {
"properties": {
"awsAuth": {
"anyOf": [
{
"$ref": "#/$defs/AWSAuth"
},
{
"type": "null"
}
],
"template": true
},
"body": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Body"
},
"headers": {
"additionalProperties": true,
"default": {},
"template": true,
"title": "Headers",
"type": "object"
},
"json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Json"
},
"method": {
"$ref": "#/$defs/HTTPMethod"
},
"ociAuth": {
"anyOf": [
{
"$ref": "#/$defs/OCIAuth"
},
{
"type": "null"
}
],
"template": true
},
"outputs": {
"$ref": "#/$defs/APIScopeOutputs",
"default": {}
},
"queryParams": {
"additionalProperties": {
"type": "string"
},
"default": {},
"template": true,
"title": "Queryparams",
"type": "object"
},
"timeout": {
"default": 20,
"title": "Timeout",
"type": "integer"
},
"type": {
"const": "request",
"default": "request",
"title": "Type",
"type": "string"
},
"url": {
"template": true,
"title": "Url",
"type": "string"
}
},
"required": [
"method",
"url"
],
"title": "APIRequestBlock",
"type": "object"
},
"APIRetryBlock": {
"properties": {
"attempts": {
"title": "Attempts",
"type": "integer"
},
"backoff": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"default": 1,
"template": true,
"title": "Backoff"
},
"block": {
"oneOf": [
{
"$ref": "#/$defs/APIRequestBlock"
},
{
"$ref": "#/$defs/APIWorkflowBlock"
},
{
"$ref": "#/$defs/APIRetryBlock"
}
],
"template": true,
"title": "Block"
},
"type": {
"const": "retry",
"default": "retry",
"title": "Type",
"type": "string"
},
"when": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "When"
}
},
"required": [
"attempts",
"block"
],
"title": "APIRetryBlock",
"type": "object"
},
"APIScopeOutputs": {
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "string"
}
},
"template": true,
"title": "APIScopeOutputs",
"type": "object"
},
"APIWorkflowBlock": {
"properties": {
"outputs": {
"$ref": "#/$defs/APIScopeOutputs",
"default": {}
},
"stages": {
"items": {
"oneOf": [
{
"$ref": "#/$defs/APIRequestBlock"
},
{
"$ref": "#/$defs/APIRetryBlock"
},
{
"$ref": "#/$defs/APIWorkflowBlock"
}
]
},
"template": true,
"title": "Stages",
"type": "array"
},
"type": {
"const": "workflow",
"default": "workflow",
"title": "Type",
"type": "string"
}
},
"required": [
"stages"
],
"title": "APIWorkflowBlock",
"type": "object"
},
"AWSAuth": {
"properties": {
"accessKey": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Accesskey"
},
"region": {
"template": true,
"title": "Region",
"type": "string"
},
"secretKey": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Secretkey"
},
"service": {
"template": true,
"title": "Service",
"type": "string"
},
"token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Token"
}
},
"required": [
"service",
"region"
],
"title": "AWSAuth",
"type": "object"
},
"HTTPMethod": {
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH",
"HEAD",
"OPTIONS"
],
"title": "HTTPMethod",
"type": "string"
},
"NewSecret": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"value": {
"format": "password",
"title": "Value",
"type": "string",
"writeOnly": true
}
},
"required": [
"name",
"value"
],
"title": "NewSecret",
"type": "object"
},
"OCIAuth": {
"properties": {
"keyId": {
"template": true,
"title": "Keyid",
"type": "string"
},
"passphrase": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"template": true,
"title": "Passphrase"
},
"privateKeyPem": {
"template": true,
"title": "Privatekeypem",
"type": "string"
}
},
"required": [
"keyId",
"privateKeyPem"
],
"title": "OCIAuth",
"type": "object"
},
"ProviderCapability": {
"enum": [
"chat",
"red_team",
"siem",
"openai_chat",
"openai_responses",
"anthropic_messages",
"google_generate_content"
],
"title": "ProviderCapability",
"type": "string"
},
"RequestConcurrencyLimit": {
"properties": {
"decayPerSecond": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of request slots that are opened per second.\n\nSet a value to use the concurrency limit as a rate limit.\n\nFor example, to set a rate limit of 5 requests per second set requests=5 and decayPerSecond=5",
"title": "Decaypersecond"
},
"requests": {
"description": "Max number of request slots that can be occupied at once.",
"exclusiveMinimum": 0.0,
"title": "Requests",
"type": "integer"
}
},
"required": [
"requests"
],
"title": "RequestConcurrencyLimit",
"type": "object"
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/calypsoai-com-post-providers-with-template-body"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.