# Services by category

`GET /v1/services/@cid` · scope `services:read`

The account's services in category `@cid` (`0`: all categories).

Filters: `filter[hide_terminated]=1`, `filter[hide_cancelled]=1`, `filter[hide_suspended]=1`, `filter[hide_fraud]=1`, `filter[status]=Active`.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/v1/services/@cid` |
| Method | `GET` |
| Scope | `services:read` |
| Header | `Authorization: Bearer <token>` |
| Content-Type | — (no body) |
| Tokens that can call it | app tokens (`tinoat_`), personal API tokens (`tinopat_`) |

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `cid` | path | integer | yes | Service category ID; `0`: all categories |
| `Name` | undefined | Type | no | Description |
| `---` | undefined | --- | no | --- |
| `page` | query | integer | no | Zero-based page index. page=0 is the first page; the response echoes it 1-based in page.current. Default: `0`. |
| `perpage` | query | integer | no | Rows per page. Defaults to the account's RecordsPerPage setting. |
| `orderby` | query | string | no | Sort expression in the form `field\|DESC` or `field\|ASC`, e.g. `date\|DESC`. |
| `filter` | query | object | no | Endpoint-specific filters, serialised as filter[key]=value. |

## Example request

```bash
curl "https://api.tino.vn/v1/services/0" \
  -H "Authorization: Bearer $TINO_TOKEN"
```

`$TINO_TOKEN` is a token with the scope `services:read`. Path parameters in the example are sample values.

SDK ([SDK & examples](/en/docs/sdk)): Python `client.services.list_by_category(cid)`, Node.js `await client.services.listByCategory(cid);`, PHP `$client->services->listByCategory($cid);`.

## Example response

```json
{
 "services": [
  {
   "id": "100001",
   "domain": "example.com",
   "total": "79000.00",
   "status": "Active",
   "billingcycle": "Monthly",
   "next_due": "2026-08-26",
   "category": "Platinum Hosting",
   "category_url": "platinum-hosting",
   "name": "WH 1"
  },
  {
   "id": "100002",
   "domain": "vps-demo.example.net",
   "total": "199000.00",
   "status": "Active",
   "billingcycle": "Monthly",
   "next_due": "2026-08-26",
   "category": "NVMe VPS ",
   "category_url": "nvme-vps",
   "name": "VPS 20 GB NVMe"
  },
  "… 1 more item(s)"
 ],
 "total": 3,
 "page": {
  "current": 0,
  "total": 1
 }
}
```

Live sample from a test account with personal data masked; long arrays and strings are trimmed (`… N more item(s)`, `… N more line(s)`).
