(GET) Get links

Retrieve links from your workspace with flexible filtering options. Filter by link ID, external ID, tenant ID, or partner ID.

Endpoint

GET /api/links

Retrieve links from your workspace with flexible filtering options. Filter by link ID, external ID, tenant ID, or partner ID to find exactly what you need.

The endpoint supports efficient pagination and sorting, making it easy to browse large link libraries. Results are returned as an array of link objects, each containing complete link information including the generated short URL.

Endpoint text
GET /api/links

Authentication

Requires authentication with an API key that has the linksRead scope.

Query Parameters

All parameters are optional. Use them to filter and paginate results.

ParameterTypeRequiredDescription
id (query)string (UUID)NoFilter by specific link ID. Returns a single link if found.
externalId (query)stringNoFilter by external ID. Useful for syncing with external systems.
tenantId (query)stringNoFilter by tenant ID for multi-tenant scenarios.
partnerId (query)string (UUID)NoFilter by partner ID to retrieve all links associated with a specific partner.
take (query)numberNoNumber of results to return (default: 50, min: 1, max: 10,000).
skip (query)numberNoNumber of results to skip for pagination (default: 0, min: 0).
sort (query)stringNoSort order by createdAt: "asc" for oldest first, "desc" for newest first (default: "desc").

Request Limits

The `take` parameter supports values from 1 to 10,000. Requests above 10,000 are rejected.

Examples

Here are practical examples of retrieving links:

Request cURL
curl -X GET "https://hoko.to/api/links?take=50&sort=desc" \
  -H "Authorization: Bearer <API_KEY>"
Request JavaScript
const response = await fetch("https://hoko.to/api/links?take=50&sort=desc", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <API_KEY>"
  }
});
const links = await response.json();
Response json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "url": "https://example.com",
    "shortUrl": "https://hoko.to/abc123",
    "title": "Example Link",
    "description": "An example link",
    "image": "https://example.com/image.jpg",
    "utm": {
      "source": "google",
      "medium": "cpc",
      "campaign": "summer",
      "term": "keyword",
      "content": "ad_content"
    },
    "collectionId": "550e8400-e29b-41d4-a716-446655440000",
    "externalId": "ext_123",
    "tenantId": "tenant_123",
    "partnerId": "550e8400-e29b-41d4-a716-446655440000",
    "createdAt": "2024-01-01T00:00:00Z"
  }
]

Filtering Tips

You can combine multiple filters (id, externalId, tenantId, partnerId) in a single request. When multiple filters are provided, results match any of the specified filters. Use pagination (take/skip) to efficiently browse large result sets.