Show JSON
{
"protocolVersion": "1.0",
"name": "Synap by Linkrra",
"description": "OpenAI-compatible inference on open-weight models, served on hardware Linkrra owns and operates. Send it a prompt and it answers with a model completion; ask it to list models or to estimate the cost of a job and it answers from the live price list. Zero data retention: prompts and completions are not stored, and a finished task cannot be read back.",
"author": "Linkrra",
"wellKnownURI": "https://pool.linkrra.com/.well-known/agent-card.json",
"url": "https://pool.linkrra.com/a2a/v1",
"version": "1.0.0",
"provider": {
"organization": "Linkrra",
"url": "https://linkrra.com/"
},
"documentationUrl": "https://synap.linkrra.com/docs",
"iconUrl": null,
"supportsAuthenticatedExtendedCard": false,
"security": [
{
"schemes": {
"bearer": {
"list": []
}
}
}
],
"securitySchemes": {
"bearer": {
"httpAuthSecurityScheme": {
"scheme": "Bearer",
"description": "A Synap API key, as \"Authorization: Bearer sk-pool-…\". Required for the chat-completion skill, which is billed per token. list-models and estimate-cost need no key. Keys are issued at https://synap.linkrra.com."
}
}
},
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false,
"extensions": null
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
],
"skills": [
{
"id": "chat-completion",
"name": "Chat completion",
"description": "Answers a prompt with a completion from an open-weight model — prose, analysis or code. Billed per prompt and completion token to the Synap key on the request; with no key it returns a task in TASK_STATE_AUTH_REQUIRED and spends nothing. Name a model by putting its id in metadata.model, or leave it out and Synap routes to the cheapest model that can do the job. Stateless: send the whole conversation in the message, because nothing is remembered between calls.",
"tags": [
"llm",
"inference",
"chat",
"code-generation",
"openai-compatible"
],
"examples": [
"Write a Python function that parses an ISO 8601 duration.",
"Explain the difference between a mutex and a semaphore in two sentences."
],
"inputModes": [
"text/plain"
],
"outputModes": [
"text/plain"
]
},
{
"id": "list-models",
"name": "List models",
"description": "Returns the models Synap serves right now, with each one's context window, maximum output length and per-million-token price, as JSON text. Read-only, free, and needs no key. Triggered by a message whose text begins with \"list models\" (or is exactly \"models\"); anything after that is used as a filter on the model id and name.",
"tags": [
"catalogue",
"models",
"pricing",
"discovery"
],
"examples": [
"list models",
"models",
"list models coder"
],
"inputModes": [
"text/plain"
],
"outputModes": [
"text/plain"
]
},
{
"id": "estimate-cost",
"name": "Estimate cost",
"description": "Prices a job before it is run: given a model id and a token count, returns the prompt, completion and total USD from the live price list, as JSON text. Read-only, free, and needs no key. Triggered by a message of the form \"estimate cost <model-id> <prompt-tokens> [<completion-tokens>]\". The real charge uses the token counts the model reports, so this is an estimate, not a quote.",
"tags": [
"pricing",
"cost",
"estimate",
"budget"
],
"examples": [
"estimate cost qwen3-coder-30b 4000 1000",
"estimate cost gpt-oss-20b 12000"
],
"inputModes": [
"text/plain"
],
"outputModes": [
"text/plain"
]
}
],
"conformance": true,
"conformance_errors": null,
"homepage": null,
"repository": null,
"license": null,
"pricing": null,
"contact": null,
"id": "8ff2a0a1-faf8-4b40-b902-dd11ad6303cb",
"category": "ai-models",
"category_secondary": null
}