# Service details

`GET /v1/service/@id` · scope `services:read`

Details of service `@id`: plan, billing cycle, expiry, status, service login details.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/v1/service/@id` |
| 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 |
| --- | --- | --- | --- | --- |
| `id` | path | integer | yes | Service ID |

## Example request

```bash
curl "https://api.tino.vn/v1/service/100001" \
  -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.get(id)`, Node.js `await client.services.get(id);`, PHP `$client->services->get($id);`.

## Example response

```json
{
 "service": {
  "id": "100001",
  "product_id": "2122",
  "date_created": "2026-07-26",
  "domain": "example.com",
  "firstpayment": "79000.00",
  "total": "79000.00",
  "billingcycle": "Monthly",
  "next_due": "2026-08-26",
  "due_day": "26",
  "expires": "2026-08-26",
  "autorenew": "1",
  "next_invoice": "2026-08-11",
  "status": "Active",
  "label": "",
  "username": "exampleuser",
  "password": "<redacted>",
  "rootpassword": null,
  "commitment_date": null,
  "date_suspended": "0000-00-00",
  "date_terminated": "0000-00-00",
  "…": "9 more key(s)"
 },
 "addons": [],
 "haveaddons": [],
 "unpaid_invoice": []
}
```

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