Overview
The Pipeline API uses JWT (JSON Web Token) based authentication. After signing up and logging in, you’ll receive a session token that must be included in theAuthorization header for all authenticated requests.
Authentication Flow
The typical authentication flow follows these steps:- Signup - Create a new account with email and password
- Email Confirmation - Confirm your email address (check your inbox)
- Login - Sign in to receive a session token
- Make Authenticated Requests - Include the token in subsequent API calls
- Logout - End your session when done
Signup
Create a new account by providing an email and password.Endpoint
Request Body
Valid email address (will be normalized to lowercase)
Password meeting security requirements (minimum 8 characters recommended)
Custom URL to redirect to after email confirmation (optional)
Response
Instructions for next steps (e.g., “Check your email to confirm your account”)
Example
Success Response (201)
Error Responses
400 - Validation Error
400 - Validation Error
400 - Weak Password
400 - Weak Password
409 - Email Already Exists
409 - Email Already Exists
429 - Rate Limited
429 - Rate Limited
Login
Sign in with your email and password to obtain a session token.Endpoint
Request Body
Your email address
Your password
Response
Session Management: The API automatically sets secure, HTTP-only cookies containing your session token. You don’t need to manually extract or store tokens - just include credentials in subsequent requests and cookies will be sent automatically.
Example
Success Response (200)
Error Responses
401 - Invalid Credentials
401 - Invalid Credentials
403 - Email Not Confirmed
403 - Email Not Confirmed
Making Authenticated Requests
After logging in, include your session token in theAuthorization header for all protected endpoints.
Using Bearer Token
If you’re managing tokens manually (e.g., from a custom auth implementation):Using Session Cookies (Recommended)
When using the standard login flow, cookies are handled automatically:Logout
End your session and invalidate the authentication token.Endpoint
Headers
Bearer token or session cookie from login
Response
Always
true on successful logoutExample
Success Response (200)
Session Management
Token Expiration
JWT tokens have a limited lifetime. When a token expires, you’ll receive a401 Unauthorized response and need to log in again.
Token Storage
Handling Authentication Errors
When you receive a401 Unauthorized response:
- Clear any stored session data
- Redirect the user to the login page
- After successful login, retry the original request
Rate Limits
Authentication endpoints have strict rate limits to prevent brute force attacks:- 5 requests per minute per IP address
429 Too Many Requests response:
Error Codes Reference
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid request format or parameters |
INVALID_EMAIL | 400 | Email address format is invalid |
WEAK_PASSWORD | 400 | Password doesn’t meet security requirements |
INVALID_CREDENTIALS | 401 | Email or password is incorrect |
UNAUTHORIZED | 401 | No valid session found |
EMAIL_NOT_CONFIRMED | 403 | Account email not yet confirmed |
SIGNUPS_DISABLED | 403 | New registrations temporarily disabled |
EMAIL_TAKEN | 409 | Account with this email already exists |
RATE_LIMITED | 429 | Too many authentication attempts |
INTERNAL_ERROR | 500 | Unexpected server error |
Security Considerations
HTTPS Required
Always use HTTPS in production to protect credentials in transit
Secure Storage
Tokens are stored in HTTP-only cookies to prevent XSS attacks
Rate Limiting
Brute force protection with IP-based rate limits
Email Normalization
Emails are normalized to lowercase to prevent duplicates
Next Steps
Jobs API
Start managing job applications with the Jobs API
API Overview
Learn about request formats and error handling