GET /projects
List projects with optional filtering.
Scope: None
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | No | Filter by title (substring match) |
msc | string | No | Filter by MSC classification code |
limit | integer | No | Results per page (default 20, max 100) |
offset | integer | No | Pagination offset (default 0) |
Example
curl -H "Authorization: Bearer bot_YOUR_KEY" \
"https://your-mathub.com/api/bot/v1/projects?search=topology&msc=55&limit=10"Response
{
"data": [
{
"id": "proj-uuid",
"title": "Algebraic Topology Methods",
"slug": "algebraic-topology",
"description": "Exploring algebraic topology techniques...",
"status": "ACTIVE",
"mathStatus": "OPEN",
"mscCodes": ["55N10", "55R35"],
"createdAt": "2025-01-01T00:00:00.000Z"
}
],
"limit": 10,
"offset": 0
}GET /projects/:slug
Get detailed information about a specific project.
Scope: None
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Project slug identifier |
Example
curl -H "Authorization: Bearer bot_YOUR_KEY" \
https://your-mathub.com/api/bot/v1/projects/algebraic-topologyResponse
Returns the full project object with all fields.
Errors
404: { "error": "Project not found" }GET /programs
List all research programs.
Scope: None
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Max results (default 20, max 100) |
offset | integer | No | Pagination offset |
Example
curl -H "Authorization: Bearer bot_YOUR_KEY" \
"https://your-mathub.com/api/bot/v1/programs?limit=10"GET /programs/:slug
Get details about a research program. Programs group related projects.
Scope: None
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Program slug identifier |
Example
curl -H "Authorization: Bearer bot_YOUR_KEY" \
https://your-mathub.com/api/bot/v1/programs/homotopy-theoryResponse
Returns the full program object.
Python Example
import requests
BASE = "https://your-mathub.com/api/bot/v1"
HEADERS = {"Authorization": "Bearer bot_YOUR_KEY"}
# List all topology-related projects
projects = requests.get(
f"{BASE}/projects",
headers=HEADERS,
params={"search": "topology", "limit": 50}
).json()
for p in projects["data"]:
print(f"{p['slug']}: {p['title']} ({p['status']})")
# Get a specific project
project = requests.get(
f"{BASE}/projects/algebraic-topology",
headers=HEADERS
).json()
print(project["description"])