API Overview
The darukaa.com API provides programmatic access to platform capabilities, enabling integration with third-party systems, custom analytics, and external dashboards.
For integration guides and use cases, please see our Developers API Guide.
Base Information
Base URL: https://api.darukaa.com
Authentication: OAuth 2.0 (Bearer Token)
Response Format: JSON
Rate Limits
| Tier | Rate Limit |
|---|---|
| Standard | 1,000 requests/hour |
| Enterprise | 10,000 requests/hour |
API Endpoints
Authentication
- Login - Obtain access token
- Sign Up - Create new account
- Refresh Token - Get new access token
- Get Current User - Retrieve user information
- Update User - Update user profile
Projects & Sites
- List Projects - Get all projects
- Get Project - Get single project details
- List Sites - Get sites for a project
- Get Site - Get single site details
Assignments
- Create Assignment - Link a user to a project
- Create Bulk Assignments - Link a Dev to multiple projects
- Get Projects by Organization Email - Get projects for an org
- Get Assignments by Project - Get assignments for a project
- List All Assignments - Get all assignments
- Get Assignments by User - Get assignments for a user
- Get Assignment by ID - Get a single assignment
- Delete Assignment - Delete an assignment
Carbon Dashboard
- Project Carbon Summary - Get aggregated carbon analysis
- Site Carbon Analysis - Get site-level carbon data
- All Sites Carbon - Get carbon data for all sites
Biodiversity Dashboard
- Project Biodiversity Summary - Get aggregated biodiversity analysis
- Site Biodiversity Analysis - Get site-level biodiversity data
- Upload Audio Files - Upload audio for analysis
- Run Inference - Process audio files
Climate Dashboard
- Project Climate Summary - Get climate risk analysis
- Site Climate Analysis - Get site-level climate data
Authentication
All API requests require authentication using a Bearer token. Include the token in the Authorization header:
See the Authentication section for details on obtaining tokens.
Error Handling
The API uses standard HTTP status codes:
| Code | Description |
|---|---|
| 200/201 | Success |
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Invalid or missing token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 413 | Payload Too Large - File size exceeds limit |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Error responses include:
{
"error": {
"code": "ERROR_CODE",
"message": "Human-readable error message",
"details": "Additional error details",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
Pagination
List endpoints support pagination using skip and limit query parameters:
skip- Number of items to skip (default: 0)limit- Maximum number of items to return (default: 100)
Example:
Rate Limiting
When rate limits are exceeded, the API returns a 429 Too Many Requests response with headers:
X-RateLimit-Limit- Total requests allowed per hourX-RateLimit-Remaining- Remaining requests in current windowX-RateLimit-Reset- Time when the rate limit resetsRetry-After- Seconds to wait before retrying
Implement exponential backoff when handling rate limit responses.