Portal API
Requests use the portal session. Mutations also require an authorized Origin. The server checks privileges for each operation; a published contract does not grant access to administration endpoints.
Base URL: https://admin.llm.netter.io/api/v1
This index is generated from OpenAPI on every build. Download the complete JSON contract for schemas, parameters, request bodies and responses. Field names and operation identifiers are preserved exactly; source-contract descriptions may be in Italian.
Read Your first request, Protocols and Troubleshooting for examples and limitations.
| Method | Path | Operation | Declared responses |
|---|---|---|---|
GET | /api/v1/me | get_me | 200, 401, 403, 409 |
GET | /api/v1/tenants | get_tenants | 200, 401, 403, 409 |
POST | /api/v1/tenants | post_tenants | 200, 401, 403, 409 |
GET | /api/v1/dashboard | get_dashboard | 200, 401, 403, 409 |
GET | /api/v1/groups | get_groups | 200, 401, 403, 409 |
POST | /api/v1/groups | post_groups | 200, 401, 403, 409 |
POST | /api/v1/groups/{id}/members | post_groups_id_members | 200, 401, 403, 409 |
GET | /api/v1/members | get_members | 200, 401, 403, 409 |
POST | /api/v1/members | post_members | 200, 401, 403, 409 |
GET | /api/v1/keys | get_keys | 200, 401, 403, 409 |
POST | /api/v1/keys | post_keys | 200, 401, 403, 409 |
DELETE | /api/v1/keys/{id} | delete_keys_id | 200, 401, 403, 409 |
GET | /api/v1/policies | get_policies | 200, 401, 403, 409 |
PUT | /api/v1/policies | put_policies | 200, 401, 403, 409 |
GET | /api/v1/providers | get_providers | 200, 401, 403, 409 |
POST | /api/v1/providers | post_providers | 200, 401, 403, 409 |
GET | /api/v1/routes | get_routes | 200, 401, 403, 409 |
POST | /api/v1/routes | post_routes | 200, 401, 403, 409 |
GET | /api/v1/billing | get_billing | 200, 401, 403, 409 |
POST | /api/v1/billing/topups | post_billing_topups | 200, 401, 403, 409 |
POST | /api/v1/billing/allocations | post_billing_allocations | 200, 401, 403, 409 |
POST | /api/v1/billing/schedules | post_billing_schedules | 200, 401, 403, 409 |
POST | /api/v1/billing/transfers | post_billing_transfers | 200, 401, 403, 409 |
POST | /api/v1/billing/commission-agreements | post_billing_commission_agreements | 200, 401, 403, 409 |
GET | /api/v1/admin/payments | get_admin_payments | 200, 401, 403, 409 |
POST | /api/v1/admin/payments/{id}/confirm | post_admin_payments_id_confirm | 200, 401, 403, 409 |
POST | /api/v1/admin/payments/{id}/report | post_admin_payments_id_report | 200, 401, 403, 409 |
POST | /api/v1/admin/payments/{id}/reverse | post_admin_payments_id_reverse | 200, 401, 403, 409 |
POST | /api/v1/admin/invoices/{id}/issue | post_admin_invoices_id_issue | 200, 401, 403, 409 |
GET | /api/v1/admin/users | get_admin_users | 200, 401, 403, 409 |
POST | /api/v1/admin/users/{id}/role | post_admin_users_id_role | 200, 401, 403, 409 |
GET | /api/v1/audit | get_audit | 200, 401, 403, 409 |
POST | /api/v1/chat | post_chat | 200, 401, 403, 409 |
GET | /api/v1/conversations | get_conversations | 200, 401, 403, 409 |
POST | /api/v1/conversations | post_conversations | 200, 401, 403, 409 |
GET | /api/v1/conversations/{id} | get_conversations_id | 200, 401, 403, 409 |
DELETE | /api/v1/conversations/{id} | delete_conversations_id | 200, 401, 403, 409 |
POST | /api/v1/files | post_files | 200, 401, 403, 409 |
GET | /api/v1/files/{id} | get_files_id | 200, 401, 403, 409 |
DELETE | /api/v1/files/{id} | delete_files_id | 200, 401, 403, 409 |
GET | /api/v1/consultations | get_consultations | 200, 401, 403, 409 |
POST | /api/v1/consultations | post_consultations | 200, 401, 403, 409 |
POST | /api/v1/consultations/{id}/{action} | post_consultations_id_action | 200, 401, 403, 409 |
GET | /api/v1/slots | get_slots | 200, 401, 403, 409 |
POST | /api/v1/slots | post_slots | 200, 401, 403, 409 |
GET | /api/v1/privacy/export | get_privacy_export | 200, 401, 403, 409 |
POST | /api/v1/privacy/delete | post_privacy_delete | 200, 401, 403, 409 |
POST | /api/v1/embeddings/reindex-completed | post_embeddings_reindex_completed | 200, 401, 403, 409 |
DELETE | /api/v1/members/{id} | delete_members_id | 200 |
PUT | /api/v1/members/{id} | put_members_id | 200 |
POST | /api/v1/admin/tenants/{id} | post_admin_tenants_id | 200 |
GET | /api/v1/admin/usage | get_admin_usage | 200 |
POST | /api/v1/admin/usage/{id}/reconcile | post_admin_usage_id_reconcile | 200 |
GET | /api/v1/notifications | get_notifications | 200 |
POST | /api/v1/notifications/{id}/read | post_notifications_id_read | 200 |
GET | /api/v1/notifications/settings | get_notification_settings | 200, 401 |
PUT | /api/v1/notifications/settings | update_notification_settings | 200, 401 |
POST | /api/v1/notifications/prompt-dismiss | dismiss_notification_prompt | 200, 401 |
POST | /api/v1/notifications/test | test_notifications | 200, 401 |
GET | /api/v1/notifications/stream | stream_notifications | 200, 401 |
GET | /api/v1/admin/system | getSystemConfiguration | 200, 403 |
PUT | /api/v1/admin/system | updateSystemConfiguration | 200, 400, 403, 409, 503 |
GET | /api/v1/models | get_public_models | 200 |
PUT | /api/v1/models/{name} | rename_public_model | 200, 409 |
GET | /api/v1/chat-exports | get_chat_exports | 200, 401, 403, 409 |
PUT | /api/v1/chat-exports | put_chat_exports | 200, 401, 403, 409 |
POST | /api/v1/chat-exports/test | test_chat_exports | 200, 401, 403, 409 |
POST | /api/v1/billing/topups/{id}/stripe | post_billing_topups_id_stripe | 200, 401, 403, 409 |
POST | /api/v1/stripe/webhook | post_stripe_webhook | 200, 400, 503 |
GET | /api/v1/company-verification | get_company_verification | 200, 400, 401, 403, 404, 409 |
PUT | /api/v1/company-verification | submit_company_verification | 200, 400, 401, 403, 404, 409 |
GET | /api/v1/admin/company-verifications | list_company_verifications | 200, 400, 401, 403, 404, 409 |
GET | /api/v1/admin/company-verifications/{id} | get_company_review | 200, 400, 401, 403, 404, 409 |
POST | /api/v1/admin/company-verifications/{id} | review_company | 200, 400, 401, 403, 404, 409 |
Authorization and use
Select the correct workspace before operating. Portal APIs are separate from the inference gateway. Stripe webhook requests need a valid Stripe signature and cannot credit arbitrary browser-submitted data.