Universal tool definition converter for multi-provider agents.
Convert tool definitions between OpenAI function calling, Anthropic tool use, MCP tool schema, and JSON Schema formats. Agents use ToolBridge to work across providers without manual format translation.
/api/v1/toolbridge/convertConvert a tool definition between formats
/api/v1/toolbridge/detectAuto-detect the format of a tool definition
/api/v1/toolbridge/batchConvert up to 100 tool definitions at once
curl -X POST https://neverparse.com/api/v1/toolbridge/convert \
-H 'Content-Type: application/json' \
-d '{"tool": {"type": "function", "function": {"name": "get_weather", "description": "Get weather", "parameters": {"type": "object", "properties": {"location": {"type": "string"}}, "required": ["location"]}}}, "from": "openai", "to": "anthropic"}'const res = await fetch(class="token-string">39;https:class="token-comment">//neverparse.com/api/v1/toolbridge/convert39;, {
method: class="token-string">39;POST39;,
headers: { class="token-string">39;Content-Type39;: class="token-string">39;application/json39; },
body: JSON.stringify({
tool: { type: class="token-string">39;function39;, function: { name: class="token-string">39;get_weather39;, description: class="token-string">39;Get weather39;, parameters: { type: class="token-string">39;object39;, properties: { location: { type: class="token-string">39;string39; } }, required: [class="token-string">39;location39;] } } },
from: class="token-string">39;openai39;,
to: class="token-string">39;anthropic39;
})
});
const { result } = await res.json();import requests
res = requests.post(&class="token-comment">#39;https://neverparse.com/api/v1/toolbridge/convert39;,
json={&class="token-comment">#39;toolclass="token-string">39;: {39;typeclass="token-string">39;: 39;functionclass="token-string">39;, 39;functionclass="token-string">39;: {39;nameclass="token-string">39;: 39;get_weatherclass="token-string">39;, 39;descriptionclass="token-string">39;: 39;Get weatherclass="token-string">39;, 39;parametersclass="token-string">39;: {39;typeclass="token-string">39;: 39;objectclass="token-string">39;, 39;propertiesclass="token-string">39;: {39;locationclass="token-string">39;: {39;typeclass="token-string">39;: 39;stringclass="token-string">39;}}, 39;requiredclass="token-string">39;: [39;locationclass="token-string">39;]}}}, 39;fromclass="token-string">39;: 39;openaiclass="token-string">39;, 39;toclass="token-string">39;: 39;anthropic39;})
result = res.json()[&class="token-comment">#39;result39;]Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYAll errors return structured JSON with code, message, and details fields.
{
"error": {
"code": "INVALID_INPUT",
"message": "The 39;data39; field is required",
"details": {
"field": "data",
"expected": "object | array"
}
}
}