Authentication

All API endpoints require authentication. Use JWT tokens to authenticate your requests.

How to Authenticate

  1. 1
    Obtain Access Token

    POST to /api/v1/auth/token/ with your username and password

  2. 2
    Include Token in Header

    Add the Authorization header to all requests

  3. 3
    Refresh When Expired

    Access tokens expire in 30 minutes. Use the refresh endpoint to get a new one.

# Step 1: Get tokens curl -X POST https://your-domain.com/api/v1/auth/token/ \ -H "Content-Type: application/json" \ -d '{"username": "your_username", "password": "your_password"}' # Response: { "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." } # Step 2: Use token in requests curl https://your-domain.com/api/v1/resources/ \ -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."

Authorization

Different user roles have different access levels.

User Role Read (GET) Create (POST) Update (PUT/PATCH) Delete (DELETE)
Unauthenticated
Authenticated User
Admin / Staff

Rate Limiting

API requests are rate limited to ensure fair usage.

User Type Rate Limit
Authenticated Users 1000 requests/hour

Response Codes

Standard HTTP response codes used by this API.

200 Success
201 Created
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Too Many Requests
500 Server Error

Authentication Endpoints

Endpoints for obtaining and managing JWT tokens.

POST /api/v1/auth/token/ Obtain access and refresh tokens

Request Body

Parameter Type Description
username required string User's username
password required string User's password
POST /api/v1/auth/token/refresh/ Refresh an access token

Request Body

Parameter Type Description
refresh required string The refresh token obtained from login
POST /api/v1/auth/token/blacklist/ Blacklist a refresh token (logout)

Request Body

Parameter Type Description
refresh required string The refresh token to blacklist

Resources

Manage video resources and educational content.

GET /api/v1/resources/ Auth Required

Query Parameters

Parameter Type Description
category string Filter by category slug
tag string Filter by tag slug
search string Search in title
page integer Page number (default: 1)
POST /api/v1/resources/ Admin Only

Create a new resource. Requires admin privileges.

GET /api/v1/resources/{slug}/ Auth Required
PUT /api/v1/resources/{slug}/ Admin Only
DELETE /api/v1/resources/{slug}/ Admin Only
POST /api/v1/resources/{slug}/publish/ Admin Only
POST /api/v1/resources/{slug}/unpublish/ Admin Only

Blog Posts

Manage blog posts with SEO optimization.

GET /api/v1/blog/posts/ Auth Required

Query Parameters

Parameter Type Description
category string Filter by category slug
tag string Filter by tag slug
author string Filter by author username
featured boolean Filter featured posts (true/false)
search string Search in title and excerpt
POST /api/v1/blog/posts/ Admin Only
GET /api/v1/blog/posts/{slug}/ Auth Required
PUT /api/v1/blog/posts/{slug}/ Admin Only
DELETE /api/v1/blog/posts/{slug}/ Admin Only
GET /api/v1/blog/posts/{slug}/related/ Auth Required
POST /api/v1/blog/posts/{slug}/publish/ Admin Only
POST /api/v1/blog/posts/{slug}/feature/ Admin Only

Blog Categories

GET /api/v1/blog/categories/ Auth Required
POST /api/v1/blog/categories/ Admin Only

Blog Tags

GET /api/v1/blog/tags/ Auth Required
POST /api/v1/blog/tags/ Admin Only

Templates Store

Manage Next.js and mobile app templates.

GET /api/v1/store/ Auth Required

Query Parameters

Parameter Type Description
category string Filter by category slug
featured boolean Filter featured templates
free boolean Filter free templates
paid boolean Filter paid templates
sort string Sort by: price_asc, price_desc, name, oldest
search string Search in name and description
POST /api/v1/store/ Admin Only
GET /api/v1/store/{slug}/ Auth Required
PUT /api/v1/store/{slug}/ Admin Only
DELETE /api/v1/store/{slug}/ Admin Only
GET /api/v1/store/{slug}/related/ Auth Required
POST /api/v1/store/{slug}/activate/ Admin Only
POST /api/v1/store/{slug}/feature/ Admin Only
POST /api/v1/store/{slug}/add_image/ Admin Only

Template Categories

GET /api/v1/store/categories/ Auth Required
POST /api/v1/store/categories/ Admin Only