ShipIt Intent API
Let AI coding assistants automatically log your ships, track progress, and manage projects
Quick Start
1. Generate your API key
Visit your profile page and generate an API key.
2. Set environment variable
export SHIPIT_API_KEY=shipit_your_key_here
3. Add to your AI assistant config
For Claude Code, add to your CLAUDE.md:
# ShipIt Integration
When I mention shipping, releasing, or deploying code:
1. Fetch https://shipit.day/api/v1/intent to understand capabilities
2. Use my SHIPIT_API_KEY environment variable for authentication
3. Log releases/updates to ShipIt automatically
My ShipIt username: [your-username]
Try It Now
Test the API in 30 seconds
1. Discover all intents (no auth required)
curl https://shipit.day/api/v1/intent | jq
Generate your API key to see personalized examples
Sign In to Get StartedIntent Discovery
The Intent API is self-describing. AI agents can discover all available capabilities automatically:
GET https://shipit.day/api/v1/intent
No authentication required. Returns JSON schema with all available intents, trigger phrases, and examples.
Authentication
All API requests (except intent discovery) require authentication using your API key:
Header (Recommended)
X-Api-Key: shipit_your_key_here
Query Parameter (Alternative)
?api_key=shipit_your_key_here
Rate Limits
100 requests per minute
Per API key
Response headers:
X-RateLimit-Limit- Maximum requests per windowX-RateLimit-Remaining- Requests remainingRetry-After- Seconds to wait (when rate limited)
Available Intents
Create Project
Create a new project to track
/api/v1/projects
Trigger phrases:
View example request
curl -X POST https://shipit.day/api/v1/projects \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"project": {
"name": "TaskFlow",
"github_repo_url": "https://github.com/username/taskflow",
"deadline": "2026-03-15",
"description": "AI-powered task management",
"launch_goals": [
"Complete user authentication",
"Build task creation UI",
"Implement AI suggestions"
]
}
}'
List Projects
Get all your projects (owned + collaborated)
/api/v1/projects
Query parameters:
status- Filter by: active, launched, abandoned, failedpage- Page number (default: 1)per_page- Items per page (default: 20, max: 100)
Log Journal Entry
Create a build log / progress update
/api/v1/projects/:slug/journal_entries
Trigger phrases:
Visibility Options:
private_entry
Only you can see this (default)
team_only
Your team members can see this
public_entry
Everyone can see this
Entry Types:
regular
Standard journal entry (respects visibility)
milestone
Major achievement (always public, overrides visibility)
View examples
Private Entry (Just Me)
curl -X POST https://shipit.day/api/v1/projects/yourproject/journal_entries \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"journal_entry": {
"title": "Private development notes",
"content": "Working on refactoring. Still debugging.",
"visibility": "private_entry",
"entry_type": "regular"
}
}'
Team Entry (My Team)
curl -X POST https://shipit.day/api/v1/projects/yourproject/journal_entries \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"journal_entry": {
"title": "Sprint planning update",
"content": "Team sync: focusing on user onboarding next week.",
"visibility": "team_only",
"entry_type": "regular"
}
}'
Public Entry (Everyone)
curl -X POST https://shipit.day/api/v1/projects/yourproject/journal_entries \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"journal_entry": {
"title": "Public update",
"content": "Making great progress on the new features!",
"visibility": "public_entry",
"entry_type": "regular"
}
}'
Milestone (Always Public)
curl -X POST https://shipit.day/api/v1/projects/yourproject/journal_entries \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"journal_entry": {
"title": "Version 1.0 Released!",
"content": "Major milestone: First production release is live!",
"entry_type": "milestone"
}
}'
# Note: Milestones are ALWAYS public, even if you set visibility to private_entry
Mark Shipped
Mark project as successfully launched
/api/v1/projects/:slug/ship
Trigger phrases:
Abandon Project
Send project to graveyard
/api/v1/projects/:slug/abandon
Resurrect Project
Restore project from graveyard
/api/v1/projects/:slug/resurrect
Update Project
Modify project details (limited fields)
/api/v1/projects/:slug
Authorization: Owner only
Allowed fields:
description- Project descriptionproducthunt_url- Product Hunt URL
Note: name, deadline, and github_repo_url cannot be changed after creation
View example
curl -X PATCH https://shipit.day/api/v1/projects/taskflow \
-H "X-Api-Key: shipit_your_key" \
-H "Content-Type: application/json" \
-d '{
"project": {
"description": "Updated description",
"producthunt_url": "https://producthunt.com/posts/myapp"
}
}'
Complete Goal
Mark a launch goal as completed
/api/v1/projects/:slug/launch_goals/:goal_id/complete
Authorization: Team members (owner + collaborators)
View example
curl -X PATCH https://shipit.day/api/v1/projects/taskflow/launch_goals/uuid-here/complete \
-H "X-Api-Key: shipit_your_key"
Uncomplete Goal
Mark a goal as not completed
/api/v1/projects/:slug/launch_goals/:goal_id/uncomplete
Authorization: Team members (owner + collaborators)
Get Project Stats
Get public statistics for a project
/api/v1/projects/:slug/stats
✓ Public (no auth required)
View example
curl https://shipit.day/api/v1/projects/taskflow/stats | jq
Get Project Activity
Get activity feed (journal entries)
/api/v1/projects/:slug/activity
Query parameters:
page- Page number (default: 1)per_page- Items per page (default: 20, max: 50)
Note: Respects visibility rules (public, team, private)
Delete Project
Permanently delete a project
/api/v1/projects/:slug
Authorization: Owner only
Requires confirmation: confirm=delete
View example
curl -X DELETE https://shipit.day/api/v1/projects/taskflow?confirm=delete \
-H "X-Api-Key: shipit_your_key"
Update Journal Entry
Update a journal entry
/api/v1/projects/:slug/journal_entries/:id
Authorization: Author only
Allowed fields:
title- Entry titlecontent- Entry contentvisibility- private_entry, team_only, public_entry
Note: Milestone entries remain public regardless of visibility parameter
Delete Journal Entry
Delete a journal entry
/api/v1/projects/:slug/journal_entries/:id
Authorization: Author only
View example
curl -X DELETE https://shipit.day/api/v1/projects/taskflow/journal_entries/123 \
-H "X-Api-Key: shipit_your_key"
Invite Collaborator
Create an invite link for a team member
/api/v1/projects/:slug/collaborators/invite
Authorization: Owner only
Team limit: Maximum 4 collaborators (plus owner = 5 total)
View example
curl -X POST https://shipit.day/api/v1/projects/taskflow/collaborators/invite \
-H "X-Api-Key: shipit_your_key"
Get User Profile
Get current user's profile and stats
/api/v1/user/me
Returns your profile, API usage stats, and project statistics
View example
curl -H "X-Api-Key: shipit_your_key" \
https://shipit.day/api/v1/user/me | jq
Integration Examples
Claude Code
Add to your project's CLAUDE.md:
# ShipIt Integration
Automatically track my progress on ShipIt:
- When I ship features, log them to ShipIt
- Use SHIPIT_API_KEY environment variable
- My username: [your-username]
User Workflow Example
Developer: "I just shipped the authentication feature!"
Claude Code:
- Fetches
/api/v1/intent - Matches "shipped" → log_journal_entry intent
- Calls API to create journal entry
- Responds: "Logged to ShipIt! https://shipit.day/projects/your-project"
Error Handling
All errors return JSON with an error field:
Missing or invalid API key
You don't have permission for this action
Resource doesn't exist
Validation error (includes errors field)
Rate limit exceeded (check Retry-After header)