# Server software for certificates

`GET /v1/certificate/order/@product_id/software` · scope `services:read`

List of server software (the IDs are used when ordering a certificate).

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/v1/certificate/order/@product_id/software` |
| 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 |
| --- | --- | --- | --- | --- |
| `product_id` | path | integer | yes | Product ID (service plan, certificate) |

## Example request

```bash
curl "https://api.tino.vn/v1/certificate/order/26/software" \
  -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.certificates.list_server_software(product_id)`, Node.js `await client.certificates.listServerSoftware(productId);`, PHP `$client->certificates->listServerSoftware($productId);`.

## Example response

```json
{
 "software": [
  {
   "id": 1,
   "name": "Apache + MOD SSL"
  },
  {
   "id": 2,
   "name": "Apache + Raven"
  },
  "… 26 more item(s)"
 ]
}
```

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