Spark Developer Portal
Spark exposes a small, public, read-only API so developers and AI agents can integrate programmatically: check service status, discover the API surface, and call Spark tools through the Model Context Protocol (MCP). Member data (profiles, matches, messages, calls) is never public; it requires an authenticated member session inside the Spark app.
Spark API quickstart
curl https://spark-v8.vercel.app/api/v1 curl https://spark-v8.vercel.app/api/v1/status
Both endpoints return JSON and require no authentication. Errors are always JSON:
{ "error": { "code": "not_found", "message": "...", "hint": "..." } }
Spark REST API reference
OpenAPI specification: https://spark-v8.vercel.app/openapi.json - the machine-readable description of every public endpoint, with operation IDs, typed schemas, and error formats compatible with LLM function calling.
Public endpoints: GET /api/v1 (discovery document) and
GET /api/v1/status (liveness, name, and version). Unknown API paths return a
structured JSON 404; unsupported methods return a JSON 405.
Authentication
The public API (/api/v1/*) and the MCP endpoint require no
authentication and no API key. Member functionality (profiles, matches, messages,
calls) is not part of the public API; it is only available inside the Spark app after
signing in, using session tokens issued by Supabase Auth (email/password and supported
OAuth providers). There is no public way to act on behalf of a member.
Rate limits
The advertised policy is 60 requests per 60 seconds per client. Every API
response carries RFC RateLimit headers - RateLimit-Limit,
RateLimit-Remaining, and RateLimit-Reset (seconds until the window
resets) - so agents can self-throttle in real time. Responses also include a
Link header pointing at the OpenAPI spec (rel="service-desc") and
this portal (rel="help"). If the limit is exceeded the API returns
429 with a Retry-After header and a JSON error body with
code: "rate_limited".
Webhooks
Spark does not currently offer public webhooks. The public surface is read-only; poll
GET /api/v1/status (respecting the rate limit above) if you need to monitor
availability.
Spark MCP server (for AI agents)
Spark ships a Model Context Protocol server over Streamable HTTP at
POST /api/mcp, discoverable via
/.well-known/mcp. It speaks JSON-RPC 2.0 and currently
exposes two read-only tools, spark_get_status and
spark_get_api_index, so agents from Claude, ChatGPT, and other MCP clients can
check Spark natively. Example handshake:
curl -X POST https://spark-v8.vercel.app/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}'
Markdown content negotiation
Every content page on this site (including this one) serves Markdown when you send
Accept: text/markdown. Responses include Vary: Accept so caches
keep the variants separate.
Agent guidance
Read llms.txt for when-to-use guidance aimed at AI agents, and sitemap.xml for the full list of indexable pages. Questions or integration bugs: make a support request at nevetsinc.vercel.app/support.