Links · links.index
GET/linkslinks.index
Index
GET /links is part of the Links group. Its parameters and response shape below are generated from the live OpenAPI document. The payload comes back inside a data array.
- Base URL
- https://api.power301.com/v1
- Auth
- Bearer token
- Idempotent
- Yes
- Returns
- application/json
The request
Call GET /links with your bearer token. Narrow or order the result with the query parameters below.
# Index
curl "https://api.power301.com/v1/links" \
-H "Authorization: Bearer $POWER301_TOKEN"Query parameters
| Parameter | Description |
|---|---|
| sortoptionalstring | Sort results by field. Prefix with - for descending order. Available sorts: id, created_at, updated_at, total_clicksid-idcreated_at-created_atupdated_at-updated_attotal_clicks-total_clicks |
| filteroptionalobject | Filter results by one or more fields. Available filters: id, host, path, tld, handler, type, destination, search, tags, traffic, dns_correct, status, created_after, created_before |
| filter[id]optionalstring | |
| filter[host]optionalstring | |
| filter[path]optionalstring | |
| filter[tld]optionalstring | |
| filter[handler]optionalstring | |
| filter[type]optionalstring | |
| filter[destination]optionalstring | |
| filter[search]optionalstring | |
| filter[tags]optionalstring | |
| filter[traffic]optionalstring | |
| filter[dns_correct]optionalstring | |
| filter[status]optionalstring | |
| filter[created_after]optionalstring | |
| filter[created_before]optionalstring |
The response
A 200 carries the payload inside a data array — the same shape the list endpoints return, so one parser handles both.
{
"data": [
{
"id": "9f2a7c31-4b8e-4a02-9d1f-0c6b7e5a1d44",
"handler": "string",
"host": "go.acme.com",
"alias": "spring-sale",
"url": "https://go.acme.com/spring-sale",
"https": true,
"file": null,
"destination": "https://acme.com/campaigns/spring",
"destinations": [
"https://acme.com/campaigns/spring"
],
"destination_routing": "weighted",
"plugins": [
"analytics"
],
"has_password": true,
"total_clicks": 1,
"type": "link",
"title": "Spring Sale 2026",
"description": "Landing page for the spring campaign",
"status": "301",
"paused_by": "user",
"forward_path": true,
"forward_query": true,
"utm": {
"source": "string",
"medium": "string",
"campaign": "string",
"term": "string",
"content": "string"
},
"qr": {
"theme": "string",
"color": "string",
"logo": true,
"show_url": true,
"margin": "string"
},
"monitor": "false",
"is_notify": false,
"is_switch_unbroken_destination": false,
"tags": [
"campaign",
"q2"
],
"created_by": "user@acme.com",
"creator": {
"id": "9f2a7c31-4b8e-4a02-9d1f-0c6b7e5a1d44",
"name": "Acme"
},
"created_via": "api",
"created_at": "2026-08-01T09:14:22Z",
"updated_at": "2026-08-01T09:14:22Z",
"expired_at": null
}
],
"meta": {
"cursor": {
"current": null,
"prev": "string",
"next": "string",
"count": 1
}
}
}Status codes
200
SuccessA cursor-paginated page of every record of the workspace. Narrow it with
filter[handler] (comma-separated), filter[status] (active or paused), filter[dns_correct], filter[host] and filter[path] (/ for the root page of a hostname, * for the record that answers every other path). Order it with sort: -id (newest, the default), -updated_at (recently updated), -total_clicks (most clicks) or total_clicks (fewest clicks). total_clicks counts every click since the record was created. Follow meta.cursor.next for the next page.401
UnauthenticatedUnauthenticated
429
Too many requestsToo many requests
