{"openapi":"3.1.0","info":{"title":"XProject API","version":"0.1.0","contact":{"name":"Support","url":"https://t.me/x1_projectadmin"}},"paths":{"/api/v1/parser/start":{"post":{"tags":["Парсинг"],"summary":"Запустить задачу парсинга","description":"Создаёт задачу под одну платформу с набором фильтров.\n\nДоступные ключи `filters` для каждой платформы - `GET /schema`.\nНевалидный ключ → 422. Если активная задача с теми же параметрами уже существует - 409.","operationId":"start_api_v1_parser_start_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParserStartRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParserTaskInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/parser/{task_id}/stop":{"post":{"tags":["Парсинг"],"summary":"Остановить задачу","description":"Помечает задачу как остановленную; новые объявления собираться не будут, но уже накопленные доступны через `GET /{task_id}`.\n\n404, если задача не существует или принадлежит другому юзеру.","operationId":"stop_api_v1_parser__task_id__stop_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParserTaskInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/parser/schema":{"get":{"tags":["Парсинг"],"summary":"Поддерживаемые платформы, страны, категории, поля фильтров","description":"Возвращает справочник: для каждой платформы - список стран, категорий и допустимых ключей в `start.filters`.\n\nСписок глобально допустимых filter columns - в поле `filter_columns`. Реально принимается только их пересечение со `supported_filters` конкретной платформы.","operationId":"schema_api_v1_parser_schema_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParserSchemaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/parser/tasks":{"get":{"tags":["Парсинг"],"summary":"Запущенные задачи текущего юзера","operationId":"tasks_api_v1_parser_tasks_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ParserTaskDetails"},"title":"Response Tasks Api V1 Parser Tasks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/parser/{task_id}":{"get":{"tags":["Парсинг"],"summary":"Объявления задачи (страница 100, cursor-пагинация)","description":"Возвращает до 100 объявлений за вызов, отсортированных по `row_id` (самые свежие выше). Для следующей страницы передай `?cursor=<next_cursor>` из предыдущего ответа.\n\nЕсли `has_more=false` - это последняя страница на сейчас, можно опрашивать снова через минуту-две, чтобы поймать новые.","operationId":"listings_api_v1_parser__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"row_id последнего листинга предыдущей страницы. Пусто для первой.","title":"Cursor"},"description":"row_id последнего листинга предыдущей страницы. Пусто для первой."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParserListingsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/register":{"post":{"tags":["Fiverr Unlocker"],"summary":"Регистрация аккаунта Fiverr","description":"Создаёт аккаунт на Fiverr. После успеха Fiverr отправляет письмо с кодом активации.\n\n`cookies` из ответа сохраните - они нужны для `/activate` и `/phone/*`.","operationId":"register_api_v1_fiverr_register_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/activate":{"post":{"tags":["Fiverr Unlocker"],"summary":"Активация аккаунта кодом из письма","description":"Подтверждает email кодом из письма. `auth_cookies` - из ответа `/register` или `/login`.","operationId":"activate_api_v1_fiverr_activate_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrActivateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/resend-activation":{"post":{"tags":["Fiverr Unlocker"],"summary":"Повторно отправить письмо активации","description":"Просит Fiverr ещё раз прислать код активации на указанный email.","operationId":"resend_activation_api_v1_fiverr_resend_activation_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrResendActivationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/login":{"post":{"tags":["Fiverr Unlocker"],"summary":"Вход в аккаунт Fiverr","description":"Логин по email и паролю. Возвращает cookies авторизованной сессии.\n\nНеверный пароль или бан аккаунта приходят от Fiverr в `response` с `ok: false`, а не HTTP-ошибкой.","operationId":"login_api_v1_fiverr_login_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrLoginRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/phone/send-code":{"post":{"tags":["Fiverr Unlocker"],"summary":"Отправить код на телефон","description":"Запускает верификацию телефона: Fiverr отправляет код на номер.","operationId":"phone_send_code_api_v1_fiverr_phone_send_code_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrPhoneSendCodeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiverr/phone/verify":{"post":{"tags":["Fiverr Unlocker"],"summary":"Подтвердить телефон кодом","description":"Завершает верификацию телефона кодом, полученным после `/phone/send-code`.","operationId":"phone_verify_api_v1_fiverr_phone_verify_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrPhoneVerifyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiverrApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Country":{"type":"string","enum":["de","fr","it","es","pt","nl","be","ch","at","pl","cz","sk","hu","ro","bg","gr","tr","gb","ie","no","se","fi","dk","us","ca","mx","br","ar","cn","jp","kr","ind","au","sg","hr","my","ee","lv","lt","lu","si","af","al","dz","ao","am","az","bs","bh","bd","by","bj","bt","bo","ba","bw","bf","kh","cm","cv","td","cl","co","km","cd","cr","cy","do","ec","eg","sv","et","gm","gh","gt","gy","ht","hn","hk","is","id","il","ci","jm","jo","kz","ke","xk","kw","kg","la","ls","ly","mo","mk","mg","mw","ml","mt","md","mn","me","ma","mz","mm","np","nz","ni","ng","om","pk","ps","pa","py","pe","ph","pr","qa","re","ru","rw","sa","sn","rs","sl","so","za","lk","sd","tw","tj","tz","th","tg","tt","tn","tm","ug","ua","ae","uy","uz","ve","vn","ye","zm","zw"],"title":"Country"},"FiverrActivateRequest":{"properties":{"activation_code":{"type":"integer","title":"Код активации","description":"Шесть цифр из письма.","examples":[123456]},"auth_cookies":{"additionalProperties":{"type":"string"},"type":"object","title":"Cookies аккаунта","description":"Cookies аккаунта из поля `cookies` ответа предыдущего шага (`/register` или `/login`).","examples":[{"_fiverr_session_key":"…","hodor_creds":"…"}]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["activation_code","auth_cookies","proxy"],"title":"FiverrActivateRequest"},"FiverrApiResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","description":"`true`, если Fiverr ответил 2xx."},"status":{"type":"integer","title":"Status","description":"HTTP-статус ответа Fiverr.","examples":[200]},"response":{"title":"Response","description":"Тело ответа Fiverr как есть.","examples":[{"status":"success"}]},"cookies":{"additionalProperties":{"type":"string"},"type":"object","title":"Cookies","description":"Cookies аккаунта после запроса - передавайте в `auth_cookies` следующего шага.","examples":[{"_fiverr_session_key":"…","hodor_creds":"…"}]}},"type":"object","required":["ok","status"],"title":"FiverrApiResponse"},"FiverrLoginRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["seller@example.com"]},"password":{"type":"string","title":"Пароль","examples":["S3cure-pass"]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["email","password","proxy"],"title":"FiverrLoginRequest"},"FiverrPhoneSendCodeRequest":{"properties":{"phone_number":{"type":"string","title":"Номер телефона","description":"Номер без кода страны.","examples":["2025550143"]},"dial_code":{"type":"string","title":"Код страны","description":"Телефонный код с `+`.","examples":["+1"]},"country":{"type":"string","title":"Страна","description":"Название страны на английском.","examples":["United States"]},"channel":{"type":"string","title":"Канал","description":"Как доставить код, обычно `sms`.","examples":["sms"]},"auth_cookies":{"additionalProperties":{"type":"string"},"type":"object","title":"Cookies аккаунта","description":"Cookies аккаунта из поля `cookies` ответа предыдущего шага (`/register` или `/login`).","examples":[{"_fiverr_session_key":"…","hodor_creds":"…"}]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["phone_number","dial_code","country","channel","auth_cookies","proxy"],"title":"FiverrPhoneSendCodeRequest"},"FiverrPhoneVerifyRequest":{"properties":{"code":{"type":"string","title":"Код из SMS","examples":["4821"]},"auth_cookies":{"additionalProperties":{"type":"string"},"type":"object","title":"Cookies аккаунта","description":"Cookies аккаунта из поля `cookies` ответа предыдущего шага (`/register` или `/login`).","examples":[{"_fiverr_session_key":"…","hodor_creds":"…"}]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["code","auth_cookies","proxy"],"title":"FiverrPhoneVerifyRequest"},"FiverrRegisterRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["seller@example.com"]},"password":{"type":"string","title":"Пароль","examples":["S3cure-pass"]},"username":{"type":"string","title":"Username","description":"6-15 символов: латиница, цифры, `_`, начинается с буквы.","examples":["cool_seller_42"]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["email","password","username","proxy"],"title":"FiverrRegisterRequest"},"FiverrResendActivationRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["seller@example.com"]},"auth_cookies":{"additionalProperties":{"type":"string"},"type":"object","title":"Cookies аккаунта","description":"Cookies аккаунта из поля `cookies` ответа предыдущего шага (`/register` или `/login`).","examples":[{"_fiverr_session_key":"…","hodor_creds":"…"}]},"proxy":{"type":"string","title":"Прокси","description":"Прокси, через который идут все запросы к Fiverr: `[scheme://][user:pass@]host:port`. Для цепочки одного аккаунта используйте один и тот же IP.","examples":["http://user:pass@1.2.3.4:8000"]}},"type":"object","required":["email","auth_cookies","proxy"],"title":"FiverrResendActivationRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ParserListing":{"properties":{"row_id":{"type":"integer","title":"Row Id","description":"Внутренний id, использовать для cursor пагинации."},"platform":{"$ref":"#/components/schemas/Platform"},"platform_id":{"type":"string","title":"Platform Id"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"country":{"$ref":"#/components/schemas/Country"},"category":{"type":"string","title":"Category"},"url":{"type":"string","title":"Url"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"delivery":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Delivery"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"seller_id":{"type":"string","title":"Seller Id"},"seller_name":{"type":"string","title":"Seller Name"},"seller_url":{"type":"string","title":"Seller Url"},"seller_listing_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seller Listing Count"},"seller_review_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seller Review Count"},"seller_sell_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seller Sell Count"},"seller_chat_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seller Chat Url"},"seller_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seller Email"},"seller_created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Seller Created At"}},"type":"object","required":["row_id","platform","platform_id","title","description","country","category","url","image","price","currency","delivery","created_at","seller_id","seller_name","seller_url","seller_listing_count","seller_review_count","seller_sell_count","seller_chat_url","seller_email","seller_created_at"],"title":"ParserListing","description":"Один листинг в выдаче. Подмножество ListingData полей,\nплюс id-row из join-таблицы для использования в cursor.","examples":[{"category":"men","country":"de","created_at":"2026-08-30T12:58:11.402931Z","currency":"EUR","delivery":true,"description":"Оригинал, состояние 9/10, подошва без износа.","image":"https://images1.vinted.net/t/01_00abc/f800/4839201755.jpeg","platform":"vinted","platform_id":"4839201755","price":74.9,"row_id":458219,"seller_chat_url":"https://www.vinted.de/inbox/new/218374012","seller_created_at":"2023-04-12T08:21:00Z","seller_email":"lukas.k@example.com","seller_id":"218374012","seller_listing_count":142,"seller_name":"lukas_shop","seller_review_count":87,"seller_sell_count":63,"seller_url":"https://www.vinted.de/member/218374012","title":"Nike Air Max 90, размер 42","url":"https://www.vinted.de/items/4839201755-nike-air-max-90"}]},"ParserListingsPage":{"properties":{"task_id":{"type":"integer","title":"Task Id"},"status":{"$ref":"#/components/schemas/ParserTaskStatus"},"listings":{"items":{"$ref":"#/components/schemas/ParserListing"},"type":"array","title":"Listings"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor","description":"Курсор для следующей страницы. Передай как query-параметр `?cursor=...`. `null` означает последнюю страницу."},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["task_id","status","listings","has_more"],"title":"ParserListingsPage","examples":[{"has_more":true,"listings":[{"category":"men","country":"de","created_at":"2026-08-30T12:58:11.402931Z","currency":"EUR","delivery":true,"description":"Оригинал, состояние 9/10, подошва без износа.","image":"https://images1.vinted.net/t/01_00abc/f800/4839201755.jpeg","platform":"vinted","platform_id":"4839201755","price":74.9,"row_id":458219,"seller_chat_url":"https://www.vinted.de/inbox/new/218374012","seller_created_at":"2023-04-12T08:21:00Z","seller_email":"lukas.k@example.com","seller_id":"218374012","seller_listing_count":142,"seller_name":"lukas_shop","seller_review_count":87,"seller_sell_count":63,"seller_url":"https://www.vinted.de/member/218374012","title":"Nike Air Max 90, размер 42","url":"https://www.vinted.de/items/4839201755-nike-air-max-90"}],"next_cursor":458119,"status":"pending","task_id":1287}]},"ParserPlatformSchema":{"properties":{"platform":{"$ref":"#/components/schemas/Platform"},"countries":{"items":{"type":"string"},"type":"array","title":"Countries","description":"Допустимые country codes."},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","description":"Допустимые category values."},"supported_filters":{"items":{"type":"string"},"type":"array","title":"Supported Filters","description":"Допустимые ключи в `filters` для этой площадки."}},"type":"object","required":["platform","countries","categories","supported_filters"],"title":"ParserPlatformSchema"},"ParserSchemaResponse":{"properties":{"platforms":{"items":{"$ref":"#/components/schemas/ParserPlatformSchema"},"type":"array","title":"Platforms"},"filter_columns":{"items":{"type":"string"},"type":"array","title":"Filter Columns","description":"Все возможные ключи фильтров (полное множество по всем площадкам)."}},"type":"object","required":["platforms","filter_columns"],"title":"ParserSchemaResponse","examples":[{"filter_columns":["categories","countries","created_at_period","internal_listing_count","internal_view_count","price_max","price_min","seller_email","stop_words"],"platforms":[{"categories":["women","men","kids"],"countries":["de","fr","pl","es"],"platform":"vinted","supported_filters":["categories","countries","created_at_period","price_max","price_min","seller_email","stop_words"]}]}]},"ParserStartRequest":{"properties":{"platform":{"$ref":"#/components/schemas/Platform","description":"Площадка для парсинга."},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"Произвольные фильтры. Допустимые ключи зависят от площадки - получи через `GET /api/v1/parser/schema`. Неизвестные ключи вызовут 422."}},"type":"object","required":["platform"],"title":"ParserStartRequest","examples":[{"filters":{"categories":["women"],"countries":["de"],"created_at_period":"fresh","price_max":80,"seller_email":true},"platform":"vinted"}]},"ParserTaskDetails":{"properties":{"task_id":{"type":"integer","title":"Task Id"},"platform":{"$ref":"#/components/schemas/Platform"},"status":{"$ref":"#/components/schemas/ParserTaskStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"Ненулевые фильтры задачи в том виде, в котором она стартовала."}},"type":"object","required":["task_id","platform","status","created_at"],"title":"ParserTaskDetails","examples":[{"created_at":"2026-08-30T11:24:05.312845Z","filters":{"categories":["women"],"countries":["de"],"created_at_period":"fresh","price_max":80,"seller_email":true},"platform":"vinted","status":"pending","task_id":1287}]},"ParserTaskInfo":{"properties":{"task_id":{"type":"integer","title":"Task Id"},"platform":{"$ref":"#/components/schemas/Platform"},"status":{"$ref":"#/components/schemas/ParserTaskStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"}},"type":"object","required":["task_id","platform","status","created_at"],"title":"ParserTaskInfo","examples":[{"created_at":"2026-08-30T11:24:05.312845Z","platform":"vinted","status":"pending","task_id":1287}]},"ParserTaskStatus":{"type":"string","enum":["pending","stopping","stopped"],"title":"ParserTaskStatus"},"Platform":{"type":"string","enum":["fiverr","depop","poshmark","carousell","vinted","etsy","kleinanzeigen","marktplaats","dehands","tutti","ricardo","offerup","kijiji","mercari","subito","leboncoin"],"title":"Platform"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}