{"id":28624350,"url":"https://github.com/ikabot-collective/ikabotapi","last_synced_at":"2025-10-06T11:09:40.241Z","repository":{"id":215166354,"uuid":"738254799","full_name":"Ikabot-Collective/IkabotAPI","owner":"Ikabot-Collective","description":"The Ikabot API is a RESTful service crafted to augment Ikabot's capabilities across various scenarios","archived":false,"fork":false,"pushed_at":"2025-09-30T16:13:04.000Z","size":10410,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-30T18:12:26.295Z","etag":null,"topics":["ai","api","artificial-intelligence","docker","fastapi","nginx","python"],"latest_commit_sha":null,"homepage":"https://github.com/Ikabot-Collective/ikabot","language":"Python","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/Ikabot-Collective.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-01-02T19:56:04.000Z","updated_at":"2025-09-30T16:52:34.000Z","dependencies_parsed_at":"2025-03-08T22:18:28.860Z","dependency_job_id":"72a90ce5-4ef5-4c27-b8a7-01bc93ee135f","html_url":"https://github.com/Ikabot-Collective/IkabotAPI","commit_stats":null,"previous_names":["ikabot-collective/ikabotapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ikabot-Collective/IkabotAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikabot-Collective%2FIkabotAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikabot-Collective%2FIkabotAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikabot-Collective%2FIkabotAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikabot-Collective%2FIkabotAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ikabot-Collective","download_url":"https://codeload.github.com/Ikabot-Collective/IkabotAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ikabot-Collective%2FIkabotAPI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278598620,"owners_count":26013291,"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-10-06T02:00:05.630Z","response_time":65,"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":["ai","api","artificial-intelligence","docker","fastapi","nginx","python"],"created_at":"2025-06-12T07:12:26.280Z","updated_at":"2025-10-06T11:09:40.236Z","avatar_url":"https://github.com/Ikabot-Collective.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ikabot API\n\nThe **Ikabot API** is a RESTful service built with **FastAPI**, designed to enhance Ikabot's capabilities across various scenarios.\n\n## Features\n\n### 1. Login Captcha Resolution\n\nEffortlessly handle login captchas with automatic resolution.\n\n### 2. Captcha Resolution for Piracy\n\nAutomatically resolve captchas associated with piracy-related actions.\n\n### 3. Blackbox Token Generation\n\nGenerate Blackbox tokens for streamlined authentication.\n\n---\n\n## Accessing the Hosted API\n\nThe Ikabot API is hosted and publicly accessible. No installation is required; refer to the Wiki for details on available endpoints and their usage.\n\nWhen self-hosting locally:\n\n* Swagger UI → `http://localhost:5000/docs` (development) or `http://localhost:5005/docs` (production-like)\n* ReDoc → `http://localhost:5000/redoc` / `http://localhost:5005/redoc`\n\n---\n\n## Self-Hosting Instructions for Production\n\n### Prerequisites\n\n* **Docker** installed on your Linux server.\n\n### Run the API\n\nYou can launch the API using one of the following methods, depending on whether you want to use Nginx or an existing reverse proxy.\n\n#### Method 1: Using Docker with Nginx\n\n```bash\ndocker-compose up -d --build\n```\n\n* Default port: **80** (configurable in `/nginx/app.conf`).\n\n#### Method 2: Without Nginx (Using an Existing Reverse Proxy)\n\n```bash\ndocker build -t ikabotapi .\ndocker run -d -p 5005:5005 ikabotapi\n```\n\n\u003e Need a different host port?\n\n```bash\ndocker run -d -p 8000:5005 ikabotapi\n```\n\n---\n\n## Development Instructions\n\n### Prerequisites\n\n* **Python 3.10**\n* **Poetry**\n* **Playwright** (browsers required at runtime)\n\n### Setup (local development)\n\n```bash\ngit clone \u003crepo_url\u003e\ncd ikabotapi\n\n# Install all dependencies (main + dev groups from pyproject.toml)\npoetry install\n\n# Install Playwright browsers (Chromium)\n# On Linux: --with-deps is recommended; on macOS/Windows, omit if not needed\npoetry run playwright install --with-deps chromium\n```\n\n### Run (development, with auto-reload)\n\n```bash\npoetry run uvicorn main:app --reload --host 0.0.0.0 --port 5000\n```\n\n* API: `http://localhost:5000`\n* Docs: `http://localhost:5000/docs`\n\n### Run (production-like, mirrors Docker)\n\n```bash\npoetry run uvicorn main:app --host 0.0.0.0 --port 5005 --workers 1 --access-log --log-level info\n```\n\n---\n\n## Running Tests\n\nTest dependencies are already declared under `[tool.poetry.group.dev.dependencies]` in `pyproject.toml`.\n\nRun the test suite:\n\n```bash\npoetry run pytest tests\n```\n\n---\n\n## Configuration\n\nThe API can be configured with environment variables.\n\n### Discord Logging (optional)\n\nYou can enable logging to a Discord channel by setting the `LOGS_WEBHOOK_URL` environment variable.\n\nExample `.env.example`:\n\n```env\n# The Webhook URL of a Discord channel for logs (optional)\nLOGS_WEBHOOK_URL=\n```\n\nOptions to set it:\n\n* Create a local `.env` file (loaded automatically by `python-dotenv`).\n* Or pass it as an environment variable in Docker:\n\n  ```bash\n  docker run -d -p 5005:5005 -e LOGS_WEBHOOK_URL=\"https://discord.com/api/webhooks/xxxx\" ikabotapi\n  ```\n\n---\n\n## Quick Start (API check)\n\n* Open Swagger UI:\n\n  * Dev mode → [http://localhost:5000/docs](http://localhost:5000/docs)\n  * Prod mode → [http://localhost:5005/docs](http://localhost:5005/docs)\n\n* Or test an endpoint with `curl` (replace `\u003cpath\u003e` with one of your endpoints):\n\n```bash\ncurl -X GET \"http://localhost:5000/\u003cpath\u003e\" -H \"accept: application/json\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikabot-collective%2Fikabotapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikabot-collective%2Fikabotapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikabot-collective%2Fikabotapi/lists"}