Docs
API reference
Everything you can do on Raws.dev, you can do from a script. Post a devlog from your deploy pipeline, pull your streak into a status page, sync launches into your own dashboard. JSON over HTTPS, token auth, no SDK required.
Base URL: https://raws.dev/api/v1
1. Authentication
Create a token under Settings → API tokens, then send it as a bearer token. The plaintext token is shown once, at creation — we only store a hash, so nobody can recover it for you afterwards.
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
https://raws.dev/api/v1/me
Endpoints marked public below need no token at all. Everything else does.
2. Scopes
A token is either read-only or read-and-write, chosen when you create it. There is deliberately no finer granularity: every write endpoint acts on the same account, so splitting them further would suggest a separation that does not exist.
- Read only — enough for dashboards, status pages, stats. Safe to paste into a CI log by accident.
- Read and write — needed to publish devlogs, upvote, comment, manage projects. Treat it like your password.
A read-only token calling a write endpoint gets 403.
3. Rate limits
Per minute, by plan:
| Plan | Requests / min |
|---|---|
| No token | 40 |
| Free | 60 |
| Pro | 240 |
| Builder | 600 |
Every response carries x-ratelimit-limit and
x-ratelimit-remaining. Going over returns
429 with a retry-after header —
wait that many seconds rather than retrying immediately.
4. Endpoints
36 endpoints. Paths are relative to https://raws.dev/api/v1.
collabs
| GET | /collabs | public |
| POST | /collabs | write |
| DELETE | /collabs/{collab} | write |
comments
| GET | /comments | public |
| POST | /comments | write |
| DELETE | /comments/{comment} | write |
devlogs
| GET | /devlogs | public |
| GET | /devlogs/{devlog} | public |
| POST | /devlogs | write |
| DELETE | /devlogs/{devlog} | write |
integrations
| GET | /integrations | read |
| DELETE | /integrations/{integration} | write |
| POST | /integrations/{integration}/sync | write |
launches
| GET | /launches | public |
| GET | /launches/{launch} | public |
| POST | /launches | write |
| DELETE | /launches/{launch} | write |
me
| GET | /me | read |
notifications
| GET | /notifications | read |
| GET | /notifications/unread-count | read |
| POST | /notifications/{id}/read | write |
| POST | /notifications/read-all | write |
| DELETE | /notifications/{id} | write |
projects
| GET | /projects | public |
| GET | /projects/{project} | public |
| POST | /projects | write |
| PATCH | /projects/{project} | write |
| DELETE | /projects/{project} | write |
search
| GET | /search | public |
ship
| POST | /ship | write |
upvotes
| POST | /upvotes | write |
users
| GET | /users/{handle} | public |
| GET | /users/{handle}/proof | public |
| GET | /users/{handle}/proof/{date} | public |
| POST | /users/{user}/follow | write |
| DELETE | /users/{user}/follow | write |
5. Errors
Standard HTTP status codes, with a JSON body carrying a message.
401— missing, malformed or revoked token.403— the token lacks the write scope, or you don't own the resource.404— no such resource, or it is private and not yours.422— validation failed;errorslists the offending fields.429— over your rate limit; seeretry-after.
6. Recipes
Ship a quick update from anywhere
The Ship Inbox endpoint is the shortest path from a terminal, deploy hook or automation to a public ship. It always creates a streak-counted devlog. Use a project slug when you want the update attached to a project.
curl -X POST https://raws.dev/api/v1/ship \
-H "Authorization: Bearer $RAWS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"content":"Shipped the first onboarding flow.","project_slug":"my-project"}'
Pass "publish": false to save a private draft instead. The endpoint accepts either project_id or project_slug, never both.
Post a devlog when a deploy succeeds
Drop this at the end of your CI pipeline. Needs a write token.
curl -X POST https://raws.dev/api/v1/devlogs \
-H "Authorization: Bearer $RAWS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"content": "Shipped '"$GIT_TAG"' to production.", "kind": "devlog"}'
kind is post by default (a community share).
Pass devlog to have it count toward your ship streak.
Pull your streak into a status page
Read-only token is enough.
curl -s -H "Authorization: Bearer $RAWS_TOKEN" \
-H "Accept: application/json" \
https://raws.dev/api/v1/me | jq '.data.streak.current_days'
Read a builder's public profile — no token
curl -s -H "Accept: application/json" https://raws.dev/api/v1/users/nammuseb
Embed a builder's public proof — no token
The proof payload includes the score, four capped dimensions, dated history points, source disclosures and a SHA-256 snapshot hash.
curl -s -H "Accept: application/json" https://raws.dev/api/v1/users/nammuseb/proof | jq '{score, level, as_of, snapshot_hash, trend}'
Historical snapshots can be verified at /api/v1/users/{handle}/proof/{YYYY-MM-DD}; the returned hash identifies that exact public snapshot.