# Авто.ру API для дилеров: Снять с продажи проданные автомобили

Сценарий из mcp-everything. Актуально на 2026-10-24.

Синхронизация со складом дилера: машина продана в салоне — объявление снимается с Авто.ру, вернулась в продажу — активируется.

1. Найди объявление по VIN: GET /user/offers/{category} с category = cars, vin и status = active. Для обхода всего склада листай page и page_size (до 100 объявлений на странице).
2. Сними объявление с продажи: PUT /user/offers/{category}/{offerID}/hide. Объявление остаётся в кабинете и не удаляется.
3. Если сделка сорвалась, верни его: POST /user/offers/{category}/{offerID}/activate.
4. Удалять объявление насовсем — DELETE /user/offers/{category}/{offerID} — стоит только для ошибочных объявлений: снятое можно вернуть, удалённое — нет.
5. Ответ 404 — объявление не найдено: проверь категорию и ID.

```bash
H=(-H "x-authorization: $TOKEN" -H "x-session-id: $SESSION" -H 'Accept: application/json')

OFFER=$(curl -s -G https://apiauto.ru/1.0/user/offers/cars "${H[@]}" \
  -d vin=XW8ZZZ61ZJG012345 -d status=active | jq -r '.offers[0].id')

curl -s -X PUT "https://apiauto.ru/1.0/user/offers/cars/$OFFER/hide" "${H[@]}"
```

## Базовые URL

- Боевой: `https://apiauto.ru/1.0`

## Авторизация

Тип: API-ключ

Токен авторизации запрашивают у аккаунт-менеджера Авто.ру и передают в заголовке `x-authorization` в каждом запросе. Операции с объявлениями и кабинетом дилера дополнительно требуют сессию пользователя: её получают методом `POST /auth/login` и передают в заголовке `x-session-id`. При работе через агентский аккаунт клиента указывают в `x-dealer-id`.

```
curl -i -X GET 'GET https://apiauto.ru/1.0/dealer/account' -H 'x-authorization: fefernrjkgnerkj3453445...'
```

## Методы сценария

### GET /user/offers/{category} — Список объявлений

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `category` | path | string | да | cars, moto, trucks или all |
| `x-session-id` | header | string | да | Сессия пользователя |
| `x-dealer-id` | header | string | нет | ID клиента для агентского аккаунта |
| `page` | query | integer | нет | Номер страницы, 1–1000 |
| `page_size` | query | integer | нет | Объявлений на странице, максимум 100 |
| `status` | query | string | нет | active, inactive или banned; можно повторять |
| `section` | query | string | нет | NEW или USED |
| `sort` | query | string | нет | cr_date-asc (по умолчанию), cr_date-desc, price-asc, price-desc |
| `price_from` | query | number | нет | Цена от |
| `price_to` | query | number | нет | Цена до |
| `vin` | query | string | нет | VIN; можно повторять |
| `mark_model` | query | string | нет | Марка и модель через %23, например MERCEDES%23C_KLASSE |
| `service` | query | string | нет | Фильтр по услуге, например all_sale_premium |
| `create_date_from` | query | string | нет | Дата создания от, ISO 8601 |
| `create_date_to` | query | string | нет | Дата создания до, ISO 8601 |
| `no_active_services` | query | boolean | нет | Только объявления без услуг |
| `auction` | query | boolean | нет | Только объявления в аукционе |

### PUT /user/offers/{category}/{offerID}/hide — Снять объявление с продажи

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `category` | path | string | да | Категория |
| `offerID` | path | string | да | ID объявления |

### POST /user/offers/{category}/{offerID}/activate — Активировать объявление

Возвращает в продажу ранее снятое объявление.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `category` | path | string | да | Категория |
| `offerID` | path | string | да | ID объявления |

### DELETE /user/offers/{category}/{offerID} — Удалить объявление

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `category` | path | string | да | Категория |
| `offerID` | path | string | да | ID объявления |

## Нюансы

- Почти все операции с объявлениями требуют обоих заголовков: `x-authorization` (токен) и `x-session-id` (сессия из `/auth/login`).
- Сессия живёт около 90 дней (`ttl_sec` 7776000; в документации единица указана противоречиво — проверьте).
- Ответ может содержать недокументированные служебные поля, порядок полей не гарантирован.
- Подключение платных услуг при нехватке средств возвращает `402`.

## Другие сценарии

- [Подключиться и проверить баланс кабинета](https://mcp-everything.ru/integrations/autoru/scenarios/podklyuchitsya-i-proverit-balans.md)
- [Продвинуть объявления платными услугами](https://mcp-everything.ru/integrations/autoru/scenarios/prodvinut-obyavleniya-platnymi-uslugami.md)

---

Если этого недостаточно — официальная документация: https://yandex.ru/dev/autoru/doc/ru/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/autoru.md
