GET /topics/:topic_id/series/:series_id/latest
Returns the latest ranking data for a specific topic and series combination.
Request
HTTP Method
GET
Endpoint
/api/v1/topics/:topic_id/series/:series_id/latest
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| topic_id | string | Yes | The topic prefix ID (e.g., tpc_abc123 ) |
| series_id | string | Yes | The series prefix ID (e.g., ser_xyz789 ) |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
Example Request curl -X GET "https://knowatoa.com/api/v1/topics/tpc_abc123/series/ser_xyz789/latest?api_key=YOUR_API_KEY"
Response
Success Response (200 OK)
Standard Format
Returns a JSON object with topic, series, and rankings information:
{
"topic": {
"id": "tpc_abc123",
"name": "Example Topic"
},
"series": {
"id": "ser_xyz789",
"name": "ChatGPT Series"
},
"rankings": [
{
"question": "What is example topic?",
"response": "Example topic is...",
"citations": "https://example.com\nhttps://another.com",
"rank": "1"
},
{
"question": "How does example work?",
"response": "It works by...",
"citations": "",
"rank": "Not found"
}
]
}
Looker Studio Format
When the request path ends with .json , the response is flattened for Looker Studio compatibility:
[
{
"topic_id": "tpc_abc123",
"topic_name": "Example Topic",
"series_id": "ser_xyz789",
"series_name": "ChatGPT Series",
"question": "What is example topic?",
"rank": "1"
},
{
"topic_id": "tpc_abc123",
"topic_name": "Example Topic",
"series_id": "ser_xyz789",
"series_name": "ChatGPT Series",
"question": "How does example work?",
"rank": "Not found"
}
]
Response Fields (Standard Format)
| Field | Type | Description |
|---|---|---|
| topic | object | Topic information |
| topic.id | string | Topic prefix ID |
| topic.name | string | Topic display name |
| series | object | Series information |
| series.id | string | Series prefix ID |
| series.name | string | Series display name |
| rankings | array | Array of ranking results |
| rankings[].question | string | The question that was asked |
| rankings[].response | string | The AI model's response |
| rankings[].citations | string | URLs cited in the response (newline separated) |
| rankings[].rank | string | The rank position or "Not found" |
Response Fields (Looker Studio Format)
| Field | Type | Description |
|---|---|---|
| topic_id | string | Topic prefix ID |
| topic_name | string | Topic display name |
| series_id | string | Series prefix ID |
| series_name | string | Series display name |
| question | string | The question that was asked |
| rank | string | The rank position or "Not found" |
Error Responses
401 Unauthorized
{
"error": "API key is required"
}
{
"error": "Invalid API key"
}
{
"error": "API key is not active"
}
403 Forbidden
{
"error": "You don't have access to this series"
}
404 Not Found
{
"error": "Topic not found"
}
{
"error": "Series not found"
}
Notes
- Returns only the most recent refresh data
- If no refresh data exists, returns an empty rankings array
- Citations are returned with the standard API
- The rank field will show the numeric position or "Not found" if the topic wasn't found in the response
- For Looker Studio integration, append
.jsonto the endpoint path