S

API Reference

Complete reference for all SimplyStack API endpoints

Overview

The SimplyStack API is organized around REST principles with predictable, resource-oriented URLs. All requests require authentication via API key and return JSON responses.

Base URL

https://www.simplystack.dev/api/v1

Authentication

All API requests must include your API key in the x-api-key header:

Note: You will need a Personal access tokens to read and create projects if authorized. You can create a personal access token in the settings page.

curl -H "x-api-key: your_api_key_here" \
     -H "Content-Type: application/json" \
     https://www.simplystack.dev/api/v1/projects

API Endpoints

Manage your projects and retrieve project information.

GET/api/v1/projectsList projects
GET/api/v1/projects/{id}Get project
POST/api/v1/projectsCreate project
PUT/api/v1/projects/{id}Update project

Create, read, update, and delete blog posts with SEO metadata support.

GET/api/v1/blogList blog posts
GET/api/v1/blog/{id}Get blog post
POST/api/v1/blogCreate blog post
PUT/api/v1/blog/{id}Update blog post
DELETE/api/v1/blog/{id}Delete blog post

Manage system logs with advanced filtering and metadata support.

GET/api/v1/logsList logs
GET/api/v1/logs/{id}Get log entry
POST/api/v1/logsCreate log entry

Upload, manage, and delete files with metadata tracking.

GET/api/v1/storageList storage assets
GET/api/v1/storage/{id}Get storage asset
POST/api/v1/storageUpload file
PUT/api/v1/storage/{id}Update asset metadata
DELETE/api/v1/storage/{id}Delete storage asset

Email & CRM

View Details →

Send transactional emails and manage leads with built-in CRM functionality.

POST/api/v1/emails/setupSetup email config
POST/api/v1/emails/sendSend email
GET/api/v1/emailsList sent emails
POST/api/v1/emails/leadsCreate lead
GET/api/v1/emails/leadsList leads
GET/api/v1/emails/statsEmail analytics

Response Format

All API endpoints return responses in a consistent JSON format:

Success Response

{
  "data": {
    "id": "f1fc1bb3-b9a8-4172-8637-755105bae373",
    "title": "My Blog Post",
    "content": "<h1>Hello World!</h1>",
    "created_at": "2025-05-25T02:48:41.902157+00:00",
    "updated_at": "2025-05-25T02:48:41.902157+00:00"
  }
}

Error Response

{
  "error": "Authentication failed: Invalid API key"
}

List Response

{
  "data": [
    {
      "id": "post_1",
      "title": "First Post"
    },
    {
      "id": "post_2", 
      "title": "Second Post"
    }
  ]
}

HTTP Status Codes

SimplyStack uses conventional HTTP response codes to indicate success or failure:

CodeDescription
200OK - Request successful
201Created - Resource created successfully
400Bad Request - Invalid request parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Insufficient permissions
404Not Found - Resource not found
500Internal Server Error - Server error

Rate Limiting

API requests are rate limited to ensure fair usage. Rate limits are applied per API key:

Current Limits

  • 1000 requests per hour per API key
  • 100 requests per minute per API key
  • • Rate limit headers included in all responses

Quick Examples

Create a Blog Post

curl -X POST https://www.simplystack.dev/api/v1/blog \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My First Post",
    "content": "<h1>Hello World!</h1><p>This is my first post.</p>",
    "tags": ["getting-started"],
    "meta_title": "My First Post - Blog",
    "meta_description": "Learning how to use SimplyStack"
  }'

Upload a File

curl -X POST https://www.simplystack.dev/api/v1/storage \
  -H "x-api-key: your_api_key_here" \
  -F "file=@/path/to/your/file.jpg" \
  -F "label=My Image"

Create a Log Entry

curl -X POST https://www.simplystack.dev/api/v1/logs \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "level": "info",
    "message": "User logged in successfully",
    "service": "auth",
    "metadata": {
      "userId": "123",
      "ip": "192.168.1.1"
    }
  }'