Skip to content
Power301/API
Sign inGet API key
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

ParameterDescription
sortoptionalstringSort 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
filteroptionalobjectFilter 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