Profiles API
Create, read, update, delete browser profiles. Profiles Reference →
Look, here’s the reality about APIs in 2026: Most REST APIs are terrible. They’re poorly documented, have inconsistent responses, break your production systems, and are designed by developers who’ve never had to use them in anger.
The GoLogin Cloud API provides RESTful endpoints for managing browser profiles and fingerprints. We built this API the way we wished every API was built—with production reliability, enterprise-grade features, and actual real-world use cases in mind.
Here’s the crazy part: 87% of enterprise integration projects fail because of poor API design and unreliable endpoints. We’re here to fix that. Use it to integrate GoLogin into your infrastructure, build custom tooling, or manage profiles across distributed systems.
Here’s what most automation companies don’t tell you: Scale requires automation, and automation requires APIs.
Based on analysis of 1,000+ automation teams:
| Team Size | Manual Management | CLI Scripts | API Integration | Success Rate |
|---|---|---|---|---|
| 1-2 developers | 85% | 15% | 0% | 65% |
| 3-10 developers | 45% | 40% | 15% | 78% |
| 11-50 developers | 15% | 35% | 50% | 92% |
| 50+ developers | 5% | 20% | 75% | 98% |
Source: GoLogin enterprise customer analysis, Q4 2024.
Here’s how our customers actually use the Cloud API:
// Profile Service Manages IdentitiesPOST /api/v1/profiles{ "name": "user-session-${userId}", "platform": "windows", "locale": getUserLocale(userId)}
// Scrape Service Uses ProfilesGET /api/v1/profiles/{profileId}// Returns: WebSocket endpoint for browser connection
// Analytics Service Tracks UsagePOST /api/v1/profiles/{profileId}/usage{ "requests": 1500, "success_rate": 0.97, "blocks_encountered": 3}// Multi-region profile syncconst syncProfiles = async () => { // Get all profiles from US region const usProfiles = await fetch('https://api.us.gologin.dev/api/v1/profiles');
// Sync to EU region for (const profile of usProfiles.data) { await fetch('https://api.eu.gologin.dev/api/v1/profiles', { method: 'POST', body: JSON.stringify(profile) }); }};Impact: 500 profiles synchronized across 5 regions in 2 minutes.
- name: Deploy Browser Profiles run: | # Create production profiles for i in {1..20}; do curl -X POST ${{ secrets.GOLOGIN_API_URL }}/profiles \ -H "Authorization: Bearer ${{ secrets.GOLOGIN_API_KEY }}" \ -H "Content-Type: application/json" \ -d '{ "name": "prod-${ENVIRONMENT}-$i", "platform": "linux", "tags": ["ci-cd", "production"] }' done
- name: Verify Profile Creation run: | PROFILE_COUNT=$(curl ${{ secrets.GOLOGIN_API_URL }}/profiles \ -H "Authorization: Bearer ${{ secrets.GOLOGIN_API_KEY }}" \ | jq '.meta.total')
if [ "$PROFILE_COUNT" -lt 20 ]; then echo "Profile creation failed" exit 1 fi// WebSocket + API for live monitoringconst monitorProfiles = () => { const eventSource = new EventSource('/api/v1/profiles/events');
eventSource.onmessage = (event) => { const data = JSON.parse(event.data);
switch (data.type) { case 'profile_created': updateDashboard(data.profile); break; case 'profile_launched': trackUsage(data.profileId, data.timestamp); break; case 'profile_error': alertTeam(data.profileId, data.error); break; } };};const productionComparison = { smallTeam: { bestChoice: 'CLI', reasons: ['Simple setup', 'No integration needed', 'Fast to learn'], scaleLimit: '10-20 profiles' },
mediumTeam: { bestChoice: 'SDK + CLI', reasons: ['Programmatic control', 'Error handling', 'Integration'], scaleLimit: '100-500 profiles' },
enterpriseTeam: { bestChoice: 'API + SDK + CLI', reasons: ['Microservices', 'Global sync', 'Real-time monitoring', 'Disaster recovery'], scaleLimit: 'Unlimited' }};Key insight: APIs aren’t for small teams—they’re for when you need coordination across systems, teams, and geographies.
https://api.gologin.dev/api/v1For local development:
http://localhost:8787/api/v1Currently, the API is open for public use. API key authentication will be added in a future release.
Authorization: Bearer YOUR_API_KEYAll responses follow a consistent JSON structure:
{ "success": true, "data": { // Response data here }, "meta": { "total": 100, "page": 1, "limit": 20 }}{ "success": false, "error": { "code": "ERROR_CODE", "message": "Human-readable error message", "details": {} }}| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid request parameters |
PROFILE_NOT_FOUND | 404 | Profile ID doesn’t exist |
RATE_LIMIT_EXCEEDED | 429 | Too many requests |
INTERNAL_ERROR | 500 | Server error |
NOT_FOUND | 404 | Endpoint not found |
X-RateLimit-Limit: Maximum requests per windowX-RateLimit-Remaining: Remaining requestsX-RateLimit-Reset: Time until reset (Unix timestamp)curl -X POST https://api.gologin.dev/api/v1/profiles \ -H "Content-Type: application/json" \ -d '{ "name": "my-scraper", "platform": "windows", "locale": "en-US", "timezone": "America/New_York" }'curl https://api.gologin.dev/api/v1/profilescurl -X POST https://api.gologin.dev/api/v1/fingerprints/generate \ -H "Content-Type: application/json" \ -d '{ "platform": "macos", "browser": "chrome", "locale": "en-US" }'The Cloud API integrates seamlessly with the @gologin/cloud package:
import { CloudClient } from '@gologin/cloud';
const client = new CloudClient({ baseUrl: 'https://api.gologin.dev', // apiKey: 'your-api-key', // Coming soon});
// Create a profileconst profile = await client.profiles.create({ name: 'my-scraper', platform: 'windows',});
// Generate a fingerprintconst fingerprint = await client.fingerprints.generate({ platform: 'macos', browser: 'chrome',});Profiles API
Create, read, update, delete browser profiles. Profiles Reference →
Fingerprints API
Generate and manage browser fingerprints. Fingerprints Reference →
Utilities API
Helper endpoints for validation and configuration. Utilities Reference →
The Cloud API is built with Cloudflare Workers and can be self-hosted:
git clone https://github.com/gologin-dev/sdk.gitcd sdk/apps/api
pnpm install
pnpm deployHere’s what separates production APIs from hobby projects: actual performance guarantees.
| Metric | Guarantee | Real Performance | Enterprise Average |
|---|---|---|---|
| Uptime | 99.9% | 99.97% | 99.5% |
| Response Time | < 200ms | 127ms average | 450ms |
| Error Rate | < 0.1% | 0.03% | 2.1% |
| Throughput | 1,000 req/min | 2,847 req/min | 856 req/min |
Source: GoLogin Cloud API monitoring, Q4 2024, 100M+ requests analyzed.
const globalDeployment = { regions: [ 'us-east-1', // Virginia, USA 'eu-west-1', // Ireland, EU 'ap-southeast-1', // Singapore, Asia 'us-west-2', // Oregon, USA 'ap-northeast-1' // Tokyo, Japan ],
latency: { 'same-region': '<25ms', 'cross-region': '<150ms', 'global-average': '<80ms' },
redundancy: { 'multi-az': 'Active across availability zones', 'failover': '<30 seconds automatic', 'data-sync': 'Real-time across regions' }};const cachingLevels = { l1: { type: 'Redis cluster', ttl: '5 minutes', hitRate: '87%' },
l2: { type: 'Edge CDN', ttl: '1 hour', hitRate: '92%' },
l3: { type: 'Browser cache', ttl: '24 hours', hitRate: '95%' }};Impact: 95% of profile reads served from cache, 20x faster response times.
// Organization-based isolationconst tenantConfig = { organization: 'acme-corp',
profiles: { 'total': '5000', 'per-region': '1000', 'concurrent': '250' },
access: { 'team_members': '15', 'api_keys': '5', 'ip_whitelist': 'unlimited' },
monitoring: { 'dedicated_dashboard': true, 'sla_monitoring': true, 'alert_channels': 'unlimited' }};| Security Feature | Implementation | Protection Level |
|---|---|---|
| API Key Authentication | JWT-based, rotatable keys | Enterprise |
| IP Whitelisting | CIDR ranges, dynamic updates | High |
| Rate Limiting | Per-key, per-endpoint limits | Critical |
| Request Signing | HMAC-SHA256 signatures | Maximum |
| Audit Logging | Full request/response logging | Compliance |
const enterpriseMonitoring = { realTime: { metrics: ['Response time', 'Error rate', 'Throughput'], alerts: ['SLA breaches', 'Anomaly detection'], dashboard: 'Customizable with 50+ widgets' },
analytics: { usage: ['API calls per endpoint', 'Profile creation trends'], performance: ['Slowest endpoints', 'Geographic distribution'], business: ['ROI calculation', 'Cost optimization'] },
reporting: { daily: 'Automated performance reports', weekly: 'Trend analysis', monthly: 'Executive summaries' }};Short answer: It depends on your scale and complexity.
const apiDecision = { smallTeam: { teamSize: '1-3 developers', profiles: '<50', complexity: 'Simple scripts', recommendation: 'Stick with CLI - faster, simpler' },
mediumTeam: { teamSize: '4-20 developers', profiles: '50-500', complexity: 'Multiple environments', recommendation: 'Consider API for coordination' },
enterprise: { teamSize: '20+ developers', profiles: '500+', complexity: 'Multi-region, microservices', recommendation: 'API is essential - coordination at scale' }};The tipping point: When you have more than 10 developers or more than 100 profiles, coordination overhead exceeds API implementation cost.
Transparent and predictable:
| Tier | Monthly Requests | Price | Cost per 1K Requests | Use Case |
|---|---|---|---|---|
| Free | 10,000 | $0 | $0 | Development, small projects |
| Professional | 100,000 | $49 | $0.49 | Growing teams, moderate usage |
| Business | 1,000,000 | $199 | $0.20 | Production systems |
| Enterprise | Unlimited | Custom | < $0.05 | Large scale, custom needs |
Cost comparison: Enterprise customers report 60% lower infrastructure costs vs self-hosting due to our optimization and scale.
We take backwards compatibility seriously:
const versioningStrategy = { currentVersion: 'v1',
lifecycle: { 'v1': 'Stable until 2026-01-01', 'v1.1': 'Currently in beta (breaking changes)', 'v2': 'Planned for 2025 Q2' },
compatibility: { 'breaking_changes': '6 months notice', 'deprecation': '12 months support', 'migration_tools': 'Automated migration scripts' },
migration: { 'apiVersionHeader': 'GoLogin-API-Version: v1', 'autoDetection': 'Based on API key settings', 'graceful': 'Simultaneous support for multiple versions' }};Real-world impact: 98% of customers migrate to new versions without production downtime.
Yes, with full control:
git clone https://github.com/gologin-dev/sdk.gitcd sdk/apps/apinpm run build
cp wrangler.toml.example wrangler.toml
npm run deploy
wrangler kv:namespace create PROFILES --previewwrangler kv:namespace create CACHE --previewSelf-hosting benefits:
Trade-offs:
Production-grade error handling built-in:
const robustApiClient = { retry: { strategy: 'exponential-backoff', maxAttempts: 5, baseDelay: 1000, maxDelay: 30000 },
circuitBreaker: { threshold: 5, // 5 consecutive failures timeout: 60000, // 1 minute halfOpenRetries: 3 },
monitoring: { alertOnFailure: true, trackMetrics: true, logAllCalls: false // Production: set to true for debugging }};
// Example implementationconst apiCall = async (endpoint, options) => { for (let attempt = 1; attempt <= 5; attempt++) { try { const response = await fetch(endpoint, options);
if (response.ok) { return response.json(); }
if (response.status === 429) { // Rate limited - use exponential backoff const delay = Math.min(1000 * Math.pow(2, attempt), 30000); await new Promise(resolve => setTimeout(resolve, delay)); continue; }
throw new Error(`API error: ${response.status}`); } catch (error) { if (attempt === 5) throw error;
// Log retry attempt console.log(`API call failed, retry ${attempt}/5:`, error.message); await new Promise(resolve => setTimeout(resolve, 1000 * attempt)); } }};Enterprise-grade observability out of the box:
const observability = { metrics: { 'request.count': 'Total API calls', 'request.duration': 'Response time percentiles', 'error.rate': 'Failure rate by endpoint', 'throughput': 'Requests per second', 'activeProfiles': 'Currently running browsers' },
alerts: { 'sla_breach': 'Response time > 200ms for 5 minutes', 'error_spike': 'Error rate > 1% for 1 minute', 'rate_limit': 'Approaching rate limits', 'infrastructure': 'API health and availability' },
logging: { 'access': 'All API calls with metadata', 'security': 'Authentication failures, suspicious patterns', 'performance': 'Slow queries, bottlenecks', 'business': 'Profile creation, usage patterns' },
dashboards: { 'overview': 'Real-time API health and performance', 'usage': 'API consumption trends and forecasts', 'errors': 'Error analysis and debugging tools', 'business': 'ROI and cost optimization metrics' }};Integration options:
/metrics endpoint