REST API Reference

Complete REST API documentation and examples

Getting Started

Starting the Server

cryptartist-studio server start --port 3000

The REST API server will be available at http://localhost:3000

Base URL

http://localhost:3000/api/v1

Authentication

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Projects Endpoints

GET /projects

List all projects

curl -H "Authorization: Bearer YOUR_API_KEY" \ http://localhost:3000/api/v1/projects

POST /projects

Create a new project

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "My Project", "program": "media-mogul", "description": "A test project" }' \ http://localhost:3000/api/v1/projects

GET /projects/:id

Get a specific project

curl -H "Authorization: Bearer YOUR_API_KEY" \ http://localhost:3000/api/v1/projects/project-id

PUT /projects/:id

Update a project

curl -X PUT \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Name", "description": "Updated description" }' \ http://localhost:3000/api/v1/projects/project-id

DELETE /projects/:id

Delete a project

curl -X DELETE \ -H "Authorization: Bearer YOUR_API_KEY" \ http://localhost:3000/api/v1/projects/project-id

Media Endpoints

POST /media/encode

Encode a video file

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": "/path/to/input.mov", "output": "/path/to/output.mp4", "format": "h264", "bitrate": "5000k" }' \ http://localhost:3000/api/v1/media/encode

POST /media/thumbnail

Generate a thumbnail from a video

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": "/path/to/video.mp4", "output": "/path/to/thumbnail.jpg", "time": 5 }' \ http://localhost:3000/api/v1/media/thumbnail

AI Endpoints

POST /ai/chat

Send a message to the AI

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "message": "What is the meaning of life?", "model": "gpt-4" }' \ http://localhost:3000/api/v1/ai/chat

POST /ai/image

Generate an image using AI

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "a beautiful sunset over the ocean", "size": "1024x1024" }' \ http://localhost:3000/api/v1/ai/image

POST /ai/transcribe

Transcribe audio to text

curl -X POST \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "audio": "/path/to/audio.mp3" }' \ http://localhost:3000/api/v1/ai/transcribe

Response Format

Success Response

{ "success": true, "data": { "id": "project-123", "name": "My Project", "program": "media-mogul" }, "timestamp": "2026-03-14T12:00:00Z" }

Error Response

{ "success": false, "error": { "code": "INVALID_REQUEST", "message": "Missing required field: name" }, "timestamp": "2026-03-14T12:00:00Z" }

Status Codes

CryptArtist Studio Logo