Overview
designat.ing provides two API endpoints, both unlocked by a single API key:
- raw.designat.ing/v1 — Direct OpenAI-compatible completions. Pure model access, zero orchestration overhead. Use this when you need raw inference speed.
- api.designat.ing/v1 — Intelligent inference with a full agentic runtime. Every request runs inside a containerised environment with persistent memory, tool calling, workflow orchestration, knowledge retrieval, guardrails, and multi-step reasoning. All included free with every plan.
Both endpoints share the same authentication, the same model catalog (22,298+ open-source models), and the same billing account. Switch between them by changing only the base URL.
Quick Start
Raw inference
export OPENROUTING_API_KEY="sk-or-..."
curl https://raw.designat.ing/v1/models \
-H "Authorization: Bearer $OPENROUTING_API_KEY"
curl https://raw.designat.ing/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Pro",
"messages": [{"role": "user", "content": "Hello"}]
}'
Intelligent inference
curl -X POST https://api.designat.ing/v1/agents \
-H "Authorization: Bearer $OPENROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Assistant",
"model": "Qwen/Qwen3-235B-A22B",
"system_prompt": "You are a helpful assistant."
}'
curl -X POST https://api.designat.ing/v1/agents/{agent_id}/chat \
-H "Authorization: Bearer $OPENROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "What is the weather in London?"
}'
Python SDK
from openai import OpenAI
client = OpenAI(
base_url="https://raw.designat.ing/v1",
api_key="sk-or-..."
)
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Pro",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
Authentication
All requests require an Authorization: Bearer sk-or-... header. API keys are created in the dashboard at designat.ing/login. Keys work across both endpoints — raw and intelligent.
Authorization: Bearer sk-or-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Error Codes
| Code | HTTP | Description |
| missing_key | 401 | Authorization header not provided |
| invalid_key | 401 | API key not found or revoked |
| rate_limit | 429 | Concurrency limit exceeded for your tier |
| model_not_found | 404 | Requested model ID does not exist |
| insufficient_quota | 403 | Token allowance exhausted for billing period |
| internal_error | 500 | Server error — retry after a few seconds |
Raw Inference API — raw.designat.ing
The raw API provides direct, high-speed model access with zero orchestration. It is fully OpenAI-compatible — drop-in replacement for the OpenAI SDK by changing only the base URL. Every request goes straight to the model and back. No containers, no memory, no tool loops. Maximum speed, minimum latency.
POST /v1/chat/completions
Create a chat completion. Supports streaming, tool calling, JSON mode, structured output, and all standard OpenAI parameters.
POSThttps://raw.designat.ing/v1/chat/completionsOpenAI-compatible chat completions endpoint
Request Body
| Parameter | Type | Required | Description |
| model | string | Yes | Model ID (e.g. deepseek-ai/DeepSeek-V4-Pro) |
| messages | array | Yes | Array of message objects with role and content |
| max_tokens | integer | No | Maximum tokens to generate |
| temperature | number | No | Sampling temperature (0-2). Default: 1 |
| top_p | number | No | Nucleus sampling threshold. Default: 1 |
| stream | boolean | No | Stream tokens via SSE. Default: false |
| tools | array | No | Function/tool definitions for tool calling |
| tool_choice | string/object | No | auto, none, required, or specific tool |
| response_format | object | No | {"type":"json_object"} or JSON schema for structured output |
| seed | integer | No | Deterministic sampling seed |
| logprobs | boolean | No | Return log probabilities. Default: false |
Example
curl https://raw.designat.ing/v1/chat/completions \
-H "Authorization: Bearer sk-or-..." \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-235B-A22B",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain quantum entanglement in 50 words"}
],
"max_tokens": 200,
"temperature": 0.7,
"stream": false
}'
GET /v1/models
List all available models. Returns model ID, context length, features, and model class.
GEThttps://raw.designat.ing/v1/modelsList all 22,298+ models available on the platform
curl https://raw.designat.ing/v1/models \
-H "Authorization: Bearer sk-or-..."
{
"data": [
{
"id": "deepseek-ai/DeepSeek-V4-Pro",
"context_length": 262144,
"model_class": "deepseek4-1.6t",
"concurrency_cost": 4,
"features": {"tool_use": true},
"owned_by": "Feather",
"available_on_current_plan": true
}
]
}
POST /v1/embeddings
POSThttps://raw.designat.ing/v1/embeddingsGenerate embeddings for text input
curl https://raw.designat.ing/v1/embeddings \
-H "Authorization: Bearer sk-or-..." \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-Embedding-8B",
"input": "Hello world"
}'
Model Parameters
Each model object in /v1/models includes:
id — Model identifier used in API calls
context_length — Maximum context window in tokens
concurrency_cost — Number of concurrency slots consumed (larger models cost more)
features.tool_use — Whether the model supports parallel tool calling
model_class — Architecture family (e.g. deepseek4-1.6t, qwen3-235b, glm51-754b)
available_on_current_plan — Whether your tier can access this model
Intelligent Inference API — api.designat.ing
The intelligent API wraps every request in a full agentic runtime. When you send a message, the platform does not just generate text — it enters an autonomous loop: the model plans, calls tools, reads results, reasons about what it found, and iterates until the task is complete. All of this happens inside a containerised environment with persistent memory, knowledge retrieval, guardrails, and observability.
Every intelligent endpoint is included free with your plan. There are no additional charges for agents, memory, knowledge bases, or workflows — they all consume tokens from your plan allowance.
Agents
An agent is a persistent entity with its own system prompt, model, tools, knowledge bases, and memory. Create it once, then chat with it repeatedly across sessions. The agent remembers previous conversations via warm memory.
POST/v1/agentsCreate a new agent
curl -X POST https://api.designat.ing/v1/agents \
-H "Authorization: Bearer sk-or-..." \
-H "Content-Type: application/json" \
-d '{
"name": "Research Assistant",
"model": "Qwen/Qwen3-235B-A22B",
"system_prompt": "You are a research assistant. Use tools to find information. Always cite sources.",
"knowledge_base_ids": ["kb_abc123"],
"mcp_server_ids": ["mcp_def456"],
"guardrail_ids": ["gr_no_pii"]
}'
{
"id": "agent_x9f2k",
"name": "Research Assistant",
"model": "Qwen/Qwen3-235B-A22B",
"created_at": "2026-06-16T06:00:00Z"
}
GET/v1/agentsList all agents
GET/v1/agents/{agent_id}Get agent details
DELETE/v1/agents/{agent_id}Delete an agent
Agent Chat
Send a message to an agent. The agent enters an autonomous loop — calling tools, reading outputs, reasoning — until the task is complete. Each chat request may trigger multiple model calls internally. The response includes the final answer plus a trace of all tool calls made.
POST/v1/agents/{agent_id}/chatSend a message to an agent (autonomous multi-step execution)
curl -X POST https://api.designat.ing/v1/agents/agent_x9f2k/chat \
-H "Authorization: Bearer sk-or-..." \
-H "Content-Type: application/json" \
-d '{
"message": "Find the latest revenue figures for Tesla and compare with analyst estimates",
"stream": false
}'
{
"agent_id": "agent_x9f2k",
"response": "Based on the search results, Tesla Q1 2026 revenue was...",
"tool_calls": [
{"tool": "web_search", "input": {"query": "Tesla Q1 2026 revenue"}, "output": "..."},
{"tool": "web_search", "input": {"query": "Tesla Q1 2026 analyst estimates"}, "output": "..."}
],
"tokens_used": 3847,
"steps": 3
}
Supports streaming via "stream": true which returns SSE events for each tool call and reasoning step.
Memory
Three-tier memory system that persists across sessions. The agent automatically manages what goes where — no manual curation required.
- Hot memory — The active conversation window. Everything the agent is currently working on stays in context.
- Warm memory — Auto-extracted facts, entities, and relationships persisted across sessions. The agent remembers your preferences, past decisions, and project context without re-explanation.
- Cold memory — Archived knowledge retrieved on demand via semantic search from vector stores.
GET/v1/agents/{agent_id}/memoryList all memories for an agent
POST/v1/agents/{agent_id}/memoryAdd a memory manually
POST/v1/agents/{agent_id}/memory/querySemantic search across agent memories
GET/v1/agents/{agent_id}/memory/statsMemory usage statistics per tier
DELETE/v1/agents/{agent_id}/memory/{memory_id}Delete a specific memory
Knowledge Bases
Upload documents (PDF, markdown, code, databases, URLs) and the platform auto-chunks, embeds, and indexes everything. At inference time, agents retrieve semantically relevant context and inject it into their prompt. Hybrid search combines dense vector similarity with keyword matching. Unlimited knowledge bases per account.
POST/v1/knowledge-basesCreate a knowledge base
GET/v1/knowledge-basesList all knowledge bases
POST/v1/knowledge-bases/{kb_id}/documentsUpload documents to a knowledge base
POST/v1/knowledge-bases/{kb_id}/querySemantic search within a knowledge base
DELETE/v1/knowledge-bases/{kb_id}Delete a knowledge base
Knowledge Graph
As conversations happen, the platform automatically extracts entities and relationships — people, organisations, concepts, events — and constructs a knowledge graph. Agents query this graph to find connected information that pure vector search would miss. The graph grows and refines itself over time.
POST/v5/kg/entitiesList or search entities in the knowledge graph
POST/v5/kg/relationsList or search relations between entities
POST/v5/kg/searchCombined entity + relation search
POST/v5/kg/auto-buildTrigger automatic graph construction from agent conversations
GET/v5/kg/statsGraph statistics (entity count, relation count, etc.)
MCP Servers
Connect to external tools and data sources via the Model Context Protocol. 9,973 pre-built MCP servers are available — file systems, SQL databases, REST APIs, browsers, code execution sandboxes, cloud services, and more. Your agent calls them as tools during execution.
GET/v1/mcp-serversList available MCP servers
POST/v1/mcp-serversRegister a custom MCP server
GET/v1/mcp-servers/{mcp_id}Get MCP server details and available tools
DELETE/v1/mcp-servers/{mcp_id}Remove an MCP server
Workflows
Define DAG (directed acyclic graph) pipelines that chain agents together. Each node is an agent with its own tools, memory, and knowledge. Workflows support branching on conditions, parallel execution, and error recovery with retry and fallback. Trigger on schedule (cron) or on events (webhook, message queue).
POST/v1/workflowsCreate a workflow
GET/v1/workflowsList all workflows
GET/v1/workflows/{workflow_id}Get workflow definition
POST/v1/workflows/{workflow_id}/runExecute a workflow
GET/v1/workflows/{workflow_id}/runsList workflow execution history
curl -X POST https://api.designat.ing/v1/workflows \
-H "Authorization: Bearer sk-or-..." \
-H "Content-Type: application/json" \
-d '{
"name": "Research Pipeline",
"nodes": [
{"id": "research", "agent_id": "agent_research"},
{"id": "validate", "agent_id": "agent_validator"},
{"id": "write", "agent_id": "agent_writer"}
],
"edges": [
{"from": "research", "to": "validate"},
{"from": "validate", "to": "write", "condition": "passed"},
{"from": "validate", "to": "research", "condition": "failed"}
],
"schedule": "0 9 * * 1"
}'
Skills
Installable prompt-and-tool templates that give agents new capabilities instantly. A skill packages a system prompt, tool definitions, MCP connections, and example interactions into one unit. Browse 6,000+ community skills or build your own.
GET/v1/skillsList available skills
GET/v1/skills/{skill_id}Get skill details
Guardrails
Seven layers of safety and compliance applied at inference time inside the runtime:
- Input filtering — Block prompt injections, jailbreaks, and malicious instructions
- Output validation — Scan completions for policy violations
- PII redaction — Detect and mask personal data
- Topic restriction — Confine agents to approved subject areas
- Toxicity detection — Filter harmful content
- Instruction-injection defence — Prevent tool outputs from hijacking agent behaviour
- Custom rules — Define your own allow/deny patterns per agent
POST/v5/guardrails/checkRun guardrail checks on text
GET/v5/guardrails/rulesList all guardrail rules
POST/v5/guardrails/rulesCreate a custom guardrail rule
GET/v5/guardrails/logsView guardrail audit logs
Multi-Agent
Swarm orchestration with supervisor pattern. A coordinator agent receives the request, breaks it into subtasks, and delegates to specialist agents. Each specialist has its own system prompt, tools, memory, and knowledge. Results merge back into a single coherent response.
POST/v5/agents/spawnSpawn a sub-agent from a parent agent
GET/v5/agents/spawnsList active sub-agents
GET/v5/agents/spawns/{spawn_id}Get sub-agent status and results
Scheduler
Cron and event-driven triggers. Schedule an agent to run on a recurring basis, or trigger a workflow when a webhook fires. No external cron service needed.
POST/v5/scheduleCreate a scheduled task (cron or event-driven)
GET/v5/scheduleList all scheduled tasks
DELETE/v5/schedule/{name}Cancel a scheduled task
Observability
Full execution traces for every request. Eight integrated tools:
- Distributed traces — Follow a request across agents, tools, and MCP servers
- Metrics — Latency, token usage, tool call counts
- Logs — Structured logging for every runtime event
- Error tracking — Automatic capture, grouping, and alerting
- Latency profiling — Identify bottlenecks in agent loops
- Token accounting — Per-agent, per-tool, per-request breakdown
- Cost attribution — Map token spend back to agents and workflows
- Audit logs — Immutable record of every action for compliance
GET/v5/observability/metricsSystem and request metrics
GET/v5/observability/errorsError tracking and grouping
GET/v5/observability/usageToken usage and cost attribution
GET/v5/observability/snapshotCurrent system state snapshot
Rate Limits
Rate limits are based on concurrency slots, not requests per minute. Each model has a concurrency_cost — larger models consume more slots. Your tier determines how many concurrent requests you can run.
| Tier | Concurrent Slots | Tokens/mo |
| Basic | 4 | 20B |
| Plus | 4 | 50B |
| Pro | 6 | 100B |
| Pro+ | 10 | 250B |
| Ultra | 20 | 500B |
| Enterprise | 25 | 1T |
Create, manage, and invoke custom tools that agents can call during conversations.
POST/v1/toolsCreate a custom tool
GET/v1/toolsList all tools
GET/v1/tools/{tool_id}Get tool details
DELETE/v1/tools/{tool_id}Delete a tool
POST/v5/tools/generateAuto-generate a tool from description
POST/v5/tools/generate-from-urlGenerate tool from API docs URL
GET/v5/tools/generatedList generated tools
POST/v5/tools/prefilterPre-filter tools for relevance
Pipelines API
Multi-step processing pipelines for chained operations.
POST/v5/pipelinesCreate a pipeline
GET/v5/pipelinesList pipelines
GET/v5/pipelines/{name}Get pipeline details
POST/v5/pipelines/{name}/runExecute a pipeline
GET/v5/pipelines/{name}/runsList execution history
Templates API
Prompt templates with variables, A/B variants, and analytics.
POST/v5/templatesCreate a template
GET/v5/templatesList templates
GET/v5/templates/{name}Get template
POST/v5/templates/{name}/renderRender with variables
POST/v5/templates/{name}/variantCreate A/B variant
GET/v5/templates/analyticsTemplate analytics
Plugins API
Discover, install, and invoke plugins from the marketplace.
GET/v5/plugins/searchSearch marketplace
GET/v5/plugins/listList installed plugins
GET/v5/plugins/categoriesList categories
POST/v5/plugins/registerRegister a plugin
POST/v5/plugins/ingestIngest from URL
POST/v5/plugins/invoke/{plugin_id}Invoke a plugin
GET/v5/plugins/find-for-taskFind plugins for a task
MCP Catalog API
Browse and install MCP servers.
GET/v5/mcp/searchSearch MCP catalog
GET/v5/mcp/categoriesList categories
GET/v5/mcp/statsCatalog stats
POST/v5/mcp/registerRegister MCP server
POST/v5/mcp/ingestIngest from URL
Hubs API
Search community hubs for skills, tools, knowledge, and workflows.
GET/v5/hubs/skills/searchSearch skills hub
GET/v5/hubs/skills/topTop-rated skills
GET/v5/hubs/tools/searchSearch tools hub
GET/v5/hubs/tools/categoriesTool categories
GET/v5/hubs/knowledge/searchSearch knowledge hub
GET/v5/hubs/knowledge/papersSearch papers
GET/v5/hubs/knowledge/booksSearch books
GET/v5/hubs/workflows/searchSearch workflows hub
GET/v5/hubs/workflows/liveLive community workflows
Memory API (Fine-Grained)
Fine-grained memory: recall, search, consolidation, archival, temporal.
GET/v5/memory/stats/{agent_id}Memory statistics
GET/v5/memory/recall/{agent_id}Recall all memories
GET/v5/memory/recall/{agent_id}/recentRecent memories
POST/v5/memory/recall/{agent_id}/searchSemantic search memories
GET/v5/memory/core/{agent_id}Core memories
GET/v5/memory/context/{agent_id}Working context
GET/v5/memory/archival/{agent_id}Archival memories
POST/v5/memory/archival/{agent_id}/searchSearch archival
POST/v5/memory/promotePromote archival to core
POST/v5/memory/consolidate/{agent_id}Consolidate memories
POST/v5/memory/temporal-searchSearch by time range
Facts & Extraction API
Extract structured facts from text.
POST/v5/facts/extractExtract facts from text
POST/v5/facts/extract-turnExtract from conversation turn
POST/v5/facts/extract-and-storeExtract and store in memory
POST/v5/facts/batch-extractBatch extract
Intent Classification API
Classify user intent for routing.
POST/v5/intent/classifyClassify message intent
Summarization API
Summarize conversations and agent memory.
POST/v5/summarize/messagesSummarize messages
POST/v5/summarize/agent/{agent_id}Summarize agent history
Tree of Thought API
Multi-step reasoning with decomposition.
POST/v5/tot/quickQuick ToT reasoning
POST/v5/tot/reasonFull ToT with branches
Auto-generate tools from descriptions or API docs.
POST/v5/tools/generateGenerate from description
POST/v5/tools/generate-from-urlGenerate from URL
GET/v5/tools/generatedList generated tools
GET/v5/tools/generated/{name}Get generated tool
Crypto Payments API
Accept crypto payments via CoinPayments.
POST/v5/crypto/create-invoiceCreate crypto invoice
GET/v5/crypto/invoice/{invoice_id}Check invoice status
POST/v5/crypto/webhookCoinPayments IPN webhook
Events API
Event sourcing for audit and replay.
GET/v5/eventsQuery event stream
GET/v5/events/statsEvent statistics
GET/v5/events/healthEvent store health
POST/v5/events/replay/{entity_type}/{entity_id}Replay events for entity
Rate Limits API
Configure per-key rate limits.
GET/v5/rate-limits/tiersRate limits per tier
POST/v5/rate-limits/configureConfigure custom limits
GET/v5/rate-limits/config/{api_key}Get key config
POST/v5/rate-limits/checkCheck if rate limited
POST/v5/rate-limits/incrementIncrement counter
Billing API
GET/v1/usageGet token usage for current billing period
GET/v1/subscription/meGet current subscription details
POST/v1/billing/checkoutCreate a checkout session for plan upgrade