{"id":33916683,"url":"https://github.com/dementevvv/saby_vok","last_synced_at":"2025-12-12T07:27:09.176Z","repository":{"id":325166883,"uuid":"1099356635","full_name":"DementevVV/saby_vok","owner":"DementevVV","description":"Легкий Ruby-клиент для API Всё о компаниях (СБИС)","archived":false,"fork":false,"pushed_at":"2025-11-18T22:35:05.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-19T23:13:39.287Z","etag":null,"topics":["api-client","business-data","inn","ogrn","saby","sbis"],"latest_commit_sha":null,"homepage":"https://dementevvv.github.io/saby_vok/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DementevVV.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-18T22:24:22.000Z","updated_at":"2025-11-18T22:42:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DementevVV/saby_vok","commit_stats":null,"previous_names":["dementevvv/saby_vok"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/DementevVV/saby_vok","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DementevVV%2Fsaby_vok","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DementevVV%2Fsaby_vok/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DementevVV%2Fsaby_vok/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DementevVV%2Fsaby_vok/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DementevVV","download_url":"https://codeload.github.com/DementevVV/saby_vok/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DementevVV%2Fsaby_vok/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27678881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-12T02:00:06.775Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","business-data","inn","ogrn","saby","sbis"],"created_at":"2025-12-12T07:27:08.116Z","updated_at":"2025-12-12T07:27:09.168Z","avatar_url":"https://github.com/DementevVV.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Saby Vok Ruby Client\n\n**saby_vok** - Ruby-клиент для API «Всё о компаниях» (СБИС). Библиотека сама выполняет сервисную авторизацию, автоматически обновляет токены при 401/403, проставляет заголовки `X-SBISAccessToken` и `X-SBISSessionId`, а также умеет работать с JSON и бинарными ответами.\n\n## Требования\n\n- Ruby \u003e= 3.1\n- Действующие `client_id`, `client_secret`, `secret_key` в личном кабинете СБИС\n\n## Установка\n\nЧерез Bundler:\n\n```ruby\ngem \"saby_vok\"\n```\n\nили командой:\n\n```bash\nbundle add saby_vok\n```\n\nБез Bundler:\n\n```bash\ngem install saby_vok\n```\n\nПосле установки подключите библиотеку:\n\n```ruby\nrequire \"saby_vok\"\n```\n\n## Быстрый старт\n\n```ruby\nrequire \"saby_vok\"\n\nclient = SabyVok::Client.new(\n  ENV.fetch(\"SABY_CLIENT_ID\"),\n  ENV.fetch(\"SABY_CLIENT_SECRET\"),\n  ENV.fetch(\"SABY_SECRET_KEY\")\n)\n\ncompanies = client.req(inn: \"7605016030\")\nputs companies.first[\"company_name\"]\n```\n\nБинарные ответы сохраняйте как есть:\n\n```ruby\nFile.binwrite(\"logo.png\", client.logo(inn: \"7605016030\"))\n```\n\n## Обработка ошибок\n\n```ruby\nbegin\n  client.req\nrescue SabyVok::ValidationError =\u003e e\n  warn \"wrong params: #{e.message}\"\nrescue SabyVok::AuthError =\u003e e\n  warn \"auth failed: #{e.message}\"\nrescue SabyVok::HttpError =\u003e e\n  warn \"http #{e.status}: #{e.body}\"\nend\n```\n\n## Конфигурация и синглтон\n\n```ruby\nSabyVok.configure do |config|\n  config.client_id = ENV.fetch(\"SABY_CLIENT_ID\")\n  config.client_secret = ENV.fetch(\"SABY_CLIENT_SECRET\")\n  config.secret_key = ENV.fetch(\"SABY_SECRET_KEY\")\n  config.host = \"https://api.sbis.ru/vok/\"      # опционально\n  config.timeout = 10                           # секунды\n  config.retries = 2\nend\n\nclient = SabyVok.client\n```\n\nНужно обновить настройки - вызовите `SabyVok.reset_client!`, либо создавайте отдельные экземпляры `SabyVok::Client.new(...)` для разных проектов/хостов. Внутри используются мьютексы (`Mutex` и `Mutex_m`), поэтому загрузка токенов и доступ к `SabyVok.client` потокобезопасны.\n\n## Rails / Rack проекты\n\n```ruby\n# Gemfile\ngem \"saby_vok\"\n\n# config/initializers/saby_vok.rb\nSabyVok.configure do |config|\n  creds = Rails.application.credentials.fetch(:saby_vok)\n  config.client_id     = creds.fetch(:client_id)\n  config.client_secret = creds.fetch(:client_secret)\n  config.secret_key    = creds.fetch(:secret_key)\nend\n\n# anywhere in app\nSabyVok.client.req(inn: params[:inn])\n```\n\n## Поддерживаемые методы\n\nJSON:\n\n- `req`, `registration_information`, `tenders_info`, `tenders(limit:, page:)`\n- `finance`, `cost_business`, `reliability`, `reliability_blocks`, `market_position`, `creditworthiness`\n- `owners`, `affiliate`, `dirs_history`, `founders_history`\n- `license_stat`, `license_data`, `inspections_stat`, `inspections_data`\n- `statistic_courts`, `courts`, `executive_lists`, `bankruptcy`, `fea`\n- `subscriptions_events`, `subscriptions_contractors`, `subscribe`, `unsubscribe`\n- `contractor_history`, `contacts_official`, `branches`\n- `excerpts_list`, `excerpts_last`, `search`, `client_stat`\n- `trademarks`, `vehicle`, `vehicle_stat`, `pledges`\n\nБинарные:\n\n- `logo`, `bankruptcy_file`, `events_file`\n- `sro_file`, `excerpts_file`, `trademarks_image`\n- `pdf_business_report`, `pdf_due_diligence_report`, `pdf_financial_report`, `pdf_signed_excerpt`\n- `xml_egrul_excerpt`, `xml_reporting_excerpt`\n- `pledges_file`, `tenders` документы\n\n## Ограничения API\n\n- Нужен хотя бы один из параметров: `inn` или `ogrn`.\n- `kpp` разрешён только вместе с `inn`.\n- Массовые запросы: до 20 значений одного типа (ИНН или ОГРН). Пары ИНН+КПП указывайте перед одиночными ИНН.\n- Пагинация: `limit \u003e 0`, `page \u003e= 0`.\n\n## Демо-окружение\n\n- Базовый URL демо: `https://api.sbis.ru/vok-demo/`.\n- Демо-ИНН: `7605016030`, `7736050003`, `7707049388`, `7814593627`, `7827004484`, `772871281410`, `6382082839`, `7708503727`, `7709464710`.\n- В демо отключены методы, возвращающие файлы.\n\n## Разработка\n\n```bash\nbundle install\nrake test\nrubocop\n```\n\nПулы и багрепорты приветствуются в [issues](https://github.com/DementevVV/saby_vok/issues).\n\n## Лицензия\n\nMIT - см. `LICENSE.txt`.\n\n## Автор\n\nVitalii Dementev - [@DementevVV](https://github.com/DementevVV)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdementevvv%2Fsaby_vok","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdementevvv%2Fsaby_vok","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdementevvv%2Fsaby_vok/lists"}