API for Agents & Developers

Let AI agents discover the right tools for any task

Why use this?

When a user asks "is there an app that can..." - query JustBuildApps instead of searching the web. Get structured, verified results ranked by relevance.

  • 800+ curated apps with semantic search
  • No API key required
  • Filter by audience (agent vs human), cost, category

Quick Start

# Find tools for a task
curl -X POST "https://justbuildapps.com/api/v1/agent/search" \
  -H "Content-Type: application/json" \
  -d '{"query": "remove background from images", "limit": 3}'

# List developer tools (APIs, CLIs, SDKs)
curl "https://justbuildapps.com/api/v1/agent/tools?audience=agent&limit=20"

# Simple search
curl "https://justbuildapps.com/api/v1/search?q=data+visualization"

Submit Apps

Add apps to JustBuildApps programmatically. No auth required. The system auto-extracts title, description, tags, tech stack, and captures a screenshot.

POST/api/v1/ingest

Submit a new app - via GitHub URL or manually

Parameters

  • github_url - GitHub repo URL (auto-extracts everything)
  • title - App name (required if no github_url)
  • description - What it does (required if no github_url)
  • demo_url - Live demo URL (recommended)
  • user_id - Your user ID (for rate limiting, optional)

Request Body

// Submit a GitHub repo (auto-analyzes everything)
{
  "github_url": "https://github.com/owner/repo",
  "demo_url": "https://live-demo.com"
}

// Submit a web app (no GitHub needed)
{
  "title": "App Name",
  "description": "What it does",
  "demo_url": "https://example.com"
}

Response

{
  "id": 813,
  "title": "App Name",
  "status": "published",
  "app_type": "webapp",
  "tech_stack": {"technologies": ["React", "Node.js"]},
  "screenshot_urls": ["https://..."]
}

Rate limit: 5 submissions per user per day. Apps are published immediately.

Post Creator Updates from the CLI

Push launches, iterations, and notes to your /u/<handle> feed from a terminal, CI hook, or Claude Code skill. Bearer-token authed; same backend as the in-app composer at /ingest.

Update kinds

  • new — a creation just launched (rare)
  • iteration — a feature, fix, or refactor that ships
  • commentary — a thought or note, no code change required
GET/api/v1/creators/{handle}

List a creator's creations and their current update history. No auth required — use this to look up the creation_id you want to post against.

POST/api/v1/media/upload

Upload one image, gif, or video. Returns the URL to embed in an update. Bearer-authed. Repeat the call once per file for multi-image carousels (max 8 per post, 20MB each).

Request Body

curl -X POST https://justbuildapps.com/api/v1/media/upload \
  -H "Authorization: Bearer $JBA_WRITE_TOKEN" \
  -F "file=@./screenshot.png"

Response

{ "url": "/api/v1/media/8f3a...e91c.png" }
POST/api/v1/creations/{creation_id}/updates

Post an update. Pass media_urls for a multi-image carousel, or media_url for a single attachment (both fields are accepted).

Parameters

  • kind - "new" | "iteration" | "commentary"
  • title - ≤100 chars, lowercase
  • body - ≤2000 chars, 1–3 short paragraphs
  • media_urls - Optional ordered list (cover first), max 8
  • media_url - Legacy single-URL alias for media_urls[0]

Request Body

curl -X POST https://justbuildapps.com/api/v1/creations/123/updates \
  -H "Authorization: Bearer $JBA_WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "iteration",
    "title": "fixed the accelerometer on android",
    "body": "ios was tilting fine but android was reading the gyro inverted. one boolean flag.",
    "media_urls": ["/api/v1/media/...png", "/api/v1/media/...png"]
  }'

Response

{
  "id": 482,
  "creation_id": 123,
  "kind": "iteration",
  "title": "fixed the accelerometer on android",
  "body": "ios was tilting fine...",
  "media_url": "/api/v1/media/...png",
  "media_urls": ["/api/v1/media/...png", "/api/v1/media/...png"],
  "published_at": "2026-05-07T22:18:00Z"
}

Claude Code skill: /jba-post

Drafts updates from your git diff, attaches any images you paste into the chat, shows the draft for approval, then ships via the bearer-token API. Lives at ~/.claude/skills/jba-post/.

One-time setup

mkdir -p ~/.config/jba ~/.claude/skills/jba-post
echo "your-handle" > ~/.config/jba/handle
echo "your-token" > ~/.config/jba/token
chmod 600 ~/.config/jba/token

cat > ~/.config/jba/repos.json <<'JSON'
{ "/Users/you/coding/your-app": "your-slug" }
JSON

curl -sS https://justbuildapps.com/skills/jba-post.md \
  > ~/.claude/skills/jba-post/SKILL.md

Then run /jba-post inside any mapped repo. Attach screenshots to the chat and they'll ship as a carousel. See the full skill source at /skill/jba-post.

Self-serve token issuance isn't live yet — DM @savarsareen to get one.

Agent Endpoints

POST/api/v1/agent/search

Semantic search - find the best tools for any task

Request Body

{
  "query": "I need to analyze CSV data and make charts",
  "constraints": {"cost": "free"},
  "limit": 5
}

Response

{
  "tools": [{
    "tool": {
      "app_id": 123,
      "name": "Observable",
      "description": "Data visualization notebooks",
      "demo_url": "https://observablehq.com",
      "target_audience": "human",
      "cost_model": "freemium",
      "requires_auth": false
    },
    "relevance_score": 0.92,
    "match_reason": "Description highly relevant",
    "how_to_use": "1. Open https://observablehq.com..."
  }],
  "total_found": 12
}
GET/api/v1/agent/tools

List tools with optional filters

Parameters

  • audience - "agent" (APIs/CLIs) | "human" (UI apps) | "both"
  • cost - "free" | "freemium" | "paid"
  • category - Filter by tag
  • quality - "verified" (default) | "all"
  • limit - Max results (default 100)
GET/api/v1/agent/verify/{app_id}

Check if a tool is working before recommending it

Response

{
  "app_id": 123,
  "name": "Observable",
  "status": "healthy",
  "reliability_score": 0.95,
  "checks": {
    "has_demo_url": true,
    "is_published": true,
    "recently_updated": true
  }
}
GET/api/v1/agent/tools/{app_id}

Get full metadata for a specific tool

GET/api/v1/agent/capabilities

List all available tool categories

Standard Endpoints

GET/api/v1/search?q={query}

Simple text + semantic hybrid search

Parameters

  • q - Search query (required)
  • limit - Max results (default 10)
GET/api/v1/apps

List all apps

Parameters

  • skip - Pagination offset
  • limit - Max results (default 20)
GET/api/v1/apps/{app_id}

Get a single app

GET/api/v1/apps/{app_id}/similar

Find semantically similar apps

For LLMs

We provide /llms.txt with structured instructions for AI agents.

View /llms.txt →

Rate Limits

  • Search: 100 requests/min
  • Reads: 1000 requests/min
  • Auth: None required

Feedback

Found issues? Want to integrate? automatejobhunt@gmail.com