Get All Campaigns
GEThttps://viso.li/api/campaign
Returns a paginated list of campaigns you own, including goal config and current progress. Attached links are omitted here — use GET campaign for the full link set.
Filter by createdAt window, stored status, or template key.
Send Authorization: Bearer sk_api_your_api_key on every request. See authentication.
Query parameters
All filters are optional. Newest campaigns first.
| Field | Type | Description |
|---|---|---|
createdFrom | string | ISO 8601 inclusive start of the createdAt window. |
createdTo | string | ISO 8601 inclusive end of the createdAt window. Must be on or after createdFrom. |
status | string | DRAFT, ACTIVE, or ENDED. |
templateKey | string | Known template key, for example bio-evergreen. |
search | string | Case-insensitive match on name or description. |
page | number | Page number, starting at 1. Defaults to 1. |
pageSize | number | Items per page, max 100. Defaults to 20. |
Example request
This lists active campaigns created in 2026 through 23 August.
1curl "https://viso.li/api/campaign?createdFrom=2026-01-01T00:00:00.000Z&createdTo=2026-08-23T23:59:59.000Z&status=ACTIVE&page=1&pageSize=20" \
2 -H "Authorization: Bearer sk_api_your_api_key"
Success response
Returns 200 OK.
response.json
1{
2 "campaigns": [
3 {
4 "id": "3f1c0c2a-7b4e-4d91-9c2a-1b8e6f0d2a11",
5 "name": "Bio link",
6 "description": null,
7 "status": "ACTIVE",
8 "templateKey": "bio-evergreen",
9 "goal": {
10 "type": "CLICKS",
11 "config": {
12 "target": 10000,
13 "windowDays": 30
14 }
15 },
16 "progress": {
17 "type": "CLICKS",
18 "target": 10000,
19 "current": 1240,
20 "remaining": 8760,
21 "percent": 12,
22 "reached": false
23 },
24 "linkCount": 1,
25 "startsAt": null,
26 "endsAt": null,
27 "createdAt": "2026-08-22T14:00:00.000Z"
28 }
29 ],
30 "page": 1,
31 "pageSize": 20,
32 "total": 1,
33 "totalPages": 1
34}
Response fields
| Field | Type | Description |
|---|---|---|
campaigns | object[] | Page of campaigns. Same fields as GET campaign, without links. |
page | number | Current page. |
pageSize | number | Requested page size. |
total | number | Total matching campaigns. |
totalPages | number | Total pages at this page size. |
Errors
| Status | Error | Description |
|---|---|---|
| 400 | Bad Request | Invalid page, dates, status, or template key. |
| 401 | Unauthorized | Missing, malformed, or invalid Bearer token. |
| 403 | Forbidden | Campaigns are not available on the current plan. |
| 429 | Too Many Requests | More than 10 requests per minute or 50 requests per day. |
| 500 | Internal Server Error | Unexpected server error. Retry the request. |