Authentication
All API requests require authentication using Bearer tokens. Generate your API token from the dashboard at Settings ? API Keys.
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Security: Keep your API tokens secure. Never share them publicly or commit them to version control. Rotate tokens regularly for enhanced security.
Base URL
https://app.zeddro.com/api
Rate Limits
API requests are rate-limited to ensure fair usage and system stability:
-
Free Plan: 100 requests per hour
-
Pro Plan: 1,000 requests per hour
-
Business Plan: 5,000 requests per hour
-
Enterprise Plan: Custom limits
Rate limit information is included in response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1640995200
Error Handling
The API uses standard HTTP status codes and returns error details in JSON format:
{
"error": "invalid_request",
"message": "Profile name is required",
"status": 400
}
Status Codes
-
200 OK: Request successful
-
201 Created: Resource created successfully
-
400 Bad Request: Invalid request parameters
-
401 Unauthorized: Invalid or missing API token
-
403 Forbidden: Insufficient permissions
-
404 Not Found: Resource not found
-
429 Too Many Requests: Rate limit exceeded
-
500 Internal Server Error: Server error
Profiles
Manage browser profiles programmatically.
GET
/profiles
Retrieve a list of all profiles in your account.
Query Parameters
folderstring
Filter profiles by folder name
statusstring
Filter by status: active, running, archived
limitinteger
Number of results per page (default: 50, max: 100)
Response
{
"profiles": [
{
"id": 123,
"name": "Facebook Account 1",
"folder": "Social Media",
"os": "Windows",
"browser": "Chrome",
"status": "active",
"proxy_id": 45,
"created_at": "2024-01-15T10:30:00Z"
}
],
"total": 156,
"page": 1
}
POST
/profiles
Create a new browser profile.
Request Body
namestringrequired
Profile name (max 100 characters)
osstring
Operating system: Windows, macOS, Linux (default: Windows)
browserstring
Browser type: Chrome, Firefox (default: Chrome)
folderstring
Folder name to organize profile
proxy_idinteger
ID of proxy to use with this profile
fingerprintobject
Custom fingerprint configuration (see Fingerprints section)
Example Request
{
"name": "Instagram Marketing",
"os": "Windows",
"browser": "Chrome",
"folder": "Social Media",
"proxy_id": 45
}
Response
{
"id": 124,
"name": "Instagram Marketing",
"status": "active",
"created_at": "2024-01-15T11:00:00Z"
}
PUT
/profiles/{id}
Update an existing profile.
DELETE
/profiles/{id}
Delete a profile permanently. This action cannot be undone.
Fingerprints
Generate and manage browser fingerprints.
POST
/fingerprints/generate
Generate a new random fingerprint.
Request Body
osstring
Target OS: Windows, macOS, Linux
browserstring
Browser type: Chrome, Firefox
Response
{
"fingerprint": {
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
"screen_resolution": "1920x1080",
"timezone": "America/New_York",
"webgl_vendor": "Intel Inc.",
"webgl_renderer": "Intel Iris OpenGL Engine"
}
}
Proxies
GET
/proxies
List all proxies in your account.
POST
/proxies
Add a new proxy.
Request Body
{
"name": "US Residential 1",
"type": "http",
"host": "proxy.example.com",
"port": 8080,
"username": "user",
"password": "pass"
}
Cookies
GET
/profiles/{id}/cookies
Export cookies from a profile.
POST
/profiles/{id}/cookies
Import cookies into a profile.
Request Body
{
"cookies": [
{
"name": "session_id",
"value": "abc123",
"domain": ".example.com",
"path": "/",
"secure": true,
"httpOnly": true
}
]
}
Agent API
The Zeddro Agent runs a local HTTP server on port 35000 for launching profiles.
GET
http://localhost:35000/status
Check if Agent is running.
Response
{
"status": "online",
"version": "3.2.0",
"running_profiles": 3
}
POST
http://localhost:35000/launch
Launch a browser profile.
Request Body
{
"profileId": 123,
"token": "your-api-token"
}
Response
{
"success": true,
"profile_id": 123,
"port": 9222,
"ws_endpoint": "ws://localhost:9222/devtools/browser/..."
}
POST
http://localhost:35000/stop/{id}
Stop a running profile.
Automation: Use the WebSocket endpoint returned by /launch to connect Puppeteer or Selenium for browser automation.