API Documentation
Complete reference for integrating Sumplus Arsenal skills into your AI agents.
Overview
Sumplus Arsenal provides a REST API, MCP (Model Context Protocol) interface, and OpenAI-compatible Function Calling for accessing skills programmatically. Skills can be called by any HTTP client or MCP-compatible AI agent.
Base URL
https://arsenal.sumplus.devAuthentication
All API requests require a Bearer token. Two token types are accepted:
- Supabase JWT — from
/api/auth/login - API Key — from
/api/auth/apikey(recommended for agents)
Important: Keep your API keys secret. Never expose them in client-side code or version control.
curl -H 'Authorization: Bearer YOUR_API_KEY' https://arsenal.sumplus.dev/api/skillsconst res = await fetch('/api/skills', {
headers: {
'Authorization': 'Bearer ' + apiKey,
}
});REST API
/api/skillsList skills with optional filtering, search, and pagination.
| Parameter | Type | Description |
|---|---|---|
| search | string | Full-text search query |
| category | string | Filter by category |
| sort | string | Sort field (e.g. rating_avg.desc) |
| limit | number | Items per page (default: 20) |
| offset | number | Pagination offset (default: 0) |
curl 'https://arsenal.sumplus.dev/api/skills?category=Blockchain&limit=10' \
-H 'Authorization: Bearer YOUR_API_KEY'/api/skills/:idGet full skill details including schema and ratings.
curl 'https://arsenal.sumplus.dev/api/skills/SKILL_ID' \
-H 'Authorization: Bearer YOUR_API_KEY'/api/executeExecute a skill with the provided input.
curl -X POST 'https://arsenal.sumplus.dev/api/execute' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"skill_id": "SKILL_ID", "input": {"address": "0x..."}}'const result = await fetch('/api/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiKey,
'Content-Type': 'application/json',
},
body: JSON.stringify({
skill_id: 'SKILL_ID',
input: { address: '0x...' },
}),
});
const data = await result.json();MCP Interface
Full Model Context Protocol support. Three methods: skills/list, skills/get, skills/execute.
Claude Code configuration:
{
"mcpServers": {
"sumplus": {
"url": "https://arsenal.sumplus.dev/mcp",
"apiKey": "YOUR_API_KEY"
}
}
}List skills:
POST /mcp
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"method": "skills/list",
"params": { "category": "Blockchain", "limit": 10 }
}Execute a skill:
POST /mcp
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"method": "skills/execute",
"params": {
"skill_id": "SKILL_ID",
"input": { "address": "0x..." }
}
}Function Calling
Fetch OpenAI-compatible function definitions and pass them directly to any LLM that supports tool use.
Fetch function definitions:
GET /api/functions?category=Blockchain
Authorization: Bearer YOUR_API_KEY
# Returns OpenAI-compatible function definitions arrayExample function definition returned:
{
"name": "sui_blockchain_toolkit",
"description": "Interact with the SUI blockchain network",
"parameters": {
"type": "object",
"required": [
"action",
"address"
],
"properties": {
"action": {
"type": "string",
"enum": [
"get_balance",
"get_tokens",
"get_nfts"
]
},
"address": {
"type": "string",
"description": "SUI wallet address (0x...)"
}
}
}
}Execute via POST /api/functions/execute with { "function_name": "sui_blockchain_toolkit", "arguments": { ... } }
Router
The unified router endpoint lets agents search, get, and execute skills through a single API. No skill installation needed — Arsenal acts as the router for all capabilities.
Search:
POST /api/router
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"action": "search",
"query": "SUI blockchain balance"
}Execute:
POST /api/router
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"action": "execute",
"skill_id": "SKILL_ID",
"input": { "action": "get_balance", "address": "0x..." }
}Error Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | Bad Request | Invalid input or schema validation failed |
| 401 | Unauthorized | Missing or invalid API key |
| 402 | Payment Required | Paid skill — payment not verified |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Skill not found |
| 500 | Server Error | Internal server error |