BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
public_html
/
app.imagivibe.com
/
storage
/
api-docs
📤 Upload
📝 New File
📁 New Folder
Close
Editing: api-docs.json
{ "openapi": "3.0.0", "info": { "title": "MagicAI ApplicationAPI", "version": "1.0.0" }, "paths": { "/api/aichat/history/{cat_slug}": { "get": { "tags": [ "AI Chats (Convesations)" ], "summary": "Get chatbot conversations", "description": "get chatbot conversations by template category slug.", "operationId": "getOpenAIChat", "parameters": [ { "name": "cat_slug", "in": "path", "description": "cat_slug of the OpenAI chat category", "required": true, "schema": { "type": "string", "example": "ai-chat-bot" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "category": { "type": "object" }, "conversations": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "404": { "description": "Category not found" } }, "security": [ { "passport": [] } ] } }, "/api/aichat/recent-chats": { "get": { "tags": [ "AI Chats (Convesations)" ], "summary": "Get recent chatbot conversations", "description": "get chatbot conversations by last 20 recent documents.", "operationId": "recentChats", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "conversations": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aichat/search-recent-chats": { "post": { "tags": [ "AI Chats (Convesations)" ], "summary": "Search all chatbot conversations and return last 20", "description": "Search all chatbot conversations and return last 20 recent.", "operationId": "searchRecentChats", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "conversations": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aichat/new-chat": { "post": { "tags": [ "AI Chats (Convesations)" ], "summary": "Create new chat conversation", "description": "Create new chat conversation", "operationId": "startNewChat", "requestBody": { "description": "Request chat template data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "category_id": { "description": "Category (Template) ID", "type": "string" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/aichat/history": { "delete": { "tags": [ "AI Chats (Convesations)" ], "summary": "Delete a conversation", "description": "Delete a conversation and all its messages", "operationId": "deleteChat", "requestBody": { "description": "Conversation ID to delete", "required": true, "content": { "application/json": { "schema": { "properties": { "conver_id": { "type": "string", "example": "109" } }, "type": "object" } } } }, "responses": { "204": { "description": "Successful operation" }, "401": { "description": "Unauthenticated" }, "403": { "description": "Forbidden" }, "404": { "description": "Chat not found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] }, "patch": { "tags": [ "AI Chats (Convesations)" ], "summary": "Rename a conversation", "description": "Rename a user's OpenAI conversation.", "operationId": "renameChat", "requestBody": { "description": "Chat ID and new title", "required": true, "content": { "application/json": { "schema": { "properties": { "conver_id": { "type": "string", "example": "109" }, "title": { "type": "string", "example": "New Chat Title" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation" }, "401": { "description": "Unauthenticated" }, "403": { "description": "Forbidden" }, "404": { "description": "Chat not found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/aichat/search-history": { "post": { "tags": [ "AI Chats (Convesations)" ], "summary": "Search for chats in template category", "description": "Search for user's OpenAI chats based on the provided category and search word.", "operationId": "searchChatHistory", "requestBody": { "description": "Category ID and search word", "required": true, "content": { "application/json": { "schema": { "properties": { "category_id": { "type": "integer", "example": 1 }, "search_word": { "type": "string", "example": "keyword" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "html": { "type": "string" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aichat/chat/chat-send": { "get": { "tags": [ "AI Chats (Convesations)" ], "summary": "Retrieve chat details", "operationId": "chatOutputGet", "parameters": [ { "name": "conver_id", "in": "query", "description": "ID of the chat", "required": true, "schema": { "type": "integer" } }, { "name": "message_id", "in": "query", "description": "ID of the message", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful response", "content": { "text/event-stream": { "schema": { "type": "string", "example": "data: This is a streamed response\\n\\n" } } } }, "404": { "description": "Chat or message not found", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Chat or message not found" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] }, "post": { "tags": [ "AI Chats (Convesations)" ], "summary": "Process chat output", "operationId": "chatOutputPost", "requestBody": { "description": "Request body for chat output", "required": true, "content": { "application/json": { "schema": { "properties": { "conver_id": { "type": "integer", "example": "31" }, "prompt": { "type": "string", "example": "Your chat prompt goes here" }, "category_id": { "type": "integer", "example": "1" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "properties": { "conver_id": { "type": "integer", "example": "1" }, "message_id": { "type": "integer", "example": "123" } }, "type": "object" } } } }, "419": { "description": "No credits left", "content": { "application/json": { "schema": { "properties": { "errors": { "type": "array", "items": { "type": "string" }, "example": [ "You have no credits left. Please consider upgrading your plan." ] } }, "type": "object" } } } }, "500": { "description": "Error from API call", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Error from API call. Please try again. If error persists again, please contact the system administrator." } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aichat/chat/{conver_id}": { "get": { "tags": [ "AI Chats (Messages)" ], "summary": "Get OpenAI conversation details (relate category, related conversation, related chat_completions)", "description": "Get OpenAI conversation by conver_id.", "operationId": "conversations", "parameters": [ { "name": "conver_id", "in": "path", "description": "conver_id of the OpenAI chat conversations", "required": true, "schema": { "type": "string", "example": "31" } } ], "responses": { "200": { "description": "Successful operation" }, "404": { "description": "Category not found" } }, "security": [ { "passport": [] } ] } }, "/api/aichat/chat/{conver_id}/messages/{id}": { "get": { "tags": [ "AI Chats (Messages)" ], "summary": "Get OpenAI chat details (relate category, related conversation, related messages, related chat_completions).", "description": "Get OpenAI chat details (relate category, related conversation, related messages, related chat_completions). ID parameter is optional. To get all messages end path with /messages", "operationId": "conversationChats", "parameters": [ { "name": "conver_id", "in": "path", "description": "conver_id of the OpenAI chat conversations", "required": true, "schema": { "type": "string", "example": "31" } }, { "name": "id", "in": "path", "description": "id of the OpenAI chat message. Use to get one message only", "required": false, "schema": { "type": "string", "example": "0" } }, { "name": "page", "in": "query", "description": "Page number", "schema": { "type": "integer", "default": 1 } }, { "name": "per_page", "in": "query", "description": "Items per page", "schema": { "type": "integer", "default": 10 } } ], "responses": { "200": { "description": "Successful operation" }, "404": { "description": "Category not found" } }, "security": [ { "passport": [] } ] } }, "/api/general/recent-documents": { "get": { "tags": [ "General (Helpers)" ], "summary": "Get the last 6 recent documents", "description": "Get the last 6 recent documents for the authenticated user, excluding documents of type 'image'.", "operationId": "getRecentDocuments", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/general/favorite-openai": { "get": { "tags": [ "General (Helpers)" ], "summary": "Get last 6 favorite OpenAI items", "description": "Get the last 6 favorite OpenAI items for the authenticated user.", "operationId": "openAIFavoritesList", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "properties": { "id": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Post Title Generator" }, "description": { "type": "string", "example": "Get captivating post titles instantly with our title generator. Boost engagement and save time." }, "slug": { "type": "string", "example": "post_title_generator" }, "active": { "type": "integer", "example": 1 }, "questions": { "type": "string", "example": "" }, "image": { "type": "string", "example": "" }, "premium": { "type": "integer", "example": 0 }, "type": { "type": "string", "example": "text" }, "created_at": { "type": "string", "example": "2023-03-11T08:26:49.000000Z" }, "updated_at": { "type": "string", "example": "2023-03-11T08:26:49.000000Z" }, "prompt": { "type": "string", "nullable": true }, "custom_template": { "type": "integer", "example": 0 }, "tone_of_voice": { "type": "integer", "example": 0 }, "color": { "type": "string", "example": "#A3D6C2" }, "filters": { "type": "string", "example": "blog" }, "package": { "type": "string", "nullable": true }, "pivot": { "properties": { "user_id": { "type": "integer", "example": 1 }, "openai_id": { "type": "integer", "example": 1 } }, "type": "object" } }, "type": "object" } } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/general/search": { "post": { "tags": [ "General (Helpers)" ], "summary": "Search for templates, workbooks, and AI chats", "description": "Search for templates, workbooks, and AI chats based on the provided keyword.", "operationId": "search", "requestBody": { "description": "Keyword for the search", "required": true, "content": { "application/json": { "schema": { "properties": { "search": { "type": "string", "example": "keyword" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "template_search": { "type": "array", "items": { "type": "object" } }, "workbook_search": { "type": "array", "items": { "type": "object" } }, "ai_chat_search": { "type": "array", "items": { "type": "object" } }, "result": { "type": "string" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generate": { "post": { "tags": [ "AI Writer" ], "summary": "Build AI-generated content please see the function there is custom inputs foreach template", "description": "Build AI-generated content based on user input.", "operationId": "buildOutputApi", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "post_type": { "type": "string", "enum": [ "post_title_generator", "article_generator", "summarize_text", "product_description", "product_name", "testimonial_review", "problem_agitate_solution", "blog_section", "blog_post_ideas", "blog_intros", "blog_conclusion", "facebook_ads", "youtube_video_description", "youtube_video_title", "youtube_video_tag", "instagram_captions", "instagram_hashtag", "social_media_post_tweet", "social_media_post_business", "facebook_headlines", "google_ads_headlines", "google_ads_description", "content_rewrite", "paragraph_generator", "pros_cons", "meta_description", "faq_generator", "email_generator", "email_answer_generator", "newsletter_generator", "grammar_correction", "tldr_summarization", "ai_image_generator", "ai_code_generator" ], "example": "summarize_text" }, "maximum_length": { "description": "Maximum length of the generated text", "type": "integer", "example": 200 }, "number_of_results": { "description": "Number of summary results to generate", "type": "integer", "example": 1 }, "creativity": { "description": "Creativity level for the generated content (0 to 1)", "type": "number", "example": 0.75 }, "tone_of_voice": { "description": "Tone of voice for the generated content", "type": "string", "example": "Professional" }, "language": { "description": "Language code for the input text", "type": "string", "example": "en-US" }, "text_to_summary": { "description": "Text to be summarized", "type": "string", "example": "dfg" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "message_id": { "description": "ID of the generated content message", "type": "integer" }, "workbook": { "description": "Details about the generated content workbook", "type": "object" }, "creativity": { "description": "Creativity factor (between 0 and 1)", "type": "number" }, "maximum_length": { "description": "Maximum length of the generated content", "type": "integer" }, "number_of_results": { "description": "Number of desired results", "type": "integer" }, "inputPrompt": { "description": "User input prompt", "type": "string" }, "generated_content": { "description": "Generated content", "type": "string" } }, "type": "object" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "properties": { "errors": { "description": "Error message", "type": "string" } }, "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "properties": { "error": { "description": "Internal Server Error", "type": "string" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiimage/versions": { "get": { "tags": [ "AI Image Generation" ], "summary": "Get Model Versions for AI Image Generation (DALL-E, Stable Diffusion) from settings", "description": "Get Model Versions for AI Image Generation", "operationId": "versions", "responses": { "200": { "description": "Successful operation" } }, "security": [ { "passport": [] } ] } }, "/api/aiimage/check-availability": { "get": { "tags": [ "AI Image Generation" ], "summary": "Check if image generation is active / available", "description": "Check if image generation is active", "operationId": "checkActiveGeneration", "responses": { "200": { "description": "Image generation is available." }, "409": { "description": "Image generation in progress. Please try again later." } }, "security": [ { "passport": [] } ] } }, "/api/aiimage/generate-image": { "post": { "tags": [ "AI Image Generation" ], "summary": "Generate Image (DALL-E / Stable Diffusion parameters required in request)", "description": "Generate Image", "operationId": "generateImage", "responses": { "200": { "description": "Image generation successful. Image info in json response [images]." }, "409": { "description": "Image generation in progress. Please try again later." } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generator/{slug}": { "get": { "tags": [ "AI Writer" ], "summary": "returns the openai writer info and related user generated docs", "description": "Retrieve details of an OpenAI generator by slug", "operationId": "openAIGeneratorApi", "parameters": [ { "name": "slug", "in": "path", "description": "Slug of the OpenAI generator", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "openai": { "type": "object" }, "userOpenai": { "type": "object" } }, "type": "object" } } } }, "404": { "description": "OpenAI generator not found", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Resource not found" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generator/{slug}/workbook": { "get": { "tags": [ "AI Writer" ], "summary": "returns the openai writer info ", "description": "Retrieve details of an OpenAI generator workbook by slug", "operationId": "openAIGeneratorWorkbookApi", "parameters": [ { "name": "slug", "in": "path", "description": "Slug of the OpenAI generator", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "openai": { "type": "object" } }, "type": "object" } } } }, "404": { "description": "OpenAI generator not found", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Resource not found" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generate-output": { "post": { "tags": [ "AI Writer" ], "summary": "Streaming Text Output", "description": "Handle streamed text output based on specified parameters.", "operationId": "77d4ddc47c1c65d83222acc81ec45458", "parameters": [ { "name": "message_id", "in": "query", "description": "ID of the message", "required": true, "schema": { "type": "integer", "example": 1 } }, { "name": "creativity", "in": "query", "description": "Creativity level for the generated content (0 to 1)", "required": true, "schema": { "type": "integer", "example": 1 } }, { "name": "maximum_length", "in": "query", "description": "Maximum length of the generated text", "required": true, "schema": { "type": "integer", "example": 500 } }, { "name": "number_of_results", "in": "query", "description": "Number of summary results to generate", "required": true, "schema": { "type": "integer", "example": 1 } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "properties": { "status": { "type": "string", "example": "DONE" } }, "type": "object" } } } }, "412": { "description": "Precondition Failed" }, "500": { "description": "Error response", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Error from API call. Please try again." } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generate/lazyload": { "get": { "tags": [ "AI Writer" ], "summary": "Lazy Load Images", "description": "Load images based on the specified parameters.", "operationId": "1a8987bdfc501929bf043154e4a447b2", "parameters": [ { "name": "post_type", "in": "query", "description": "Type of post", "required": true, "schema": { "type": "string", "enum": [ "ai_image_generator" ], "example": "ai_image_generator" } }, { "name": "offset", "in": "query", "description": "Offset for lazy loading", "required": false, "schema": { "type": "integer", "example": 0 } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "properties": { "images": { "description": "Array of images", "type": "array", "items": { "type": "string" } }, "hasMore": { "description": "Indicates whether there are more images", "type": "boolean" } }, "type": "object" } } } }, "404": { "description": "Post not found", "content": { "application/json": { "schema": { "properties": { "error": { "description": "Error message", "type": "string" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/generate/save": { "post": { "tags": [ "AI Writer" ], "summary": "Low Generate Save", "description": "Save the generated response and update user information.", "operationId": "b75116ced05d0eb8ed50cf07ef763767", "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { "message_id": { "description": "ID of the message", "type": "integer", "example": 1 }, "response": { "description": "Generated response", "type": "string", "example": "This is a generated response." } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "properties": { "status": { "type": "string", "example": "Data saved successfully." } }, "type": "object" } } } }, "500": { "description": "Error response", "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "example": "Error saving data." } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/openai-list": { "get": { "tags": [ "AI Writer" ], "summary": "Gets all AI Generators related to text", "description": "Gets all AI Generators related to text. Controls user access to premium generators.", "operationId": "getOpenAIWriterList", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/favorite-openai-list": { "get": { "tags": [ "AI Writer" ], "summary": "Gets favorite openai list", "description": "Returns favorite openai id list of current user.", "operationId": "favoriteOpenaiList", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/favorite-openai-list-add": { "post": { "tags": [ "AI Writer" ], "summary": "Adds openai to favorite openai list", "description": "Returns favorite openai id list of current user.", "operationId": "addToFavoriteOpenaiList", "parameters": [ { "name": "openai_id", "in": "query", "description": "OpenAI ID", "required": true, "schema": { "type": "integer", "example": 0 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/aiwriter/favorite-openai-list-remove": { "post": { "tags": [ "AI Writer" ], "summary": "Removes openai from favorite openai list", "description": "Returns favorite openai id list of current user.", "operationId": "removeFromFavoriteOpenaiList", "parameters": [ { "name": "openai_id", "in": "query", "description": "OpenAI ID", "required": true, "schema": { "type": "integer", "example": 0 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "404": { "description": "Not found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/affiliates/": { "get": { "tags": [ "Affiliates" ], "summary": "Get affiliate totals of current user", "description": "Get affiliate earnings and withdrawal totals of current user.", "operationId": "affiliates", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/affiliates/withdrawals": { "get": { "tags": [ "Affiliates" ], "summary": "Get withdrawals of current user", "description": "Get affiliate withdrawals list of current user.", "operationId": "withdrawals", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/affiliates/request-withdrawal": { "post": { "tags": [ "Affiliates" ], "summary": "Request withdrawal for current user", "description": "Request withdrawal for current user", "operationId": "requestWithdrawal", "requestBody": { "description": "Request withdrawal data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "affiliate_bank_account": { "description": "Bank Account info", "type": "string" }, "amount": { "description": "Amount to withdraw", "type": "number", "format": "float" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/app/email-confirmation-setting": { "get": { "tags": [ "App Settings" ], "summary": "Get email confirmation setting", "description": "Get the email confirmation setting from the application settings.", "operationId": "getEmailConfirmationSetting", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" }, "example": { "emailconfirmation": true } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "bearerAuth": [] } ] } }, "/api/app/get-setting": { "get": { "tags": [ "App Settings" ], "summary": "Get application settings", "description": "Get general application settings.", "operationId": "getAppSettings", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "bearerAuth": [] } ] } }, "/api/app/usage-data": { "get": { "tags": [ "App Settings" ], "summary": "Get usage data of current user", "description": "Get usage data and subscription plan details of current user.", "operationId": "getUsageData", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/app/currency/{id?}": { "get": { "tags": [ "App Settings" ], "summary": "Get default currency", "description": "Returns default currency if id is not provided, else returns currency by id. Use 'all' to get all currencies.", "operationId": "getCurrency", "parameters": [ { "name": "id", "in": "path", "description": "Id of currency or 'all' or null to get default currency.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "404": { "description": "No currency found." } }, "security": [ { "passport": [] } ] } }, "/api/auth/logo": { "get": { "tags": [ "General (Helpers)" ], "summary": "Get default logo", "description": "Returns default logo from settings.", "operationId": "getLogo", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "404": { "description": "No logo found." } }, "security": [ { "passport": [] } ] } }, "/api/auth/register": { "post": { "tags": [ "Authentication" ], "summary": "Register a new user", "description": "Registers a new user with the provided data", "operationId": "register", "requestBody": { "required": true, "content": { "application/json": { "schema": { "required": [ "name", "surname", "email", "password", "password_confirmation" ], "properties": { "name": { "type": "string", "example": "John" }, "surname": { "type": "string", "example": "Doe" }, "email": { "type": "string", "format": "email", "example": "john.doe@example.com" }, "password": { "type": "string", "format": "password", "example": "password123" }, "password_confirmation": { "type": "string", "format": "password", "example": "password123" }, "affiliate_code": { "type": "string", "example": "your_affiliate_code", "nullable": true } }, "type": "object" } } } }, "responses": { "201": { "description": "User registered successfully" }, "422": { "description": "Validation error or user already exists" } } } }, "/api/auth/logout": { "post": { "tags": [ "Authentication" ], "summary": "Logout the authenticated user", "description": "Logs out the authenticated user and revokes the access token", "operationId": "logout", "responses": { "200": { "description": "Logout successful" }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/auth/forgot-password": { "post": { "tags": [ "Authentication" ], "summary": "Initiate password reset", "description": "Initiate the password reset process by sending an email with a reset link.", "operationId": "forgotPassword", "requestBody": { "required": true, "content": { "application/json": { "schema": { "required": [ "email" ], "properties": { "email": { "type": "string", "format": "email", "example": "user@example.com" } }, "type": "object" } } } }, "responses": { "200": { "description": "Password reset link sent successfully" }, "422": { "description": "Validation error or user not found" } } } }, "/api/auth/email/verify": { "get": { "tags": [ "Authentication" ], "summary": "Verify user's email", "description": "Verify the user's email using the provided confirmation code.", "operationId": "verifyEmail", "parameters": [ { "name": "email_confirmation_code", "in": "query", "description": "Email confirmation code", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Email verified successfully" }, "422": { "description": "Validation error or user not found" } } } }, "/api/auth/email/verify/resend": { "post": { "tags": [ "Authentication" ], "summary": "Resend confirmation email", "description": "Resend the confirmation email to the user if not already verified.", "operationId": "resendConfirmationEmail", "requestBody": { "required": true, "content": { "application/json": { "schema": { "required": [ "email" ], "properties": { "email": { "type": "string", "format": "email", "example": "user@example.com" } }, "type": "object" } } } }, "responses": { "200": { "description": "Confirmation email resent successfully", "content": { "application/json": { "schema": { "type": "object" }, "example": { "message": "Confirmation email resent successfully" } } } }, "403": { "description": "Email already verified", "content": { "application/json": { "schema": { "type": "object" }, "example": { "error": "Email already verified" } } } } } } }, "/api/auth/social-login": { "get": { "tags": [ "Authentication" ], "summary": "Get supported login methods", "description": "Get actively supported login methods as a list.", "operationId": "getSupportedLoginMethods", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string", "example": "github" } }, "example": [ "github", "google" ] } } } } } }, "/api/aichat/chat-templates": { "get": { "tags": [ "Chat Templates" ], "summary": "Get a list of chat templates or single one if id passed", "description": "Get a list of chat templates ordered by name in ascending order. If an ID is provided, it will retrieve a single chat template.", "operationId": "ChatTemplatesController::index", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] }, "post": { "tags": [ "Chat Templates" ], "summary": "!!PATCH REQUEST!! see payload '_method' Update a chat template - post used only for test", "description": "Update the specified chat template in storage. If `template_id` is 'undefined' or `null`, a new template will be created.", "operationId": "ChatTemplatesController@update", "requestBody": { "description": "Chat template data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "_method": { "description": "ID of the chat template", "type": "string", "default": "PATCH" }, "template_id": { "description": "ID of the chat template", "type": "string" }, "name": { "description": "Name of the chat template", "type": "string" }, "short_name": { "description": "Short name of the chat template", "type": "string" }, "description": { "description": "Description of the chat template", "type": "string" }, "role": { "description": "Role of the chat template", "type": "string" }, "human_name": { "description": "Human name of the chat template", "type": "string" }, "helps_with": { "description": "How the chat template helps", "type": "string" }, "color": { "description": "Color of the chat template", "type": "string" }, "chat_completions": { "description": "Chat completions", "type": "string" }, "avatar": { "description": "Avatar image file (allowed types: jpg, jpeg, png, svg, webp; max size: 5MB)", "type": "string", "format": "binary" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "message": { "type": "string", "example": "Template edited successfully" } }, "type": "object" } } } }, "419": { "description": "Validation error or unsupported file extension", "content": { "application/json": { "schema": { "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/aichat/chat-templates/{id}": { "delete": { "tags": [ "Chat Templates" ], "summary": "Remove a chat template", "description": "Remove the specified chat template from storage.", "operationId": "ChatTemplatesController@destroy", "parameters": [ { "name": "id", "in": "path", "description": "ID of the chat template", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Chat template deleted successfully" }, "404": { "description": "Chat template not found", "content": { "application/json": { "schema": { "properties": { "message": { "type": "string", "example": "Chat template not found" } }, "type": "object" } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "properties": { "message": { "type": "string", "example": "Internal Server Error" } }, "type": "object" } } } } }, "security": [ { "passport": [] } ] } }, "/api/documents/recent": { "get": { "tags": [ "Documents" ], "summary": "Get the last 10 recent documents", "description": "Get the last 10 recent documents for the authenticated user, excluding documents of type 'image'.", "operationId": "getRecentDocs", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/documents/all-openai": { "get": { "tags": [ "Documents" ], "summary": "Gets all AI Generators", "description": "Gets all AI Generators", "operationId": "getOpenAIList", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/documents/openai-filters": { "get": { "tags": [ "Documents" ], "summary": "Gets all AI Filters", "description": "Gets all AI Filters", "operationId": "getOpenAIFilters", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" } }, "security": [ { "passport": [] } ] } }, "/api/documents/": { "get": { "tags": [ "Documents" ], "summary": "Gets documents", "description": "Gets documents for the authenticated user, excluding documents of type 'image'.", "operationId": "getDocs", "parameters": [ { "name": "search", "in": "query", "description": "Search string.", "required": false, "schema": { "type": "string", "default": "" } }, { "name": "filter", "in": "query", "description": "Filter string defined in the 'name' column of the 'openai_filters' table.", "required": false, "schema": { "type": "string", "default": "all" } }, { "name": "sort", "in": "query", "description": "Sort string. Values: 'newest', 'oldest', 'az', 'za'", "required": false, "schema": { "type": "string", "default": "newest" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/documents/doc/{id}": { "get": { "tags": [ "Documents" ], "summary": "Gets single document", "description": "Gets document by id, excluding documents of type 'image'.", "operationId": "getDoc", "parameters": [ { "name": "id", "in": "path", "description": "ID of the document to get.", "required": true, "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" }, "404": { "description": "Document Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] }, "post": { "tags": [ "Documents" ], "summary": "Updates single document", "description": "Updates document by id, excluding documents of type 'image'.", "operationId": "saveDoc", "parameters": [ { "name": "id", "in": "path", "description": "ID of the document to get.", "required": true, "schema": { "type": "string", "default": "" } }, { "name": "output", "in": "query", "description": "Html Output of the document.", "required": true, "schema": { "type": "string", "default": "" } }, { "name": "title", "in": "query", "description": "Title of the document.", "required": true, "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" }, "404": { "description": "Document Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] }, "delete": { "tags": [ "Documents" ], "summary": "Deletes single document", "description": "Deletes document by id, excluding documents of type 'image'.", "operationId": "deleteDoc", "parameters": [ { "name": "id", "in": "path", "description": "ID of the document to delete.", "required": true, "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "properties": { "data": { "type": "array", "items": { "type": "object" } } }, "type": "object" } } } }, "401": { "description": "Unauthorized: User not authenticated" }, "404": { "description": "Document Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/payment/": { "get": { "tags": [ "Payments" ], "summary": "Get subscription plan of current user", "description": "Get subscription plan details of current user.", "operationId": "getCurrentPlan", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "404": { "description": "No active subscription found" } }, "security": [ { "passport": [] } ] } }, "/api/payment/subscriptions/cancel-current": { "get": { "tags": [ "Payments" ], "summary": "Cancel current subscription plan of current user", "description": "Cancel current subscription plan details of current user.", "operationId": "cancelActiveSubscription", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/payment/plans/{plan_id?}": { "get": { "tags": [ "Payments" ], "summary": "Get all plans.", "description": "Get all plans.", "operationId": "plans", "parameters": [ { "name": "plan_id", "in": "path", "description": "Id of plan to get details of.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/payment/orders/{order_id?}": { "get": { "tags": [ "Payments" ], "summary": "Get all orders.", "description": "Get all orders. If order_id is provided, then it will return details of that order.", "operationId": "orders", "parameters": [ { "name": "order_id", "in": "path", "description": "Id of order to get details of.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "403": { "description": "Permission Denied" }, "404": { "description": "Order not found" } }, "security": [ { "passport": [] } ] } }, "/api/payment/check-revenue-cat": { "get": { "tags": [ "Payments" ], "summary": "Trigger RevenueCat to check subscription / token pack status.", "description": "Trigger RevenueCat to check subscription / token pack status.", "operationId": "checkRevenueCat", "responses": { "200": { "description": "Active subscription found", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "404": { "description": "No active subscription found" }, "412": { "description": "Error occured. Custom Message displayed" }, "500": { "description": "Error occured. Custom Message displayed" } }, "security": [ { "passport": [] } ] } }, "/api/auth/google-login": { "post": { "tags": [ "Authentication" ], "summary": "Social Login with Google", "description": "Social Login with Google", "operationId": "google", "requestBody": { "description": "Google token data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "google_token": { "description": "Google Access Token", "type": "string" }, "google_id": { "description": "Google User ID (OpenID)", "type": "string" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/auth/apple-login": { "post": { "tags": [ "Authentication" ], "summary": "Social Login with Apple", "description": "Social Login with Apple", "operationId": "apple", "requestBody": { "description": "Apple token data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "apple_token": { "description": "Apple Access Token", "type": "string" }, "apple_id": { "description": "Apple User ID (OpenID)", "type": "string" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/auth/profile": { "get": { "tags": [ "User Profile" ], "summary": "Get user profile", "description": "Get the profile of the authenticated user.", "operationId": "UserController::index", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] }, "post": { "tags": [ "User Profile" ], "summary": "!!PATCH REQUEST!! see payload '_method' Update user profile - post used only for test", "description": "Updates the user's profile information, including name, surname, phone, country, password, and avatar.", "operationId": "UserController::update", "requestBody": { "description": "User data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "name": { "description": "User's first name", "type": "string" }, "_method": { "description": "ID of the chat template", "type": "string", "default": "PATCH" }, "surname": { "description": "User's last name", "type": "string" }, "phone": { "description": "User's phone number", "type": "string" }, "country": { "description": "User's country", "type": "string" }, "old_password": { "description": "User's old password for verification", "type": "string" }, "new_password": { "description": "User's new password", "type": "string" }, "new_password_confirmation": { "description": "Confirmation of the new password", "type": "string" }, "avatar": { "description": "User's avatar image file (allowed types: jpg, png; max size: 5MB)", "type": "string", "format": "binary" } }, "type": "object" } } } }, "responses": { "400": { "description": "Bad request" }, "404": { "description": "Resource Not Found" }, "200": { "description": "User settings saved successfully", "content": { "application/json": {} } }, "401": { "description": "Unauthorized: User not authenticated" }, "419": { "description": "Validation error or unsupported file extension" } }, "security": [ { "passport": [] } ] }, "delete": { "tags": [ "User Profile" ], "summary": "Delete user account", "description": "Get the profile of the authenticated user and delete account.", "operationId": "UserController::destroy", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/support/": { "get": { "tags": [ "Support" ], "summary": "Gets all support requests", "description": "Gets all support requests", "operationId": "supportRequests", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" } }, "security": [ { "passport": [] } ] } }, "/api/support/ticket/{ticket_id}": { "get": { "tags": [ "Support" ], "summary": "Gets all messages of a support request", "description": "Gets all messages of a support request. Use ticket ids like QZDNGSIFPH not integers.", "operationId": "ticket", "parameters": [ { "name": "ticket_id", "in": "path", "description": "Ticket ID", "required": true, "schema": { "type": "string", "example": "QZDNGSIFPH" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "403": { "description": "Unauthorized" }, "404": { "description": "Ticket Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/support/ticket/{ticket_id}/last-message": { "get": { "tags": [ "Support" ], "summary": "Gets latest message of a support request", "description": "Gets latest message of a support request. Use ticket ids like QZDNGSIFPH not integers.", "operationId": "ticketLastMessage", "parameters": [ { "name": "ticket_id", "in": "path", "description": "Ticket ID", "required": true, "schema": { "type": "string", "example": "QZDNGSIFPH" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "403": { "description": "Unauthorized" }, "404": { "description": "Ticket Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/support/new-ticket": { "post": { "tags": [ "Support" ], "summary": "Create new support request", "description": "Create new support request", "operationId": "newTicket", "requestBody": { "description": "Request support ticket data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "priority": { "description": "Priority", "type": "string", "enum": [ "Low", "Normal", "High", "Critical" ] }, "category": { "description": "Category", "type": "string", "enum": [ "General Inquiry", "Technical Issue", "Improvement Idea", "Feedback", "Other" ] }, "subject": { "description": "Subject of the Message", "type": "string" }, "message": { "description": "Message to send", "type": "string" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/support/send-message": { "post": { "tags": [ "Support" ], "summary": "Send message to support request", "description": "Send message to support request", "operationId": "sendMessage", "requestBody": { "description": "Request message data", "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "ticket_id": { "description": "Ticket ID", "type": "string", "example": "QZDNGSIFPH" }, "message": { "description": "Message to send", "type": "string" } }, "type": "object" } } } }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } }, "/api/support/user/{ticket_id}": { "get": { "tags": [ "Support" ], "summary": "Gets information of the user which sent the request", "description": "Gets information of the user which sent the request. Use ticket ids like QZDNGSIFPH not integers.", "operationId": "ticketUser", "parameters": [ { "name": "ticket_id", "in": "path", "description": "Ticket ID", "required": true, "schema": { "type": "string", "example": "QZDNGSIFPH" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthenticated" }, "403": { "description": "Unauthorized" }, "404": { "description": "Ticket / User Not Found" }, "412": { "description": "Precondition Failed" } }, "security": [ { "passport": [] } ] } } }, "components": { "securitySchemes": { "passport": { "type": "oauth2", "description": "Laravel passport oauth2 security.", "in": "header", "scheme": "https", "flows": { "password": { "authorizationUrl": "http://localhost/oauth/authorize", "tokenUrl": "http://localhost/oauth/token", "refreshUrl": "http://localhost/token/refresh", "scopes": [] } } } } } }
Save
Cancel