curl --request GET \
--url 'http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI' \
--header 'Authorization: Bearer <token>'
const response = await fetch('http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI', {
method: 'GET',
headers: {
'Authorization': 'Bearer <token>'
}
});
const data = await response.json();
import requests
url = "http://localhost:3000/api/v1/projects"
headers = {"Authorization": "Bearer <token>"}
params = {
"limit": 20,
"offset": 0,
"searchWord": "AI"
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
{
"success": true,
"projects": [
{
"id": "proj_123abc",
"name": "AI Chatbot",
"description": "Customer service chatbot",
"icon": "🤖",
"color": "#3B82F6",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
],
"nextCursor": "cursor_xyz",
"nextOffset": 20,
"hasMore": true,
"total": 45,
"message": "Projects retrieved successfully"
}
{
"success": false,
"message": "Unauthorized"
}
Projects
List Projects
Retrieves all projects for the authenticated user with optional search and pagination
GET
/
api
/
v1
/
projects
curl --request GET \
--url 'http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI' \
--header 'Authorization: Bearer <token>'
const response = await fetch('http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI', {
method: 'GET',
headers: {
'Authorization': 'Bearer <token>'
}
});
const data = await response.json();
import requests
url = "http://localhost:3000/api/v1/projects"
headers = {"Authorization": "Bearer <token>"}
params = {
"limit": 20,
"offset": 0,
"searchWord": "AI"
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
{
"success": true,
"projects": [
{
"id": "proj_123abc",
"name": "AI Chatbot",
"description": "Customer service chatbot",
"icon": "🤖",
"color": "#3B82F6",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
],
"nextCursor": "cursor_xyz",
"nextOffset": 20,
"hasMore": true,
"total": 45,
"message": "Projects retrieved successfully"
}
{
"success": false,
"message": "Unauthorized"
}
Query Parameters
string
Search term for filtering projects by name
number
default:20
Number of results per page
string
default:""
Pagination cursor
number
default:0
Pagination offset
Response
boolean
Indicates if the request was successful
array
Array of project objects
string
Cursor for the next page of results
number
Offset for the next page of results
boolean
Indicates if there are more results available
number
Total number of projects
string
Response message
curl --request GET \
--url 'http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI' \
--header 'Authorization: Bearer <token>'
const response = await fetch('http://localhost:3000/api/v1/projects?limit=20&offset=0&searchWord=AI', {
method: 'GET',
headers: {
'Authorization': 'Bearer <token>'
}
});
const data = await response.json();
import requests
url = "http://localhost:3000/api/v1/projects"
headers = {"Authorization": "Bearer <token>"}
params = {
"limit": 20,
"offset": 0,
"searchWord": "AI"
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
{
"success": true,
"projects": [
{
"id": "proj_123abc",
"name": "AI Chatbot",
"description": "Customer service chatbot",
"icon": "🤖",
"color": "#3B82F6",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
],
"nextCursor": "cursor_xyz",
"nextOffset": 20,
"hasMore": true,
"total": 45,
"message": "Projects retrieved successfully"
}
{
"success": false,
"message": "Unauthorized"
}
Notes
- Use
searchWordto filter projects by name - Supports both cursor-based and offset-based pagination
- Results are ordered by creation date (newest first)

