Skip to content
Toolblip
REST API v1

Toolblip API Reference

Overview

The Toolblip API is a free REST API for browsing developer tools and managing user accounts. All endpoints return JSON. No API key is required for public read endpoints — register an account to obtain a Bearer token for authenticated routes.

Base URL (active)

https://toolblip-api-production.up.railway.app

Clean domain (SSL pending)

https://api.toolblip.com
MethodEndpointAuthDescription
POST/api/auth/registerpublicCreate account
POST/api/auth/loginpublicSign in
POST/api/auth/logout🔒 authRevoke session
GET/api/auth/user🔒 authCurrent user
GET/api/toolspublicList all tools
GET/api/tools/:slugpublicGet a tool

Authentication

Protected endpoints require a Bearer token obtained from /api/auth/register or /api/auth/login. Pass it in the Authorization header on every authenticated request.

Authorization: Bearer tb_live_xxxxxxxxxxxxxxxx

Tools

All tools endpoints are public — no authentication required.

GET/api/tools200

Returns a paginated list of all tools in the registry.

Response

{
  "tools": {
    "tools": [
      {
        "id": 1,
        "slug": "claude-code",
        "name": "Claude Code",
        "description": "AI coding assistant by Anthropic",
        "category": "AI",
        "is_pro": false,
        "emoji": "🤖",
        "created_at": "2026-01-01T00:00:00Z"
      },
      {
        "id": 2,
        "slug": "cursor",
        "name": "Cursor",
        "description": "AI-first code editor built around pair programming",
        "category": "AI",
        "is_pro": true,
        "emoji": "💻",
        "created_at": "2026-01-15T00:00:00Z"
      }
    ]
  }
}

curl

curl -X GET https://toolblip-api-production.up.railway.app/api/tools
GET/api/tools/{slug}200

Fetch a single tool by its slug. Returns 404 if not found.

Response

{
  "tool": {
    "id": 1,
    "slug": "claude-code",
    "name": "Claude Code",
    "description": "AI coding assistant by Anthropic",
    "category": "AI",
    "is_pro": false,
    "emoji": "🤖",
    "created_at": "2026-01-01T00:00:00Z"
  }
}

curl

curl -X GET https://toolblip-api-production.up.railway.app/api/tools/claude-code

Auth

POST/api/auth/register201

Create a new user account. Returns the user object and a Bearer token.

Request body

{
  "name": "Harun",
  "email": "[email protected]",
  "password": "secret123",
  "password_confirmation": "secret123"
}

Response

{
  "user": {
    "id": 1,
    "name": "Harun",
    "email": "[email protected]",
    "is_pro": false
  },
  "token": "tb_live_xxxxxxxxxxxxxxxx"
}

curl

curl -X POST https://toolblip-api-production.up.railway.app/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"name":"Harun","email":"[email protected]","password":"secret123","password_confirmation":"secret123"}'
POST/api/auth/login200

Sign in with email and password. Returns the user object and a Bearer token.

Request body

{
  "email": "[email protected]",
  "password": "secret123"
}

Response

{
  "user": {
    "id": 1,
    "name": "Harun",
    "email": "[email protected]",
    "is_pro": false
  },
  "token": "tb_live_xxxxxxxxxxxxxxxx"
}

curl

curl -X POST https://toolblip-api-production.up.railway.app/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"secret123"}'
POST/api/auth/logout🔒 auth200

Revoke the current Bearer token, ending the session.

Headers

Authorization: Bearer tb_live_xxxxxxxxxxxxxxxx

Response

{
  "message": "Logged out successfully"
}

curl

curl -X POST https://toolblip-api-production.up.railway.app/api/auth/logout \
  -H "Authorization: Bearer tb_live_xxxxxxxxxxxxxxxx"
GET/api/auth/user🔒 auth200

Retrieve the currently authenticated user.

Headers

Authorization: Bearer tb_live_xxxxxxxxxxxxxxxx

Response

{
  "user": {
    "id": 1,
    "name": "Harun",
    "email": "[email protected]",
    "is_pro": false
  }
}

curl

curl -X GET https://toolblip-api-production.up.railway.app/api/auth/user \
  -H "Authorization: Bearer tb_live_xxxxxxxxxxxxxxxx"

Error Responses

All errors return a JSON body with a message field, and optionally an errors object for validation failures.

{
  "message": "The given data was invalid.",
  "errors": {
    "email": ["The email field is required."],
    "password": ["The password field is required."]
  }
}
400Bad Request
401Unauthorized
403Forbidden
404Not Found
422Validation Error
429Too Many Requests
500Server Error

Rate Limits

60 requests / minute

Authenticated endpoints. Public read endpoints have more generous limits. When limited, the API returns 429 Too Many Requests — back off and retry.