Card snapshot
synap.linkrra.com
·
2026-10-26 17:17:50 UTC
·
507816a8744321f45f5b264e799ddb7a1ab70fd67c3861279610f23c11525088
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"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.",
"supportedInterfaces": [
{
"url": "https://pool.linkrra.com/a2a/v1",
"protocolBinding": "HTTP+JSON",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Linkrra",
"url": "https://linkrra.com"
},
"version": "1.0.0",
"documentationUrl": "https://synap.linkrra.com/docs",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"securitySchemes": {
"bearer": {
"httpAuthSecurityScheme": {
"scheme": "Bearer",
"description": "A Synap API key, as \"Authorization: Bearer sk-pool-\u2026\". 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."
}
}
},
"securityRequirements": [
{
"schemes": {
"bearer": {
"list": []
}
}
}
],
"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 \u2014 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"
]
}
]
}