API Overview
Welcome to the Jungler API documentation. The Jungler API allows you to programmatically access and analyze data collected by your searches.
Base URL
https://production.viacurrent.com/api
Authentication
All requests require an API key in the header:
X-API-Key: your_api_key_here
Getting an API Key
- Log in to your Jungler account
- Navigate to Settings → API Keys
- Generate a new API key
- Store it securely - it won't be shown again
Rate Limiting
API requests are rate-limited per endpoint. The Base URL already includes /api, so paths in this table are relative to that API root. For example, GET /workspaces means GET https://production.viacurrent.com/api/workspaces. Endpoint snippets elsewhere may show the full request path from the domain root, such as GET /api/workspaces.
| Endpoint | Rate Limit |
|---|---|
GET /workspaces | 30/minute |
GET /workspaces/{workspace_id}/subscription | 30/minute |
GET /signals | 30/minute |
GET /signals/{signal_id} | 60/minute |
POST /signals | 6/minute |
GET /signals/{signal_id}/run | 60/minute |
PUT /signals/{signal_id}/activate | 6/minute |
PUT /signals/{signal_id}/deactivate | 6/minute |
DELETE /signals/{signal_id} | 6/minute |
GET /posts | 60/minute |
GET /engagers/* | 60/minute |
POST /workbooks | 30/minute |
GET /workbooks/runs/{run_id} | 60/minute |
POST /workbooks/schedules | 30/minute |
GET /workbooks/schedules | 60/minute |
GET /workbooks/schedules/{schedule_id} | 60/minute |
DELETE /workbooks/schedules/{schedule_id} | 30/minute |
When you exceed the rate limit, you'll receive a 429 Too Many Requests response.
API Endpoints
Core Resources
- Workspaces - List your workspaces
- Signals - List and retrieve signal configurations
- Posts - Retrieve and filter posts
- Engagers - Retrieve interactions (comments, reactions) and contacts
- Workbooks - Create immediate or scheduled extraction runs for specific posts
- Webhooks - Send data to external platforms automatically
Quick Start
1. Get your workspaces
curl -X GET "https://production.viacurrent.com/api/workspaces" \
-H "X-API-Key: your_api_key_here"
2. List signals in a workspace
curl -X GET "https://production.viacurrent.com/api/signals?workspace_id=YOUR_WORKSPACE_ID" \
-H "X-API-Key: your_api_key_here"
3. Retrieve posts
curl -X GET "https://production.viacurrent.com/api/posts?workspace_id=YOUR_WORKSPACE_ID&signal_ids=YOUR_SIGNAL_ID" \
-H "X-API-Key: your_api_key_here"
Response Format
All API responses use JSON format. Successful responses have a 2xx status code.
Error Response
{
"detail": "Error message description"
}
Most errors return a string in detail. Some endpoints return a structured object in detail when clients need machine-readable context, such as a conflicting resource status and related IDs.
Common HTTP Status Codes
| Code | Description |
|---|---|
| 200 | Success |
| 202 | Accepted (async operation started) |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - No access to resource |
| 404 | Not Found - Resource doesn't exist |
| 409 | Conflict - Resource state conflict |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Data Types
Date/Time Format
All timestamps use ISO 8601 format with UTC timezone:
2024-01-15T10:30:00Z
For date-only filters, you can use:
2024-01-15
Object IDs
Resource identifiers are MongoDB ObjectIds represented as 24-character hexadecimal strings:
507f1f77bcf86cd799439011
Best Practices
Filtering
- Use specific filters to reduce response size and improve performance
- Combine multiple filters to narrow down results
- Date ranges are bounded by the data retention window — see each endpoint's docs for the maximum range per request
Rate Limiting
- Implement exponential backoff when receiving 429 responses
- Cache responses when appropriate
- Batch requests when possible
Error Handling
- Always check HTTP status codes
- Parse error details from the response body
- Implement retry logic for transient errors (5xx)
Support
Need help? Contact us at team@jungler.ai or visit our GitHub repository.