API Documentation

Endpoint-by-endpoint reference for the guinacio.cv public API: parameters, responses, error codes and the OpenAPI 3.1 specification.

Overview

The guinacio.cv Agent API is a public, unauthenticated JSON API. Read endpoints have no side effects and are safe to call freely. The single write endpoint never books anything on its own: it emails the attendee a confirmation link, and only their confirmation creates the calendar event.

The machine-readable specification lives at https://guinacio.cv/openapi.json (OpenAPI 3.1, also available as YAML at /openapi.yaml). Every operation has a unique operationId, typed parameters and response schemas, so it can be loaded directly into an LLM function-calling toolchain.

Conventions

All responses are JSON with UTF-8 encoding. Timestamps are ISO-8601 with an explicit UTC offset; a datetime without an offset is rejected, because a booking must be unambiguous. Errors always carry a stable machine-readable code alongside a human message, and never arrive as an HTML page.

MCP connection details

Connect to the Model Context Protocol server at https://guinacio.cv/mcp over Streamable HTTP, protocol version 2026-07-28. No authentication is required.

Claude Code: claude mcp add --transport http guinacio-cv https://guinacio.cv/mcp

GET /api/agent/portfolio (getPortfolio)

Get the full CV: profile, experience, projects and skills

Returns everything the read tools expose in a single payload. Pure read, no side effects, no authentication. Use this when you need broad context about Guilherme in one call.

GET /api/agent/availability (getAvailability)

List real free meeting slots

Returns slots that are genuinely free on the calendar, already filtered by the booking policy: windows 18:00-24:00 and 05:00-06:00 America/Sao_Paulo, never the same local day, at least 12 hours of notice and at most 21 days ahead. Call this before scheduling and only submit a `start` value returned here.

POST /api/agent/schedule (requestMeeting)

Request a meeting (sends the attendee a confirmation email)

Validates the request and emails a signed confirmation link to the attendee. The calendar event with a Google Meet link is created ONLY after that link is opened and confirmed, within 60 minutes. Because the attendee completes the booking themselves, the email address must belong to the person actually attending. Limits: 3 requests per day per client, 3 confirmed bookings per day overall, one upcoming meeting per attendee.

GET /api/agent (getApiIndex)

Index of this API and the other agent surfaces

Lists every endpoint with its operation id, plus links to the OpenAPI spec, docs, llms.txt and MCP endpoint.

GET /openapi.json (getOpenApiSpec)

This OpenAPI 3.1 specification

The machine-readable description of this API. Also available as YAML at /openapi.yaml.

GET /.well-known/mcp.json (getMcpManifest)

MCP server manifest

Describes the Model Context Protocol endpoint at /mcp, its transport and its tools.

Error codes

Every JSON error response carries one of the following stable codes: