vibecode
API Reference

Build with the VibeCode API

REST endpoints for the Vibe Feed, jobs, prompts, and builder profiles. OAuth 2.0, JSON in and out, cursor-paginated.

Getting started

Quickstart

Three steps: grab a token, pick a language, make your first call.

  1. 1Create a personal token in Settings → Developer. Store it as VIBECODE_TOKEN.
  2. 2Install the SDK for your language, or call the REST API directly.
  3. 3Make your first request and inspect the response.
curl "https://api.vibecode.xyz/v1/feed?limit=5" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"

Base URL & versioning

All requests go to https://api.vibecode.xyz/v1. We version the URL — breaking changes ship as /v2, never in-place. Deprecations are announced 6 months in advance in the changelog.

Authentication

Authentication

Every request must send a bearer token in the Authorization header.

Personal access tokens

Best for scripts, cron jobs, and single-user tools. Scoped to your account with the permissions you pick at creation time.

cURL
curl "https://api.vibecode.xyz/v1/profiles/me" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"

OAuth 2.0 (for apps)

Building an app that other builders install? Register an OAuth app in Integrations → Build your own and use the authorization code flow.

  1. Redirect the user to /oauth/authorize.
  2. Receive a code at your callback URL.
  3. Exchange it for an access token at /oauth/token.

Pagination

List endpoints use opaque cursors. Pass the next value from a response as the cursor query param on the next call. When next is null, you've reached the end.

Errors

Errors return a JSON body with error and message fields, plus a request ID header.

CodeNameMeaning
400bad_requestRequest was malformed or failed validation.
401unauthorizedMissing, expired, or invalid credentials.
403forbiddenAuthenticated but not allowed to perform this action.
404not_foundThe requested resource does not exist.
409conflictState conflict, e.g. duplicate resource.
422unprocessableSemantic validation failed on the payload.
429rate_limitedYou've exceeded your rate limit. Retry after the `Retry-After` header.
500server_errorUnexpected server error. Safe to retry with backoff.

Rate limits

Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers. On 429, honour Retry-After.

TierSustainedBurst
Anonymous60 req/min120
Personal token600 req/min1,200
OAuth app3,000 req/min6,000
EnterpriseCustomCustom
Endpoints

Vibe Feed

GET/feed

List feed posts

Returns a paginated slice of the public Vibe Feed. Supports filtering by tag, author, and time window. Newest posts first.

Parameters
cursor
query · string
Opaque cursor returned by a previous call. Omit for the first page.
limit
query · integer
Page size, 1–100. Defaults to 20.
tag
query · string
Filter by tag slug, e.g. `launch`, `hiring`.
author
query · string
Filter by builder username.
since
query · string
ISO-8601 timestamp; only posts created after this time.
Response codes
  • 200OKA page of feed posts.
  • 401UnauthorizedMissing or invalid token.
  • 429Too Many RequestsRate limit exceeded.
Request
curl "https://api.vibecode.xyz/v1/feed?tag=launch&limit=20" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "data": [
    {
      "id": "post_2ZkQx1",
      "author": { "username": "ananya", "name": "Ananya Rao" },
      "text": "Shipped v0.4 of my prompt playground ✨",
      "tags": ["launch", "ai"],
      "created_at": "2026-07-13T04:12:00Z",
      "metrics": { "likes": 128, "replies": 14 }
    }
  ],
  "next": "cursor_abc123"
}
POST/feed

Create a post

Publish a new post to the Vibe Feed on behalf of the authenticated builder.

Parameters
textrequired
body · string
Post body. Max 2,000 characters. Markdown allowed.
tags
body · string[]
Up to 5 tag slugs.
media
body · string[]
Array of asset URLs (images or short video).
Response codes
  • 201CreatedPost created.
  • 400Bad RequestValidation failed.
  • 401UnauthorizedMissing or invalid token.
Request
curl -X POST "https://api.vibecode.xyz/v1/feed" \
  -H "Authorization: Bearer $VIBECODE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Just deployed the new webhook signer!","tags":["shipping"]}'
Response
JSON
{
  "id": "post_2ZkQx2",
  "author": { "username": "you", "name": "You" },
  "text": "Just deployed the new webhook signer!",
  "tags": ["shipping"],
  "created_at": "2026-07-14T09:20:00Z"
}
Endpoints

Jobs

GET/jobs

List jobs

Search the jobs board. Filter by stack, city, remote-friendliness, and seniority. Results are ranked by recency and relevance.

Parameters
q
query · string
Full-text query across title and description.
stack
query · string[]
One or more stack slugs, e.g. `nextjs`, `supabase`.
city
query · string
City slug. Combine with `remote=true` to include remote roles.
remote
query · boolean
If true, includes fully-remote roles.
limit
query · integer
Page size, 1–100. Defaults to 20.
Response codes
  • 200OKA page of jobs.
  • 401UnauthorizedMissing or invalid token.
Request
curl "https://api.vibecode.xyz/v1/jobs?stack=nextjs&remote=true&limit=10" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "data": [
    {
      "id": "job_9F1a",
      "title": "Founding Full-Stack Engineer",
      "company": { "name": "Loopstack", "slug": "loopstack" },
      "location": "Remote",
      "stack": ["nextjs", "supabase", "typescript"],
      "salary": { "min": 90000, "max": 140000, "currency": "USD" },
      "posted_at": "2026-07-10T00:00:00Z"
    }
  ],
  "next": null
}
GET/jobs/{id}

Retrieve a job

Fetch a single job by its ID.

Parameters
idrequired
path · string
The job ID, e.g. `job_9F1a`.
Response codes
  • 200OKJob returned.
  • 404Not FoundNo job with that ID.
Request
curl "https://api.vibecode.xyz/v1/jobs/job_9F1a" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "id": "job_9F1a",
  "title": "Founding Full-Stack Engineer",
  "company": { "name": "Loopstack", "slug": "loopstack" },
  "description": "We're hiring our first engineer to build...",
  "stack": ["nextjs", "supabase"],
  "apply_url": "https://loopstack.co/apply"
}
Endpoints

Prompts

GET/prompts

List prompts

Browse the community prompt library. Filter by model, category, or minimum score.

Parameters
model
query · string
Model slug, e.g. `gpt-5`, `claude-4-opus`.
category
query · string
Category slug, e.g. `marketing`, `coding`.
min_score
query · number
Only return prompts with community score ≥ this value (0–5).
limit
query · integer
Page size, 1–100. Defaults to 20.
Response codes
  • 200OKA page of prompts.
Request
curl "https://api.vibecode.xyz/v1/prompts?model=gpt-5&min_score=4.5" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "data": [
    {
      "id": "prm_88",
      "title": "Landing page copy that converts",
      "body": "You are a senior conversion copywriter...",
      "model": "gpt-5",
      "category": "marketing",
      "score": 4.8,
      "author": { "username": "kiran" }
    }
  ],
  "next": null
}
Endpoints

Profiles

GET/profiles/{username}

Retrieve a builder profile

Public profile including XP, streak, badges, and recent projects.

Parameters
usernamerequired
path · string
The builder's handle, without `@`.
Response codes
  • 200OKProfile returned.
  • 404Not FoundNo profile with that username.
Request
curl "https://api.vibecode.xyz/v1/profiles/ananya" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "username": "ananya",
  "name": "Ananya Rao",
  "bio": "Building tiny AI tools in public.",
  "xp": 12480,
  "streak_days": 42,
  "badges": ["og", "shipper", "top-1"],
  "projects": [{ "id": "prj_31", "title": "Prompt Playground" }]
}
Endpoints

Webhooks

GET/webhooks

List webhook endpoints

Returns all webhook endpoints registered for the current workspace.

Response codes
  • 200OKEndpoints returned.
Request
curl "https://api.vibecode.xyz/v1/webhooks" \
  -H "Authorization: Bearer $VIBECODE_TOKEN"
Response
JSON
{
  "data": [
    {
      "id": "wh_1",
      "url": "https://example.com/hooks/vc",
      "events": ["post.created", "job.published"],
      "created_at": "2026-06-01T10:00:00Z"
    }
  ]
}
vibecode
Built in India · For builders, by builders