API
The shipi API allows you to generate release notes programmatically.
Base URL
https://api.the dashboard/v1
Authentication
Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Endpoints
POST /generate
Generate release notes from commits.
curl -X POST https://api.the dashboard/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"commits": [
{
"hash": "abc123",
"message": "feat: add dark mode toggle",
"diff": "optional diff content"
}
],
"options": {
"audience": "changelog",
"tickets": true
}
}'
Request body
| Field | Type | Required | Description |
|---|---|---|---|
commits | array | Yes | Array of commit objects |
commits[].hash | string | Yes | Commit hash |
commits[].message | string | Yes | Commit message |
commits[].diff | string | No | Commit diff |
options.audience | string | No | changelog, internal, executive |
options.tickets | boolean | No | Extract ticket references |
options.format | string | No | markdown, json, text |
Response
{
"success": true,
"data": {
"content": "## What's New\n\n- Added dark mode toggle",
"format": "markdown",
"tokens_used": 150
}
}
GET /usage
Get your current usage.
curl https://api.the dashboard/v1/usage \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"success": true,
"data": {
"plan": "pro",
"generations_used": 42,
"generations_limit": 500,
"period_ends": "2024-02-01T00:00:00Z"
}
}
Errors
| Status | Description |
|---|---|
| 400 | Invalid request body |
| 401 | Invalid or missing API key |
| 429 | Rate limit exceeded |
| 500 | Server error |
Error response format:
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded your monthly generation limit"
}
}
Rate limits
| Plan | Generations/month |
|---|---|
| Starter | 50 |
| Pro | 500 |
Rate limit headers are included in responses:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 458
X-RateLimit-Reset: 1706745600