đī¸ CreatorContent.net
U
User
!
-
!
-
Manage Subscription
Manage Tokens
Storage
Media Library â
Documentation
User Dashboard
Podcasts
Podcasts
Episodes
Transcriptions
Contributors
Studio
Public Profile
Public Profiles
Blog
Event Lists
Surveys
Contact Forms
Subscribers
Notifications & Shoutouts
Development
React Test
Media Library
Help Center
Admin Dashboard
Logout
Back to Documentation
Api Reference
Api Reference
File: 03-api-reference.md
Documentation Index
Loading documentation...
# API Reference ## Overview CreatorContent.net uses a RESTful API architecture with token-based authentication via Laravel Sanctum. All API endpoints are prefixed with `/api` and most require authentication via the `token.auth` middleware. **Base URL**: `/api` **Authentication**: Cookie-based token (`auth_token`) automatically sent with `credentials: 'include'` ## Response Format All API responses follow this structure: ```json { "success": true|false, "message": "Optional message", "data": { /* Response data */ } } ``` ## Public Endpoints (No Authentication) ### Authentication & Registration #### Login **POST** `/api/login` **Body**: ```json { "identifier": "user@example.com", // email, phone, or username "method": "password" | "otp", "password": "password123", // Required if method is "password" "token": "12345678" // Required if method is "otp" } ``` #### Register **POST** `/api/register` **Body**: ```json { "username": "newuser", "name": "New User", "email": "user@example.com", "phone": "+1234567890", "password": "password123", "password_confirmation": "password123", "role": "creator" } ``` #### Check Username Availability **POST** `/api/check-username` **Body**: `{ "username": "desired-username" }` #### Check Slug Availability **POST** `/api/check-slug` **Body**: `{ "slug": "desired-slug" }` #### Check Email Availability **POST** `/api/check-email` **Body**: `{ "email": "test@example.com" }` #### Check Phone Availability **POST** `/api/check-phone` **Body**: `{ "phone": "+1234567890" }` #### Email Verification **POST** `/api/verify-email` **Body**: ```json { "email": "user@example.com", "token": "12345678" } ``` #### Phone Verification **POST** `/api/verify-phone` **Body**: ```json { "phone": "+1234567890", "token": "12345678" } ``` #### Send Verification Email **POST** `/api/send-verification-email` **Body**: `{ "email": "user@example.com" }` #### Send Verification Phone **POST** `/api/send-verification-phone` **Body**: `{ "phone": "+1234567890" }` ### Password Reset #### Request Password Reset via Email **POST** `/api/password/reset/email` **Body**: `{ "email": "user@example.com" }` #### Request Password Reset via SMS **POST** `/api/password/reset/sms` **Body**: `{ "phone": "+1234567890" }` #### Reset Password **POST** `/api/password/reset` **Body**: ```json { "identifier": "user@example.com", "token": "12345678", "password": "newpassword123", "password_confirmation": "newpassword123" } ``` ### Public Content #### Get Subscription Plans **GET** `/api/subscriptions/plans` Returns all available subscription plans. #### Get Token Packages **GET** `/api/tokens/packages` Returns all available token packages. #### Contact Form Submit **POST** `/api/contact/submit` **Body**: ```json { "name": "John Doe", "email": "john@example.com", "message": "Contact message" } ``` #### Notification Subscription **POST** `/api/notifications/subscribe/{slug}` **Body**: `{ "email": "subscriber@example.com" }` #### Notification Unsubscription **POST** `/api/notifications/unsubscribe/{slug}` **Body**: `{ "email": "subscriber@example.com" }` #### Public Event List (by Profile Slug) **GET** `/api/events/{slug}` **Note:** `{slug}` is the public profile slug, returns all events for that profile #### Public Event Details (by Profile Slug and Event ID) **GET** `/api/events/{slug}/{id}` **Note:** `{slug}` is the public profile slug, `{id}` is the event ID (integer) #### Public Event List (by Event List Slug) **GET** `/api/event-lists/{slug}` **Note:** `{slug}` is the event list slug #### Public Event from List (by Profile Slug and Event List Slug) **GET** `/api/event-lists/{slug}/{eventSlug}` **Note:** - `{slug}` is the **public profile slug** (for finding the profile) - `{eventSlug}` appears to be the **event list slug** (note: there may be a bug in the controller implementation) - Events do not have slugs, only IDs #### Public Survey List **GET** `/api/surveys/{slug}` #### Public Survey Details **GET** `/api/surveys/{slug}/{id}` #### Public Poll Results **GET** `/api/public/polls/{poll}/results` #### Check Poll Vote Status **GET** `/api/public/polls/{poll}/check-vote` #### Vote on Poll **POST** `/api/public/polls/{poll}/vote` **Body**: `{ "option_id": 1 }` #### Public Blog List **GET** `/api/blogs/{slug}` #### Public Blog Post **GET** `/api/blogs/{slug}/{blogSlug}` #### Public Post List **GET** `/api/posts/{slug}` #### Public Post Details **GET** `/api/posts/{slug}/{postSlug}` #### Get Post Comments **GET** `/api/posts/{postId}/comments` #### Get Event Comments **GET** `/api/events/{eventId}/comments` #### Get Episode Comments **GET** `/api/episodes/{episodeId}/comments` #### Create Comment **POST** `/api/comments` **Body**: ```json { "commentable_type": "App\\Models\\Post", "commentable_id": 1, "content": "Comment text", "parent_id": null // Optional, for replies } ``` #### Toggle Comment Like **POST** `/api/comments/{commentId}/like` #### Delete Comment **DELETE** `/api/comments/{commentId}` #### Toggle Post Like **POST** `/api/posts/{postId}/like` #### Track Profile Link Click **POST** `/api/public-profile/track-link/{linkId}` ### Webhooks #### Stripe Webhook **POST** `/api/webhook/stripe` Handles Stripe subscription and payment webhooks. ## Protected Endpoints (Authentication Required) All endpoints below require `token.auth` middleware and the `auth_token` cookie. ### User & Profile #### Get Current User **GET** `/api/user` #### Logout **POST** `/api/logout` #### Update Profile **POST** `/api/profile/update` **Body**: ```json { "name": "Updated Name", "role": "viewer" } ``` #### Change Password **POST** `/api/profile/password/change` **Body**: ```json { "current_password": "oldpassword123", "new_password": "newpassword123", "new_password_confirmation": "newpassword123" } ``` #### Send Phone Change Token **POST** `/api/profile/phone/send-token` **Body**: `{ "new_phone": "+1987654321" }` #### Change Phone **POST** `/api/profile/phone/change` **Body**: ```json { "new_phone": "+1987654321", "token": "12345678" } ``` #### Toggle Two-Factor Authentication **POST** `/api/profile/toggle-two-factor` ### Contact Submissions #### List Contact Submissions **GET** `/api/dashboard/contact-submissions` #### Delete Contact Submission **DELETE** `/api/dashboard/contact-submissions/{id}` ### Notification Subscriptions #### List Notification Subscribers **GET** `/api/dashboard/notification-subscribers` #### Delete Notification Subscriber **DELETE** `/api/dashboard/notification-subscribers/{id}` ### Events **Note:** Dashboard endpoints use **IDs**, not slugs. Events do not have slug fields. #### List Events (Dashboard) **GET** `/api/dashboard/events` **Returns:** Paginated list of user's events #### Get Event **GET** `/api/dashboard/events/{id}` **Note:** `{id}` is the event ID (integer) #### Create Event **POST** `/api/dashboard/events` #### Update Event **PUT** `/api/dashboard/events/{id}` **Note:** `{id}` is the event ID (integer) #### Delete Event **DELETE** `/api/dashboard/events/{id}` **Note:** `{id}` is the event ID (integer) ### Event Lists **Note:** Dashboard endpoints use **IDs**, not slugs. Event Lists have slugs for public URLs, but dashboard APIs use IDs. #### List Event Lists **GET** `/api/dashboard/event-lists` #### Get Event List **GET** `/api/dashboard/event-lists/{id}` **Note:** `{id}` is the event list ID (integer) #### Create Event List **POST** `/api/dashboard/event-lists` **Returns:** Event list with generated `slug` field #### Update Event List **PUT** `/api/dashboard/event-lists/{id}` **Note:** `{id}` is the event list ID (integer) #### Delete Event List **DELETE** `/api/dashboard/event-lists/{id}` **Note:** `{id}` is the event list ID (integer) #### Get Event List Events **GET** `/api/dashboard/event-lists/{id}/events` **Note:** `{id}` is the event list ID (integer) #### Add Event to List **POST** `/api/dashboard/event-lists/{id}/events` **Body:** ```json { "event_id": 123 } ``` **Note:** `{id}` is the event list ID (integer), `event_id` is the event ID #### Remove Event from List **DELETE** `/api/dashboard/event-lists/{id}/events` **Body:** ```json { "event_id": 123 } ``` **Note:** `{id}` is the event list ID (integer), `event_id` is the event ID ### Surveys #### List Surveys **GET** `/api/dashboard/surveys` #### Get Survey **GET** `/api/dashboard/surveys/{id}` #### Create Survey **POST** `/api/dashboard/surveys` #### Update Survey **PUT** `/api/dashboard/surveys/{id}` #### Delete Survey **DELETE** `/api/dashboard/surveys/{id}` #### Get Survey Responses **GET** `/api/dashboard/surveys/{id}/responses` #### Get Survey Analytics **GET** `/api/dashboard/surveys/{id}/analytics` #### Create Survey Question **POST** `/api/dashboard/surveys/{id}/questions` #### Update Survey Question **PUT** `/api/dashboard/surveys/{id}/questions/{questionId}` #### Delete Survey Question **DELETE** `/api/dashboard/surveys/{id}/questions/{questionId}` ### Polls #### List Polls **GET** `/api/polls` #### Get Poll **GET** `/api/polls/{id}` #### Get Poll Results **GET** `/api/polls/{id}/results` #### Vote on Poll **POST** `/api/polls/{id}/vote` #### Create Poll **POST** `/api/polls` #### Update Poll **PUT** `/api/polls/{poll}` #### Delete Poll **DELETE** `/api/polls/{poll}` #### List Poll Responses **GET** `/api/dashboard/polls/{id}/responses` #### Get Poll Response **GET** `/api/dashboard/polls/{id}/responses/{responseId}` #### Delete Poll Response **DELETE** `/api/dashboard/polls/{id}/responses/{responseId}` #### Create Poll Option **POST** `/api/dashboard/polls/{id}/options` #### Update Poll Option **PUT** `/api/dashboard/polls/{id}/options/{optionId}` #### Delete Poll Option **DELETE** `/api/dashboard/polls/{id}/options/{optionId}` ### Blogs #### List Blogs **GET** `/api/dashboard/blogs` #### Get Blog **GET** `/api/dashboard/blogs/{id}` #### Create Blog **POST** `/api/dashboard/blogs` #### Update Blog **PUT** `/api/dashboard/blogs/{id}` #### Delete Blog **DELETE** `/api/dashboard/blogs/{id}` #### Publish Blog **POST** `/api/dashboard/blogs/{id}/publish` #### Unpublish Blog **POST** `/api/dashboard/blogs/{id}/unpublish` ### Posts #### List Posts **GET** `/api/dashboard/posts` #### Get Post **GET** `/api/dashboard/posts/{id}` #### Create Post **POST** `/api/dashboard/posts` #### Update Post **PUT** `/api/dashboard/posts/{id}` #### Delete Post **DELETE** `/api/dashboard/posts/{id}` #### Publish Post **POST** `/api/dashboard/posts/{id}/publish` #### Unpublish Post **POST** `/api/dashboard/posts/{id}/unpublish` ### Comment Moderation #### List Comments for Moderation **GET** `/api/dashboard/comments` #### Approve Comment **POST** `/api/dashboard/comments/{commentId}/approve` #### Reject Comment **POST** `/api/dashboard/comments/{commentId}/reject` #### Toggle Featured Comment **POST** `/api/dashboard/comments/{commentId}/feature` #### Delete Comment **DELETE** `/api/dashboard/comments/{commentId}` #### Bulk Approve Comments **POST** `/api/dashboard/comments/bulk-approve` **Body**: `{ "comment_ids": [1, 2, 3] }` #### Bulk Reject Comments **POST** `/api/dashboard/comments/bulk-reject` **Body**: `{ "comment_ids": [1, 2, 3] }` #### Bulk Delete Comments **POST** `/api/dashboard/comments/bulk-delete` **Body**: `{ "comment_ids": [1, 2, 3] }` ### Podcasts #### List Podcasts **GET** `/api/podcasts` #### Get Podcast Form Data **GET** `/api/podcasts/form-data` Returns dropdown options for podcast forms. #### Validate Podcast Slug **GET** `/api/podcasts/validate-slug?slug={slug}` #### Get Podcast **GET** `/api/podcasts/{id}` #### Create Podcast **POST** `/api/podcasts` #### Update Podcast **PUT** `/api/podcasts/{id}` #### Delete Podcast **DELETE** `/api/podcasts/{id}` #### Generate RSS Feed **POST** `/api/podcasts/{id}/generate-rss` #### Update Podcast Tags **PUT** `/api/podcasts/{id}/tags` **Body**: `{ "tags": ["tag1", "tag2"] }` #### Update Podcast Categories **PUT** `/api/podcasts/{id}/categories` **Body**: `{ "categories": [1, 2] }` #### Get Podcast Contributors **GET** `/api/podcasts/{podcast}/contributors` #### Add Podcast Contributor **POST** `/api/podcasts/{podcast}/contributors` #### Update Contributor Role **PUT** `/api/podcasts/{podcast}/contributors/{contributor}/role` #### Remove Podcast Contributor **DELETE** `/api/podcasts/{podcast}/contributors/{contributor}` #### Fetch RSS Data **POST** `/api/podcasts/{id}/fetch-rss` #### Get RSS Info **GET** `/api/podcasts/{id}/rss-info` #### Validate RSS URL **POST** `/api/validate-rss-url` #### Load RSS Info **POST** `/api/podcasts/{id}/load-rss-info` #### Load RSS Episodes **POST** `/api/podcasts/{id}/load-rss-episodes` ### Episodes #### List Episodes **GET** `/api/episodes` #### Get Episode Form Data **GET** `/api/episodes/form-data` #### Get Seasons **GET** `/api/episodes/seasons/{podcastId}` #### Get Episode **GET** `/api/episodes/{id}` #### Create Episode **POST** `/api/episodes` #### Update Episode **PUT** `/api/episodes/{id}` #### Delete Episode **DELETE** `/api/episodes/{id}` #### Update Episode Tags **PUT** `/api/episodes/{id}/tags` #### Update Episode Categories **PUT** `/api/episodes/{id}/categories` #### Update Episode Contributors **PUT** `/api/episodes/{id}/contributors` #### Update Episode Audio **PUT** `/api/episodes/{id}/audio` **Body**: FormData with `audio` file #### Update Episode Image **PUT** `/api/episodes/{id}/image` **Body**: FormData with `image` file #### List Episodes (Dashboard) **GET** `/api/dashboard/episodes` ### Transcriptions #### List Transcriptions **GET** `/api/transcriptions` #### Get Transcription Stats **GET** `/api/transcriptions/stats` #### Get Episodes for Transcription **GET** `/api/transcriptions/episodes` #### Get Transcription **GET** `/api/transcriptions/{id}` #### Create Transcription **POST** `/api/transcriptions` #### Update Transcription **PUT** `/api/transcriptions/{id}` #### Delete Transcription **DELETE** `/api/transcriptions/{id}` #### Retry Transcription **POST** `/api/transcriptions/{id}/retry` #### Check Dead Processes **POST** `/api/transcriptions/check-dead-processes` #### Retry Transcription Chunk **POST** `/api/transcription-chunks/{id}/retry` ### Contributors #### List Contributors **GET** `/api/contributors` #### Get Contributor Stats **GET** `/api/contributors/stats` #### Get Contributor Roles **GET** `/api/contributors/roles` #### Search Contributors **GET** `/api/contributors/search?q={query}` #### Get Contributor **GET** `/api/contributors/{id}` #### Get Contributor History **GET** `/api/contributors/{id}/history` #### Create Contributor **POST** `/api/contributors` #### Update Contributor **PUT** `/api/contributors/{id}` #### Delete Contributor **DELETE** `/api/contributors/{id}` ### Categories #### List Categories **GET** `/api/categories` #### Get Category Stats **GET** `/api/categories/stats` #### Get Categories by Type **GET** `/api/categories/by-type?type={type}` #### Search Categories **GET** `/api/categories/search?q={query}` #### Get Category **GET** `/api/categories/{id}` #### Get Category History **GET** `/api/categories/{id}/history` #### Create Category **POST** `/api/categories` #### Update Category **PUT** `/api/categories/{id}` #### Delete Category **DELETE** `/api/categories/{id}` ### Tags #### List Tags **GET** `/api/tags` #### Get Tag Stats **GET** `/api/tags/stats` #### Get Tags by Type **GET** `/api/tags/by-type?type={type}` #### Get All Media Tags **GET** `/api/tags/all-media` #### Search Tags **GET** `/api/tags/search?q={query}` #### Suggest Tags **GET** `/api/tags/suggest?q={query}` #### Get or Create Tag **GET** `/api/tags/get-or-create?name={name}&type={type}` #### Create Tag from Name **POST** `/api/tags/create-from-name` **Body**: `{ "name": "tag name", "type": "podcast" }` #### Get Tag **GET** `/api/tags/{id}` #### Get Tag History **GET** `/api/tags/{id}/history` #### Create Tag **POST** `/api/tags` #### Update Tag **PUT** `/api/tags/{id}` #### Delete Tag **DELETE** `/api/tags/{id}` ### Notifications & Shoutouts #### Get Notification Stats **GET** `/api/dashboard/notifications/stats` #### Get Notification Messages **GET** `/api/dashboard/notifications/messages` #### Send Notification Message **POST** `/api/dashboard/notifications/send` #### Delete Notification Message **DELETE** `/api/dashboard/notifications/messages/{id}` ### Public Profiles #### Get Dashboard Public Profiles Widget **GET** `/api/dashboard/public-profiles-widget` #### List Public Profiles **GET** `/api/dashboard/public-profiles` #### Get Public Profile **GET** `/api/dashboard/public-profiles/{id}` #### Create Public Profile **POST** `/api/dashboard/public-profiles` #### Update Public Profile **PUT** `/api/dashboard/public-profiles/{id}` #### Update Public Profile Media **PUT** `/api/dashboard/public-profiles/{id}/media` #### Update Public Status **PUT** `/api/dashboard/public-profiles/{id}/public-status` #### Toggle Public Status **POST** `/api/dashboard/public-profiles/{id}/toggle-public` #### Toggle Active Status **POST** `/api/dashboard/public-profiles/{id}/toggle-active` #### Delete Public Profile **DELETE** `/api/dashboard/public-profiles/{id}` #### Get Profile Analytics **GET** `/api/dashboard/public-profiles/{id}/analytics` #### Get Profile Sections **GET** `/api/dashboard/public-profiles/{profileId}/sections` #### Create Profile Section **POST** `/api/dashboard/public-profiles/{profileId}/sections` #### Reorder Profile Sections **POST** `/api/dashboard/public-profiles/{profileId}/sections/reorder` #### Get Profile Section **GET** `/api/dashboard/public-profiles/{profileId}/sections/{sectionId}` #### Update Profile Section **PUT** `/api/dashboard/public-profiles/{profileId}/sections/{sectionId}` #### Delete Profile Section **DELETE** `/api/dashboard/public-profiles/{profileId}/sections/{sectionId}` #### Get Profile Links **GET** `/api/dashboard/public-profiles/{profileId}/links` #### Get Profile Link **GET** `/api/dashboard/public-profiles/{profileId}/links/{linkId}` #### Create Profile Link **POST** `/api/dashboard/public-profiles/{profileId}/links` #### Update Profile Link **PUT** `/api/dashboard/public-profiles/{profileId}/links/{linkId}` #### Delete Profile Link **DELETE** `/api/dashboard/public-profiles/{profileId}/links/{linkId}` #### Update Profile Appearance **PUT** `/api/dashboard/public-profiles/{profileId}/appearance` #### Get Profile Domains **GET** `/api/dashboard/public-profiles/{profileId}/domains` #### Create Domain **POST** `/api/dashboard/public-profiles/{profileId}/domains` #### Update Domain **PUT** `/api/dashboard/public-profiles/{profileId}/domains/{domainId}` #### Delete Domain **DELETE** `/api/dashboard/public-profiles/{profileId}/domains/{domainId}` #### Validate Domain **POST** `/api/dashboard/public-profiles/{profileId}/domains/{domainId}/validate` #### Get Profile Public Pages **GET** `/api/dashboard/public-profiles/{profileId}/public-pages` #### Assign Public Page to Profile **POST** `/api/dashboard/public-profiles/{profileId}/public-pages/{pageId}/assign` #### Unassign Public Page from Profile **DELETE** `/api/dashboard/public-profiles/{profileId}/public-pages/{pageId}/unassign` #### Set Default Public Page **POST** `/api/dashboard/public-profiles/{profileId}/public-pages/{pageId}/set-default` ### Subscriptions #### Subscribe to Plan **POST** `/api/subscriptions/subscribe` **Body**: ```json { "plan_id": 1, "payment_method_id": "pm_xxx" } ``` #### Change Subscription Plan **POST** `/api/subscriptions/change-plan` #### Cancel Subscription **POST** `/api/subscriptions/cancel` #### Resume Subscription **POST** `/api/subscriptions/resume` #### Get Current Subscription **GET** `/api/subscriptions/current` #### Get Current Plan **GET** `/api/subscriptions/current-plan` #### Get Payment History **GET** `/api/subscriptions/payment-history` ### Tokens #### Purchase Tokens **POST** `/api/tokens/purchase` **Body**: ```json { "package_id": 1, "payment_method_id": "pm_xxx" } ``` #### Get Usage Summary **GET** `/api/tokens/usage-summary` #### Get Token Purchases **GET** `/api/tokens/purchases` #### Get Usage Logs **GET** `/api/tokens/usage-logs` #### Use Tokens **POST** `/api/tokens/use` **Body**: ```json { "type": "transcribe", "amount": 100 } ``` #### Get Token Statistics **GET** `/api/tokens/statistics` #### Get Cost Analysis **GET** `/api/tokens/cost-analysis` ### Media #### List User Media **GET** `/api/media` #### Upload Media **POST** `/api/media` **Body**: FormData with `file` and optional `title`, `description`, `alt_text`, `is_active` #### Get Media Item **GET** `/api/media/{media}` #### Delete Media **DELETE** `/api/media/{media}` #### Update Media **PUT** `/api/media/{media}` #### List Media Lists/Playlists **GET** `/api/media/lists` #### Create Media List **POST** `/api/media/lists` #### Get Media List **GET** `/api/media/lists/{mediaList}` #### Update Media List **PUT** `/api/media/lists/{mediaList}` #### Delete Media List **DELETE** `/api/media/lists/{mediaList}` #### Add Media to List **POST** `/api/media/lists/{mediaList}/media` **Body**: `{ "media_ids": [1, 2, 3] }` #### Remove Media from List **DELETE** `/api/media/lists/{mediaList}/media` **Body**: `{ "media_ids": [1, 2, 3] }` #### Reorder Media in List **PUT** `/api/media/lists/{mediaList}/reorder` ### Media Clips #### List All Media Clips **GET** `/api/media-clips` #### Create Media Clip **POST** `/api/media-clips` #### Get Media Clips by Type **GET** `/api/media-clips/by-type?type={type}` #### Get Popular Media Clips **GET** `/api/media-clips/popular` #### Get Media Clip **GET** `/api/media-clips/{id}` #### Update Media Clip **PUT** `/api/media-clips/{id}` #### Delete Media Clip **DELETE** `/api/media-clips/{id}` #### Duplicate Media Clip **POST** `/api/media-clips/{id}/duplicate` ### Studio #### List Studio Projects **GET** `/api/studio/projects` #### Create Studio Project **POST** `/api/studio/projects` #### Get Studio Project **GET** `/api/studio/projects/{id}` #### Update Studio Project **PUT** `/api/studio/projects/{id}` #### Delete Studio Project **DELETE** `/api/studio/projects/{id}` #### Add Asset to Project **POST** `/api/studio/projects/{id}/assets` #### Create Clip **POST** `/api/studio/projects/{id}/clips` #### Update Timeline **PUT** `/api/studio/projects/{id}/timeline` #### Render Project **POST** `/api/studio/projects/{id}/render` #### Get Media for Studio **GET** `/api/studio/media` ### Public Pages & Live Edit #### Get Section Data **GET** `/api/section-data?entity_type={type}&entity_id={id}§ion_id={sectionId}` #### Create Page Section **POST** `/api/public-pages/{page}/sections` #### Update Page Section **PUT** `/api/public-pages/{page}/sections/{section}` #### Update Page Base Template **PATCH** `/api/public-pages/{page}/base-template` #### Get Section Types **GET** `/api/public-page-live-edit/section-types` #### Get Base Templates **GET** `/api/public-page-live-edit/base-templates` #### Get Page Sections **GET** `/api/public-page-live-edit/{pageIdentifier}/sections` #### Create Page Section **POST** `/api/public-page-live-edit/{pageIdentifier}/sections` #### Update Page Section **PUT** `/api/public-page-live-edit/{pageIdentifier}/sections/{sectionId}` #### Delete Page Section **DELETE** `/api/public-page-live-edit/{pageIdentifier}/sections/{sectionId}` #### Reorder Page Sections **POST** `/api/public-page-live-edit/{pageIdentifier}/sections/reorder` #### Render Section **POST** `/api/public-page-live-edit/render-section` #### Update Page Base Template **PUT** `/api/public-page-live-edit/{pageIdentifier}/base-template` #### Update Page **PUT** `/api/public-page-live-edit/{pageIdentifier}/page` #### Get Page Section **GET** `/api/page-sections/{sectionId}` #### Update Page Section (Direct) **PUT** `/api/page-sections/{sectionId}` #### Delete Page Section (Direct) **DELETE** `/api/page-sections/{sectionId}` ### Notes System #### List Notes **GET** `/api/notes` #### Create Note **POST** `/api/notes` #### Check Page Notes **GET** `/api/notes/check?view_path={path}` #### Update Note **PUT** `/api/notes/{id}` #### Delete Note **DELETE** `/api/notes/{id}` ### Admin Endpoints All admin endpoints require `is_admin = true` in addition to authentication. #### Admin Dashboard **GET** `/api/admin/dashboard` #### Recent Activity **GET** `/api/admin/recent-activity` #### Service Balances **GET** `/api/admin/service-balances` #### List Users **GET** `/api/admin/users` #### Suspend User **POST** `/api/admin/users/{userId}/suspend` #### Unsuspend User **POST** `/api/admin/users/{userId}/unsuspend` #### Delete User **DELETE** `/api/admin/users/{userId}` #### Toggle Admin Status **POST** `/api/admin/users/{userId}/toggle-admin` #### Admin Notes - Get Pages **GET** `/api/admin/notes/pages` #### Admin Notes - Get Page Notes **GET** `/api/admin/notes/page-notes?view_path={path}` ### Admin - Plans #### List Plans **GET** `/api/admin/plans` #### Get Plan Statistics **GET** `/api/admin/plans/statistics` #### Validate All Stripe Plans **POST** `/api/admin/plans/validate-all-stripe` #### Get Plan **GET** `/api/admin/plans/{id}` #### Create Plan **POST** `/api/admin/plans` #### Update Plan **PUT** `/api/admin/plans/{id}` #### Delete Plan **DELETE** `/api/admin/plans/{id}` #### Create Stripe Plan **POST** `/api/admin/plans/{id}/create-stripe` #### Validate Stripe Plan **POST** `/api/admin/plans/{id}/validate-stripe` ### Admin - Token Packages #### List Token Packages **GET** `/api/admin/token-packages` #### Get Token Package Statistics **GET** `/api/admin/token-packages/statistics` #### Validate All Stripe Prices **POST** `/api/admin/token-packages/validate-all-stripe` #### Get Token Package **GET** `/api/admin/token-packages/{id}` #### Create Token Package **POST** `/api/admin/token-packages` #### Update Token Package **PUT** `/api/admin/token-packages/{id}` #### Delete Token Package **DELETE** `/api/admin/token-packages/{id}` #### Create Stripe Price **POST** `/api/admin/token-packages/{id}/create-stripe` #### Validate Stripe Price **POST** `/api/admin/token-packages/{id}/validate-stripe` ### Admin - Sections #### Get Section Types **GET** `/api/admin/sections/types` #### Create Section Type **POST** `/api/admin/sections/types` #### Update Section Type **PUT** `/api/admin/sections/types/{sectionType}` #### Delete Section Type **DELETE** `/api/admin/sections/types/{sectionType}` #### Get Section Templates **GET** `/api/admin/sections/types/{sectionType}/templates` #### Create Section Template **POST** `/api/admin/sections/types/{sectionType}/templates` #### Update Section Template **PUT** `/api/admin/sections/templates/{template}` #### Delete Section Template **DELETE** `/api/admin/sections/templates/{template}` #### Get Section Variables **GET** `/api/admin/sections/types/{sectionType}/variables` #### Create Section Variable **POST** `/api/admin/sections/types/{sectionType}/variables` #### Update Section Variable **PUT** `/api/admin/sections/variables/{sectionVariable}` #### Delete Section Variable **DELETE** `/api/admin/sections/variables/{sectionVariable}` #### Get Entity Options **GET** `/api/admin/sections/entity-options` #### Update Template Content **PUT** `/api/admin/sections/types/{sectionType}/templates/{sectionTemplate}` #### Clone Template **POST** `/api/admin/sections/types/{sectionType}/templates/{sectionTemplate}/clone` #### Get Template File Content **GET** `/api/admin/sections/types/{sectionType}/templates/{sectionTemplate}/file-content` #### Generate Template AI Prompt **POST** `/api/admin/sections/ai-prompt` #### Generate Template with AI **POST** `/api/admin/sections/generate-template` #### Convert Template to File **POST** `/api/admin/sections/types/{sectionType}/templates/{sectionTemplate}/convert-to-file` ### Admin - Base Templates #### Toggle Base Template Active **POST** `/api/admin/base-templates/{baseTemplate}/toggle-active` #### Set Default Base Template **POST** `/api/admin/base-templates/{baseTemplate}/set-default` #### Clone Base Template **POST** `/api/admin/base-templates/{baseTemplate}/clone` #### Get Base Template File Content **GET** `/api/admin/base-templates/{baseTemplate}/file-content/{type}` #### Generate Base Template AI Prompt **POST** `/api/admin/base-templates/ai-prompt` #### Delete Base Template **DELETE** `/api/admin/base-templates/{baseTemplate}` ## Error Responses All endpoints may return error responses with HTTP status codes: - **400 Bad Request**: Invalid request data - **401 Unauthorized**: Authentication required or invalid token - **403 Forbidden**: Insufficient permissions - **404 Not Found**: Resource not found - **422 Unprocessable Entity**: Validation errors - **500 Internal Server Error**: Server error Error response format: ```json { "success": false, "message": "Error message", "errors": { "field": ["Error message for field"] } } ```
0
đ Page Notes
+ Add New
Add New Note
Type
âšī¸ Info
đ Bug
⨠Feature Request
đĄ Improvement
â Missing Feature
đ¨ Design Changes
Title (optional)
Note Content
đ Add Note