Skip to main content

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

  1. Log in to your Jungler account
  2. Navigate to Settings → API Keys
  3. Generate a new API key
  4. 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.

EndpointRate Limit
GET /workspaces30/minute
GET /workspaces/{workspace_id}/subscription30/minute
GET /signals30/minute
GET /signals/{signal_id}60/minute
POST /signals6/minute
GET /signals/{signal_id}/run60/minute
PUT /signals/{signal_id}/activate6/minute
PUT /signals/{signal_id}/deactivate6/minute
DELETE /signals/{signal_id}6/minute
GET /posts60/minute
GET /engagers/*60/minute
POST /workbooks30/minute
GET /workbooks/runs/{run_id}60/minute
POST /workbooks/schedules30/minute
GET /workbooks/schedules60/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

CodeDescription
200Success
202Accepted (async operation started)
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - No access to resource
404Not Found - Resource doesn't exist
409Conflict - Resource state conflict
429Too Many Requests - Rate limit exceeded
500Internal 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.