Skip to main content
GET
/
api
/
projects
List Projects
curl --request GET \
  --url https://api.example.com/api/projects
{
  "projects": [
    {
      "id": "<string>",
      "name": "<string>",
      "description": "<string>",
      "program_id": "<string>",
      "is_public": true,
      "user_id": "<string>",
      "username": "<string>",
      "avatar_url": "<string>",
      "created_at": "<string>",
      "updated_at": "<string>"
    }
  ],
  "pagination": {
    "page": 123,
    "limit": 123,
    "total": 123,
    "totalPages": 123
  },
  "error": "<string>",
  "details": "<string>"
}

Overview

Retrieve a paginated list of projects. Public projects are visible to everyone, while authenticated users also see their private projects.

Query Parameters

page
integer
default:"1"
Page number for pagination
limit
integer
default:"20"
Number of projects per page (max: 100)
Search term to filter projects by name or description

Authentication

This endpoint supports optional authentication. If authenticated, you’ll see your private projects in addition to public ones.
Authorization: Bearer <jwt_token>

Response

projects
array
List of project objects
pagination
object
Pagination metadata

Example Request

curl -X GET "https://api.orquestra.so/api/projects?page=1&limit=20&search=token" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Example Response

{
  "projects": [
    {
      "id": "proj_abc123",
      "name": "Token Swap Program",
      "description": "A decentralized token swap protocol",
      "program_id": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
      "is_public": true,
      "user_id": "user_xyz789",
      "username": "developer",
      "avatar_url": "https://avatars.github.com/u/123456",
      "created_at": "2024-03-15T10:30:00.000Z",
      "updated_at": "2024-03-20T14:45:00.000Z"
    },
    {
      "id": "proj_def456",
      "name": "NFT Marketplace",
      "description": "On-chain NFT trading platform",
      "program_id": "M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K",
      "is_public": true,
      "user_id": "user_xyz789",
      "username": "developer",
      "avatar_url": "https://avatars.github.com/u/123456",
      "created_at": "2024-03-10T08:00:00.000Z",
      "updated_at": "2024-03-18T16:20:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "totalPages": 3
  }
}

Error Responses

error
string
Error message describing what went wrong
details
string
Additional error details (if available)

Common Errors

{
  "error": "Failed to list projects",
  "details": "Database connection error"
}
The server encountered an error while fetching projects. This is typically a temporary issue.

Notes

Authentication is optional - Public users see only public projects, while authenticated users also see their private projects.
Use the search parameter to filter projects by name or description. This is useful for finding specific programs quickly.
The maximum limit is 100. Requests exceeding this will be capped at 100 items per page.

Build docs developers (and LLMs) love