# Связи (таблица)

Получение связей и аффилированности компании списком.

Возвращает связи и аффилированность компании в табличном формате.

## Эндпоинт

```text
GET /api/v1/companies/:company_id/relations_table
```

## Параметры

| Параметр | Тип | Где | Описание |
| --- | --- | --- | --- |
| `company_id` | `integer` | path | Уникальный идентификатор компании. |
| `page` | `integer` | query | Номер страницы (по умолчанию: 1). |
| `limit` | `integer` | query | Записей на странице (по умолчанию: 100). |
| `type` | `string` | query | Необязательный фильтр по типу связи (например `officers`, `shareholders`, `addresses`, `contacts`, `affiliations`, `branches`, `subsidiaries`). |

## Примеры кода

**Получение связей (таблица)**

**Python**

```python
import requests

url = 'https://statsnet.co/api/v1/companies/12345/relations_table'
headers = {
  'Authorization': 'Bearer sk_live_YOUR_KEY',
  'Content-Type': 'application/json'
}

response = requests.get(url, headers=headers).json()
print(response)
```

**TypeScript**

```typescript
const url = 'https://statsnet.co/api/v1/companies/12345/relations_table';

const response = await fetch(url, {
headers: {
  'Authorization': 'Bearer sk_live_YOUR_KEY',
  'Content-Type': 'application/json',
},
});

const data = await response.json();
console.log(data);
```

**Go**

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {
	url := "https://statsnet.co/api/v1/companies/12345/relations_table"

	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("Authorization", "Bearer sk_live_YOUR_KEY")
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
```

## Ответ

**Успешный ответ**

```json
{
  "nodes": [
    {
      "id": 777001,
      "name": "Иванов И.И.",
      "source_key": 777001,
      "type": "person",
      "connection_type": "officers",
      "connection_id": 12345,
      "connection_name": "Компания А",
      "root_company_id": 12345,
      "connection_hash_identifier": "5f4dcc3b5aa765d61d8327deb882cf99",
      "connection_key": 12345,
      "is_person": true
    }
  ],
  "links": [
    {
      "id": 67890,
      "name": "Компания Б",
      "source_key": 67890,
      "type": "company",
      "connection_type": "shareholders",
      "connection_id": 12345,
      "connection_name": "Компания А",
      "root_company_id": 12345,
      "connection_hash_identifier": "9a0364b9e99bb480dd25e1f0284c8555",
      "connection_key": 12345,
      "is_person": false
    }
  ],
  "meta": { "officers": 1, "shareholders": 1 },
  "total": 2
}
```

## Обработка ошибок

**Ответ с ошибкой**

```json
{
  "status": 403,
  "message": "access denied"
}
```

Это платный эндпоинт. Возможны также ответы `402` — `{"status": 402, "message": "payment required"}` — если подписка истекла, отменена или просрочена, и `429` — `{"status": 429, "message": "quota exhausted"}` — когда квота отчётов тарифа за текущий период исчерпана.
