Dryade API Reference
https://api.dryade.ai/v1Getting Started
Where to find your API key
Your API key is available in your account settings. Navigate to Settings → Subscription to view and manage your API keys.
Authentication
Include your API key in the Authorization header with all requests:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.dryade.ai/v1/pluginsRate Limits
API rate limits depend on your subscription tier:
| Tier | Requests per minute |
|---|---|
| Starter | 60 |
| Team | 300 |
| Enterprise | 1,000 |
Authentication
Authorization Header
All API requests require a valid API key passed in the Authorization header:
Authorization: Bearer YOUR_API_KEYError Responses
Invalid or expired API keys will return a 401 error:
{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API key",
"details": null
}
}Key Rotation
You can regenerate your API key at any time from your account settings. When you regenerate a key:
- The old key is immediately invalidated
- Active sessions using the old key will receive 401 errors
- You must update all integrations with the new key
Plugins
Browse, search, and retrieve plugin information from the marketplace.
Subscriptions
Manage your subscription and installed plugins.
License
Validate and manage your license keys.
Webhooks
Receive real-time notifications about events in your account.
Available Events
plugin.installedWhen a plugin is installedplugin.updatedWhen a plugin is updatedplugin.uninstalledWhen a plugin is uninstalledsubscription.changedWhen subscription tier changes
Payload Format
Each webhook event includes an event type, timestamp, and event-specific data:
plugin.installed / plugin.updated
{
"event": "plugin.installed",
"timestamp": "2024-12-05T15:30:00Z",
"data": {
"plugin_id": "plugin_abc123",
"plugin_name": "Workflow Automator",
"version": "2.1.0",
"user_id": "user_xyz789"
}
}plugin.uninstalled
{
"event": "plugin.uninstalled",
"timestamp": "2024-12-05T15:35:00Z",
"data": {
"plugin_id": "plugin_abc123",
"plugin_name": "Workflow Automator",
"user_id": "user_xyz789",
"uninstalled_at": "2024-12-05T15:35:00Z"
}
}Signature Verification
Verify webhook authenticity using the X-Dryade-Signature header:
import hmac
import hashlib
def verify_webhook(payload, signature, secret):
expected = hmac.new(
secret.encode(),
payload.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)Errors
Standard Error Format
All errors follow a consistent format:
{
"error": {
"code": "not_found",
"message": "Plugin with ID 'invalid_id' not found",
"details": {
"plugin_id": "invalid_id"
}
}
}Error Code Reference
| Code | Name | Description |
|---|---|---|
400 | Bad Request | Invalid request parameters or body |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | Valid API key but insufficient permissions |
404 | Not Found | Requested resource does not exist |
409 | Conflict | Resource already exists or state conflict |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Something went wrong on our end |
SDKs & Tools
Client Libraries
Official client libraries are coming soon for: