# REST API Reference ## Purpose Summarize the major API groups, their base paths, and key actions as implemented in routing and viewsets. ## Code Locations (exact paths) - Root routing: `backend/igny8_core/urls.py` - Auth endpoints: `backend/igny8_core/auth/urls.py` (APIView + routers) - Account management: `backend/igny8_core/api/urls.py` - Planner: `backend/igny8_core/modules/planner/urls.py` - Writer: `backend/igny8_core/modules/writer/urls.py` - System: `backend/igny8_core/modules/system/urls.py` - Billing: `backend/igny8_core/business/billing/urls.py`, `backend/igny8_core/modules/billing/urls.py` - Automation: `backend/igny8_core/business/automation/urls.py` - Integration: `backend/igny8_core/modules/integration/urls.py` - Linker/Optimizer/Publisher: respective `modules/*/urls.py` ## High-Level Responsibilities - Provide RESTful CRUD endpoints for core resources (auth, planner, writer, billing, automation, integration, etc.) plus custom actions for domain workflows (automation run, billing payments, integration sync, content generation). ## Detailed Behavior (by group) - Authentication (`/api/v1/auth/`): - Routers: groups, users, accounts, subscriptions, site-access, plans, sites, sectors, industries, seed-keywords. - APIViews: register, login, change password, refresh token; responses issue JWTs and session login. - CSV admin helpers exposed separately under `/admin/igny8_core_auth/...` for industries/seed keywords. - Account management (`/api/v1/account/`): - Settings (`settings/` get/patch), team (`team/` list/create, `team//` delete), usage analytics (`usage/analytics/`). - Planner (`/api/v1/planner/`): - `keywords/`, `clusters/`, `ideas/` (CRUD, filtering/search/ordering, bulk delete/update, bulk add from seed). - Writer (`/api/v1/writer/`): - `tasks/`, `images/`, `content/`, `taxonomies/` (CRUD, filtering/search/ordering). - Custom actions: `tasks/auto_generate_content` (AI generation), `tasks/bulk_*`, `images/file`, grouped image utilities; content/taxonomy helpers in viewset. - System (`/api/v1/system/`): system settings, prompts, author profiles, etc. (see module docs). - Billing (`/api/v1/billing/`): - Invoices (`invoices/`, detail, `download_pdf`), payments (`payments/`, `available_methods`, manual payment), credit packages (`credit-packages/`, purchase), transactions (`transactions/`), payment methods (`payment-methods/`, `set_default`), credits (`credits/balance`, `credits/usage`, `credits/transactions`). - Admin billing under `/api/v1/admin/` (see module billing admin URLs). - Automation (`/api/v1/automation/`): - Config (`config`, `update_config`), run (`run_now`), current run, history, logs, estimate, pipeline_overview, current_processing, pause/resume/cancel. - Integration (`/api/v1/integration/`): - `integrations/` CRUD, `test_connection`, collection-level `test-connection`, `sync`, `sync_status`, `update-structure`, `get_content_types`, `debug_status`, `sync_wordpress_content`. - Webhooks: `/webhooks/wordpress/status/`, `/webhooks/wordpress/metadata/`. - Linker/Optimizer/Publisher: endpoints under `/api/v1/linker/`, `/api/v1/optimizer/`, `/api/v1/publisher/` (viewsets for respective domain resources; see module docs). ## Data Structures / Models Involved (no code) - Auth/account models, planner models (Keywords/Clusters/ContentIdeas), writer models (Tasks/Content/Images/Taxonomy), billing models (invoices/payments/credits), automation models (runs/configs), integration models (SiteIntegration/SyncEvent), and other module models as routed above. ## Execution Flow - Requests hit module routers; viewsets/actions enforce permissions, throttles, and tenancy; serializers map models; responses use unified format. ## Cross-Module Interactions - Auth JWTs used by all modules. - Billing credits checked in writer/automation flows; billing endpoints expose balances/usage. - Integration and publishing rely on writer content; automation depends on planner/writer data. ## State Transitions - Managed by respective viewsets (e.g., task status, automation status, invoice/payment status). ## Error Handling - Unified error responses; 4xx/5xx codes per viewset logic; throttling per scope. ## Tenancy Rules - Base viewsets enforce account/site/sector filtering; API key auth supports WordPress paths; admin/developer/system roles may bypass filters as coded in base viewsets/auth middleware. ## Billing Rules - Credits enforced in writer/automation service calls; billing endpoints expose ledger/usage/balance; insufficient credits return 402 where applicable. ## Background Tasks / Schedulers - Automation actions enqueue Celery runs; writer content generation may enqueue AI tasks; other modules mostly synchronous. ## Key Design Considerations - Consistent `/api/v1/` namespace with per-module routers. - OpenAPI schema available at `/api/schema`, Swagger at `/api/docs`, Redoc at `/api/redoc`. - Use module docs for endpoint-level details; this file outlines the map of API groups and actions.