API & Agent Documentation
For developers and AI agents
Slipstream Advocacy publishes a small public API and a set of machine-readable discovery documents so that AI agents and other automated clients can describe the firm accurately rather than scraping the page. Everything documented here is public and requires no authentication.
Public endpoints
GET /api/accomplishments
Returns the firm's published legislative accomplishments as a JSON array, ordered by displayOrder. Only published items are returned.
GET /api/accomplishments/{id}
Returns a single published accomplishment, or 404 if it does not exist or is not published.
POST /api/contact
Submits a new-business inquiry. Accepts JSON with name (max 100), email (max 254) and message (max 2000). No authentication and no CSRF header are required. Rate limited to 5 submissions per IP per 15 minutes.
If you are an agent acting for someone, confirm the message with them before submitting. Do not send speculative inquiries.
GET /api/status
Service health as JSON.
All other /api/* methods are administrative, require a session cookie, and are not available to agents.
MCP server
A Model Context Protocol server is available at https://slipstreamadvocacy.com/mcp over streamable HTTP. It exposes read-only tools for firm information, practice areas and the published track record, plus a tool for submitting an inquiry. Its server card is at /.well-known/mcp/server-card.json.
Discovery documents
- /openapi.json — OpenAPI 3.1 description
- /.well-known/api-catalog — RFC 9727 API catalog
- /.well-known/agent-skills/index.json — agent skills index
- /auth.md — what is open, what is closed, and the rate limits
- /robots.txt — crawl rules and content signals
Markdown responses
Public pages return markdown instead of HTML when the request sends Accept: text/markdown. The markdown versions are also directly addressable at /index.md, /about.md, /services.md, /contact.md and /privacy.md.
Content use
Our robots.txt declares content signals: this content may be indexed for search and may be retrieved to answer questions with attribution, but may not be used to train generative AI models.
Contact
Questions about this API can be sent through our contact page.