ShipStacked has a real API. Bearer token auth. Clean JSON. Your agent can update your profile, post your builds, and keep your Velocity Score high — without you lifting a finger.
Three steps. Your agent is live in under 5 minutes.
Create your ShipStacked profile
Sign up at shipstacked.com/join — takes 5 minutes. This is the one thing your agent can't do for you, and that's intentional.
Generate an API key
Go to your dashboard → API Keys section → Create key. Name it after your agent. Copy it — you'll only see it once.
Brief your agent
Give your agent the key and the system prompt below. It handles the rest.
Base URL: https://shipstacked.com/api/v1
Authentication: Authorization: Bearer sk_ss_...
/meFetch your full profile, skills, projects, velocity score, and verification status.
/profileUpdate profile fields and skills. Only send fields you want to change.
/buildsPost a build to the Build Feed. Include outcome and url to count towards auto-verification.
/buildsFetch your 20 most recent build posts.
/avatarUpload a profile photo. Accepts base64 image or public image URL.
All fields are optional. Only include what you want to update.
full_namestringYour full namerolestringYour role title e.g. 'AI Automation Engineer'biostringOne-line bio shown on your profile cardaboutstringLonger about sectionlocationstringCity, Countryavailabilitystringfreelance | full-time | contract | part-time | openprimary_professionstringDeveloper | Designer | Consultant | Marketer | Founder | Otherday_ratestringUnder $200/day | $200-500/day | $500-1000/day | $1000+/daytimezonestringe.g. UTC+0 (GMT)languagesstring[]Spoken languages e.g. ['English', 'Spanish']github_urlstringFull URL to your GitHub profilex_urlstringFull URL to your X/Twitter profilelinkedin_urlstringFull URL to your LinkedIn profilewebsite_urlstringYour personal site or portfolioskillsobject[]Array of { category, name } — replaces all existing skillsprojectsobject[]Array of { title, description, outcome, project_url } — replaces all existing projectspublishedbooleanSet to true to make your profile publicValid skill categories:
claude_use_caselanguageframeworkai_toolllmdomain# JavaScript / Node.js
const res = await fetch('https://shipstacked.com/api/v1/profile', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer sk_ss_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
role: 'AI Automation Engineer',
bio: 'I build production-grade AI systems that eliminate manual work at scale.',
location: 'London, UK',
availability: 'freelance',
primary_profession: 'Developer',
day_rate: '$500-1000/day',
skills: [
{ category: 'claude_use_case', name: 'Automation and workflows' },
{ category: 'claude_use_case', name: 'Agent systems' },
{ category: 'ai_tool', name: 'Claude Code' },
{ category: 'framework', name: 'n8n' }
]
})
})titlestringrequiredWhat you built — keep it specificproblem_solvedstringWhat problem this solvedoutcomestringThe measurable result. Required for auto-verification.tools_usedstringe.g. Claude API, n8n, Supabasetime_takenstringe.g. 2 weekends, 4 daysurlstringLink to the live project. Required for auto-verification.Auto-verification tip: Include both outcome and url in your build posts. These are required for ShipStacked to auto-verify your profile. Your agent should always include them.
# JavaScript / Node.js
const res = await fetch('https://shipstacked.com/api/v1/builds', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_ss_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'AI contract review tool for a law firm',
problem_solved: 'Contract reviews were taking 4 hours each.',
outcome: 'Review time cut from 4 hours to 20 minutes. Client is productising it.',
tools_used: 'Claude API, n8n, Supabase',
time_taken: '2 weekends',
url: 'https://yourproject.com'
})
})# JavaScript / Node.js — recommended for agents
const res = await fetch('https://shipstacked.com/api/v1/me', {
headers: { 'Authorization': 'Bearer sk_ss_your_key_here' }
})
const { profile } = await res.json()
# Terminal (must be single line — no line breaks)
curl https://shipstacked.com/api/v1/me -H "Authorization: Bearer sk_ss_your_key_here"{
"ok": true,
"profile": {
"username": "james-m",
"full_name": "James M.",
"role": "AI Automation Engineer",
"verified": true,
"published": true,
"velocity_score": 74,
"github_connected": false,
"skills": [
{ "category": "claude_use_case", "name": "Automation and workflows" },
{ "category": "ai_tool", "name": "Claude Code" }
],
"profile_url": "https://shipstacked.com/u/james-m"
}
}Copy this prompt, paste in your API key, and give it to your Claude agent. It will keep your profile updated automatically every time you tell it about something you shipped.
You are my ShipStacked profile manager. Your job is to keep my builder profile
current and post my builds automatically.
My API key: sk_ss_[YOUR_KEY]
Base URL: https://shipstacked.com/api/v1
When I tell you about something I shipped:
1. POST to /builds with the title, problem_solved, outcome, tools_used, time_taken, and url
2. If my skills or role have changed, PATCH /profile to update them
3. Confirm the post_url so I can share it
Always include outcome and url in build posts — they're required for verification.
Current profile: GET /me to check my current state before making updates.Ready to automate?
Sign up as a builder, go to your dashboard, and generate a key.
Your agent does the rest.