Authentication
Wryn uses API key authentication for all requests to our API.
API Keys
Get Early Access
To get started:
- Visit wryn.ai
- Fill out the early access request form
- You'll receive an invitation email when your access is approved
- Follow the setup instructions in your invitation
Coming Soon
Public signup will be available soon. Join our early access program to get started today!
API Key Format
wryn_live_1234567890abcdefghijklmnopqrstuvwxyz
wryn_- Prefix for all Wryn keyslive_ortest_- Environment identifier- 40-character alphanumeric string
Authentication Methods
Bearer Token (Recommended)
Include your API key in the Authorization header:
curl -X POST https://api.wryn.io/v1/scrape \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
Test vs Live Keys
Test Keys
- Prefix:
wryn_test_ - Limited to test mode features
- Separate quota from live keys
- Use for development and testing
Live Keys
- Prefix:
wryn_live_ - Production environment
- Billed according to your plan
- Use in production applications
Security Best Practices
Never Expose Keys
Don't:
- Commit keys to version control
- Share keys in public channels
- Include keys in client-side code
- Log keys in application logs
Do:
- Store in environment variables
- Use secret management services
- Rotate keys regularly
- Use separate keys per environment
Environment Variables
# .env file
WRYN_API_KEY=wryn_live_your_key_here
# .gitignore
.env
import os
api_key = os.environ['WRYN_API_KEY']
Error Responses
401 Unauthorized
Invalid or missing API key:
{
"error": {
"code": "unauthorized",
"message": "Invalid API key"
}
}
Solutions:
- Check API key is correct
- Verify key is not revoked
- Ensure proper header format
403 Forbidden
IP not whitelisted or account suspended:
{
"error": {
"code": "forbidden",
"message": "IP address not whitelisted"
}
}
Solutions:
- Add IP to whitelist
- Contact support if account suspended
429 Too Many Requests
Rate limit exceeded:
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Retry after 60 seconds"
}
}
Solutions:
- Wait and retry
- Implement exponential backoff
- Upgrade plan for higher limits