SprintFlint API.
For agents and humans.
Programmatic access to projects, sprints, tickets, and comments. REST endpoints, JSON payloads, token authentication, and an OpenAPI 3 spec. Built for AI coding agents (Cursor, Claude Code, Codex) and for engineers who want to script their sprint workflow.
Authentication
Every request needs a Bearer token. Generate one from your account settings. Tokens are scoped to your organisation and revocable.
Authorization: Bearer YOUR_TOKEN
Accept: application/json
Content-Type: application/json
Quick start
List your projects in four lines of code. Pick the sample that matches your stack.
curl
curl https://sprintflint.com/api/v1/projects \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Ruby
require 'net/http'
require 'json'
uri = URI('https://sprintflint.com/api/v1/projects')
req = Net::HTTP::Get.new(uri)
req['Authorization'] = 'Bearer YOUR_TOKEN'
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)
Python
import requests
r = requests.get(
'https://sprintflint.com/api/v1/projects',
headers={'Authorization': 'Bearer YOUR_TOKEN'}
)
print(r.json())
Node
const res = await fetch('https://sprintflint.com/api/v1/projects', {
headers: { Authorization: 'Bearer YOUR_TOKEN' }
});
const data = await res.json();
console.log(data);
Resource model
Core resources with consistent CRUD semantics across all of them.
Projects
Top-level container. GET /api/v1/projects lists all projects in your organisation. Create, update, delete with the matching verbs.
Sprints
Time-boxed iterations within a project. POST /api/v1/projects/:id/sprints/:id/activate starts a sprint. /complete ends it.
Issues (tickets)
The unit of work. Live inside sprints. Status, story points, assignee, labels, and free-form descriptions in markdown.
Comments
Per-ticket conversation thread. AI agents can post status updates, link PRs, or surface blockers without leaving the editor.
For AI coding agents
SprintFlint is designed to be readable and operable by AI agents. The public surfaces:
mcp.sprintflint.com
Live MCP server (Model Context Protocol). Connect from Claude Desktop, Claude Code, Cursor, or any MCP-compatible client to read tickets, create issues, advance sprints, and query velocity from inside the editor. Bearer token auth, MCP 2025-06-18.
/api-docs/v1/swagger.yaml
OpenAPI 3 spec. Drop into Cursor, Claude Code, or any agent that consumes OpenAPI. Authentication, schemas, examples; all there.
Connect Claude Desktop in 30 seconds
Add SprintFlint as an MCP server in your Claude Desktop config and you can ask Claude to advance sprints, score velocity, or open tickets without leaving the conversation.
{
"mcpServers": {
"sprintflint": {
"url": "https://mcp.sprintflint.com/",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Get YOUR_TOKEN from Account Settings. Same token as the REST API.
Using a different editor? The MCP Config Generator emits paste-ready snippets for Cursor, Claude Code and Zed too.
Rate limits and conventions
- Base URL:
https://sprintflint.com/api/v1 - Auth:
Authorization: Bearer YOUR_TOKEN - Format: JSON request and response.
Content-Type: application/jsonon writes. - Errors: Standard HTTP status codes. Body is
{ "error": "human-readable message" }on 4xx/5xx. - Pagination:
?page=N&per_page=Mon collection endpoints.per_pagedefaults to 25, max 100. - Rate limit: 600 requests / minute / token.
429on exceed withRetry-Afterheader.
Build something with the API
Sprint dashboards. Custom reports. Auto-import from Linear or Jira. Slack bots. AI agents. The free plan includes API access; no card, no upsell.