API Reference

Integrate Zeddro into your applications with our powerful REST API. Automate profile management, launch browsers programmatically, and build custom workflows.

Authentication

All API requests require authentication using Bearer tokens. Generate your API token from the dashboard at Settings ? API Keys.

// Include your API token in the Authorization header 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.