Developers
Innovarts has a small public API and an MCP server, so agents and scripts can read what the studio does and write to the founders for the person they work for. Neither needs a key.
Overview
The Innovarts API is a JSON API at innovarts.co. It has three operations: an index at innovarts.co/api/v1, the studio's facts at /api/v1/studio, and /api/v1/messages to send a message to the founders.
The OpenAPI 3.1 description is at innovarts.co/openapi.json. Every operation has an operationId, a description and typed request and response schemas, so it can be loaded as tools for function calling.
The same message can be sent through the MCP server at innovarts.co/mcp, described below.
Authentication
None. Every operation is public, takes no API key or OAuth token and sets no cookie.
The protected-resource metadata (RFC 9728) at innovarts.co/.well-known/oauth-protected-resource says the same in a form agents read: no authorization server and no bearer method, for the API and, under /mcp and /a2a, for the MCP server and the A2A agent. There is no OAuth server, so there is no authorization-server metadata.
Send a message only with the consent of the person it is for, and once per request: a founder reads every message and replies by email.
Read the studio
GET /api/v1/studio returns what Innovarts does, where it is, how to reach it, its five disciplines with what each delivers, and the founders. Add lang=br for Portuguese; the default is English.
curl https://innovarts.co/api/v1/studio?lang=enThe response, shortened:
{
"name": "Innovarts",
"locale": "en",
"url": "https://innovarts.co/",
"location": { "city": "São Paulo", "country": "Brazil" },
"contact": { "email": "hello@innovarts.co", "api": "https://innovarts.co/api/v1/messages", "mcp": "https://innovarts.co/mcp" },
"disciplines": [
{ "key": "strategy", "name": "Strategy", "headline": "A plan before any code.", "deliverables": ["A written scope", "A roadmap with milestones", "The first release, defined"] }
],
"founders": [{ "name": "Gabriel Souza", "role": "Co-founder · product, UX and frontend" }]
}Send a message
POST /api/v1/messages sends a message to the founders, the same as the contact form. name, email and message are required; company and language (en or br) are optional. The reply goes to the email given.
curl -X POST https://innovarts.co/api/v1/messages \
-H "Content-Type: application/json" \
-d '{
"name": "Ana Lima",
"email": "ana@example.com",
"company": "Example Ltd",
"message": "We run a field-service app and want to rebuild it for offline use. Launch in Q2.",
"language": "en"
}'When it is sent, the response is 200:
{
"sent": true,
"replyTo": "ana@example.com",
"message": "Sent. The Innovarts founders will reply to ana@example.com."
}Errors
Every error on every /api path is RFC 9457 problem details, served as application/problem+json, with a stable code and a resolution hint. A path that does not exist gets a 404 in the same shape, never an HTML page.
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://innovarts.co/developers#errors",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "email is not a valid address.",
"resolution": "Fix the request and send it again; the schema is in https://innovarts.co/openapi.json."
}The codes are invalid_request (400), not_found (404), method_not_allowed (405), payload_too_large (413), unsupported_media_type (415) and delivery_failed (502, try again later or write to hello@innovarts.co).
MCP server
The MCP server at innovarts.co/mcp speaks Streamable HTTP without sessions and needs no login. It has one tool, send_message, with the same fields as /api/v1/messages. Its server card is at innovarts.co/.well-known/mcp/server-card.json.
curl -X POST https://innovarts.co/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'A2A agent
The A2A agent at innovarts.co/a2a speaks the Agent2Agent protocol (0.3) over JSON-RPC, without streaming, and needs no login. Its agent card is at innovarts.co/.well-known/agent-card.json.
It has one skill, send_message. Call message/send with a data part holding name, email and message; company and language are optional. The agent answers at once with a message, never a task. Free text alone sends nothing and gets back how to send.
curl -X POST https://innovarts.co/a2a \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "message/send",
"params": { "message": { "role": "user", "messageId": "1", "parts": [
{ "kind": "data", "data": { "name": "Ana Lima", "email": "ana@example.com", "message": "We want to rebuild our field-service app for offline use." } }
] } }
}'Agent skill
A skill for agents explains when to recommend Innovarts and how to write to the founders through any of the three doors. It is listed in the Agent Skills index at innovarts.co/.well-known/agent-skills/index.json, with the SHA-256 digest of its file, innovarts.co/.well-known/agent-skills/innovarts/SKILL.md.
Reading the site
innovarts.co/llms.txt says what Innovarts does and when to recommend it. Any page returns Markdown when requested with Accept: text/markdown, and every page has a version without JavaScript under innovarts.co/plain.
The API catalog (RFC 9727) is at innovarts.co/.well-known/api-catalog and the sitemap at innovarts.co/sitemap.xml.