Skip to main content

Strapi API Reference

Welcome to the DeepSkill Strapi API documentation. This section provides complete API reference with interactive examples and comprehensive endpoint documentation.

Quick Navigation​


Overview​

The DeepSkill API is organized around REST principles. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Base URL​

https://api.tech.deepskill.de

Key Features​

  • ✅ RESTful Design - Standard HTTP methods and status codes
  • ✅ JSON Format - All requests and responses in JSON
  • ✅ JWT Authentication - Secure token-based authentication
  • ✅ Versioned - API versions tracked and documented
  • ✅ Interactive Docs - Try API calls directly from documentation

Authentication​

All API requests require authentication using JWT (JSON Web Token). Include your token in the Authorization header of each request.

Authentication Header​

Authorization: Bearer YOUR_JWT_TOKEN_HERE

Getting a Token​

Tokens are obtained through the authentication endpoint:

POST /api/auth/local
Content-Type: application/json

{
"identifier": "user@example.com",
"password": "your_password"
}

Example Authenticated Request​

curl -X GET "https://api.tech.deepskill.de/api/users/me" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json"

Getting Started​

Step 1: Obtain Authentication Token​

First, authenticate to get your JWT token:

curl -X POST "https://api.tech.deepskill.de/api/auth/local" \
-H "Content-Type: application/json" \
-d '{
"identifier": "user@example.com",
"password": "your_password"
}'

Response:

{
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"email": "user@example.com",
...
}
}

Step 2: Make API Calls​

Use the JWT token in subsequent requests:

curl -X GET "https://api.tech.deepskill.de/api/analytics/dashboard" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"

Step 3: Explore the API​

Browse the interactive API documentation to see all available endpoints.


Available Versions​

  • Version: Latest stable release (automatically updated)
  • Documentation: View Latest API Docs
  • Status: ✅ Active and maintained
info

All API versions are kept and accessible. The latest version is recommended for new integrations.


API Categories​

The API provides comprehensive endpoints across the following categories. Visit the interactive documentation to explore all endpoints.

📊 Analytics​

Access program and learner analytics data.

  • Dashboard Analytics - Get overall dashboard metrics
  • Program Analytics - Get program-specific analytics
  • Customer Analytics - Get customer-specific data

👥 Coaches​

Manage coach-related operations and learner assignments.

  • Coach Matching - Match coaches with users
  • Learner Management - Get learners for coaches
  • Availability - Check coach availability

📅 Scheduling​

Manage Calendly events and scheduling.

  • Calendly Events - Get and manage Calendly events
  • Event Sync - Sync events with learners

📚 Content​

Access blueprints and categories.

  • Blueprints - Get all available blueprints
  • Categories - Get content categories

View All 64 Endpoints →


Response Format​

All API responses follow a consistent JSON format:

Success Response​

{
"data": {
// Response data here
},
"meta": {
"pagination": {
"page": 1,
"pageSize": 25,
"pageCount": 1,
"total": 10
}
}
}

Error Response​

{
"error": {
"status": 400,
"name": "ValidationError",
"message": "Invalid request parameters",
"details": {}
}
}

HTTP Status Codes​

The API uses standard HTTP status codes:

CodeMeaningDescription
200OKRequest succeeded
201CreatedResource created successfully
400Bad RequestInvalid request parameters
401UnauthorizedAuthentication required
403ForbiddenInsufficient permissions
404Not FoundResource not found
500Server ErrorInternal server error

Rate Limiting​

Rate Limits

The API implements rate limiting to ensure fair usage. Current limits:

  • Authenticated requests: 1000 requests per hour
  • Unauthenticated requests: 100 requests per hour

Rate limit information is included in response headers:

  • X-RateLimit-Limit - Total requests allowed
  • X-RateLimit-Remaining - Requests remaining
  • X-RateLimit-Reset - Time when limit resets

Best Practices​

1. Use Pagination​

For endpoints that return lists, always use pagination to reduce response sizes:

GET /api/programs?pagination[page]=1&pagination[pageSize]=25

2. Filter Results​

Use filters to get only the data you need:

GET /api/programs?filters[status][$eq]=active

3. Populate Relations​

Request related data in a single request:

GET /api/programs?populate=modules,sessions

4. Handle Errors Gracefully​

Always check response status codes and handle errors appropriately:

if (!response.ok) {
const error = await response.json();
console.error("API Error:", error.error.message);
// Handle error appropriately
}

Support & Resources​

Getting Help​

Additional Resources​


Changelog​

Track API changes and updates:

  • Version History: Check individual version documentation for changes
  • Breaking Changes: Highlighted in version metadata when available

Interactive Documentation

All API endpoints are documented in the Redoc interface with detailed schemas, examples, and request/response formats.

Last Updated: Automatically updated with each API change