Skip to main content
Version: 1.0.0

Pagination & Filtering

The Symphony API supports query-parameter-based filtering on list endpoints. This page describes the available filters for each resource.

Response shape for collections

All list endpoints return the same envelope:

{
"data": [ ... ],
"count": 5
}

count reflects the number of items in data after filtering.

Projects

GET /api/projects

ParameterTypeDescription
statusstringFilter by project status: planned, active, or completed

Examples:

# All active projects
curl "http://localhost:3000/api/projects?status=active"

# All completed projects
curl "http://localhost:3000/api/projects?status=completed"

Tasks

GET /api/tasks

ParameterTypeDescription
projectIdstringFilter tasks belonging to a specific project
assigneestringFilter tasks by assignee username
statusstringFilter by task status: todo, in_progress, or done

Filters can be combined:

# All in-progress tasks for proj_01
curl "http://localhost:3000/api/tasks?projectId=proj_01&status=in_progress"

# All tasks assigned to alice
curl "http://localhost:3000/api/tasks?assignee=alice"

Teams

GET /api/teams

The teams list endpoint does not currently support query filters. It always returns all teams in summary form (without the full members array). To see members, fetch an individual team with GET /api/teams/:id.

Pagination

The current version of Symphony API does not implement offset/limit pagination. All matching records are returned in a single response. For production use, you would add offset and limit query parameters and slice the data array accordingly:

# Future pagination pattern
curl "http://localhost:3000/api/tasks?offset=0&limit=20"