Developer Documentation

Everything you need to integrate with our platform. Comprehensive API documentation, authentication guides, and integration examples.

Quick Start

Get your API integration up and running in minutes with our step-by-step guide.

1. Get API Key

Register and obtain your API credentials

2. Make Request

Send your first API request

3. Set Webhook

Configure real-time notifications

4. Go Live

Deploy your integration to production

Authentication

Secure access to our API using API keys or OAuth 2.0. All API requests must be authenticated.

API Key Authentication

Use your API key in the Authorization header for server-to-server integrations.

Authorization: Bearer YOUR_API_KEY
Simple header-based auth
Perfect for server integrations
Rate limiting per key

OAuth 2.0 Flow

Secure delegated access for user-facing applications using OAuth 2.0.

Authorization URL:
GET /oauth/authorize
Token URL:
POST /oauth/token
User consent flows
Fine-grained scopes
Refresh token support

API Reference

Complete reference for all API endpoints, parameters, and response formats.

Health Monitoring

GET/v1/health

Check API service health and database connectivity

// Response
{
  "status": "healthy",
  "timestamp": "2025-11-24T16:33:41.836Z",
  "version": "1.0.0",
  "service": "devpros-api",
  "database": "healthy",
  "database_message": "",
  "environment": "cloudflare_workers",
  "note": "Health check running in Cloudflare Workers environment"
}

Tickets

POST/v1/tickets

Create a new support ticket

// Request Body with additional fields
{
  "title": "Database connection issue",
  "description": "Unable to connect to production DB after recent deployment",
  "priority": "high",
  "category": "database",
  "tags": ["urgent", "production", "deployment"],
  "customer_email": "client@agency.com",
  "due_date": "2024-01-20",
  "environment": "production"
}

Accepted Fields

FieldTypeRequiredDescription
titlestringYesBrief title describing the issue
descriptionstringYesDetailed description of the issue
prioritystringNolow, medium, high, urgent
categorystringNoIssue category (database, frontend, backend, etc.)
tagsstring[]NoArray of tag strings for organization
customer_emailstringNoCustomer email for notifications
due_datestringNoISO 8601 due date (e.g., 2024-01-20)
environmentstringNoproduction, staging, development
metadataobjectNoAdditional custom data as key-value pairs

🔐 Secure Credential Sharing

For agency clients needing to provide access credentials (WP admin, git, SSH, etc.), use the secure credential endpoint instead of including sensitive data in ticket metadata.

// Separate secure credential submission
POST /v1/tickets/{ticket_id}/credentials
{
  "type": "wordpress_admin",
  "credentials": {
    "url": "https://client-site.com/wp-admin",
    "username": "admin_user",
    "password": "temporary_password",
    "notes": "Access expires in 24 hours"
  },
  "expires_at": "2024-01-16T10:30:00Z"
}

Credentials are encrypted, time-limited, and only accessible to assigned support agents.

GET/v1/tickets/{id}

Retrieve ticket details

// Response
{
  "id": "TICK-12345",
  "title": "Database connection issue",
  "status": "open",
  "priority": "high",
  "created_at": "2024-01-15T10:30:00Z"
}
PUT/v1/tickets/{id}

Update ticket information

// Request Body
{
  "status": "in_progress",
  "priority": "medium",
  "assigned_to": "agent@example.com"
}

Comments & Threading

GET/v1/tickets/{id}/comments

Get all comments for a ticket (chronological)

// Response
{
  "comments": [
    {
      "id": "COMM-1732472036228",
      "ticket_id": "TICK-1732472031076",
      "author_name": "John Support",
      "content": "I've identified the issue...",
      "is_internal": false,
      "created_at": "2025-11-24T16:33:56.228Z"
    }
  ]
}
POST/v1/tickets/{id}/comments

Add a new comment to ticket thread

// Request Body
{
  "content": "This is my comment/reply",
  "is_internal": false
}
PUT/v1/tickets/{id}/comments/{commentId}

Edit an existing comment (author only)

// Request Body
{
  "content": "Updated comment content",
  "is_internal": true
}

Secure Credentials

POST/v1/tickets/{id}/credentials

Store sensitive credentials securely for a ticket

// Request Body
{
  "type": "wordpress_admin",
  "credentials": {
    "username": "admin",
    "password": "secure_password",
    "url": "https://client-site.com/wp-admin"
  },
  "expires_at": "2025-11-30T00:00:00Z",
  "notes": "Temporary admin access"
}

🔐 Security: Credentials are encrypted and only accessible to assigned support agents.

Webhooks Coming Soon

Real-time webhook notifications

Planned for future release - get notified of ticket updates, comment additions, and status changes.

Rate Limits & Error Handling

Understanding API limits and proper error handling for reliable integrations.

Rate Limits

100 requests per hour
Per API key for most endpoints
10 requests per minute
For webhook delivery endpoints
2 concurrent requests
Maximum concurrent connections

Error Response Format

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "API rate limit exceeded",
    "details": {
      "retry_after": 3600,
      "limit": 100,
      "remaining": 0
    }
  }
}
429Rate limit exceeded
401Unauthorized
400Bad request

Need Help?

Our developer support team is here to help you succeed with your integration.