Skip to content

List and filter topics

GET
/api/v1/topics
subject
string

Filter by subject slug

grade
string

Filter by grade slug

q
string

Search by name or slug

page
integer
default: 1 >= 1
pageSize
integer
default: 50 >= 1 <= 100

Paginated list of topics

object
data
object
topics
Array<object>
object
slug
string
name
string
description
string
subject
object
slug
string
name
string
skillCount
integer
grades
Array<string>
meta
object
requestId
string format: uuid
generatedAt
string format: date-time
apiVersion
string
Allowed values: v1
cacheHit
boolean
pagination
object
page
required
integer
pageSize
required
integer
total
required
integer
hasNext
required
boolean

Rate limit exceeded

RFC 7807 Problem Details

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string
retryAfter

Seconds to wait before retrying (present on 429 responses)

integer
Example
{
"type": "https://api.studyplug.org/errors/rate-limited",
"title": "Rate Limit Exceeded",
"status": 429,
"detail": "You have exceeded 20 requests per minute. Please wait before retrying.",
"instance": "/api/v1/skills",
"retryAfter": 12
}
Retry-After
integer

Seconds until rate limit resets

X-RateLimit-Limit
integer

Max requests per window

X-RateLimit-Remaining
integer
Allowed values: 0

Always 0 when rate limited