Skip to content

Log in with email and password

POST
/api/v1/auth/login
curl -X POST 'https://dashboard.justcrawl.io/api/v1/auth/login' \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","password":"correct-horse-battery"}'

Exchanges credentials for a 15-minute accessToken + 7-day refreshToken. The 401 response is identical for both “no such email” and “wrong password” — the server never discloses which side failed, blocking email enumeration. The response embeds the user’s resolved orgId, orgName, and effective permissions (RBAC) so a freshly-logged-in client can render the dashboard without a follow-up org-lookup roundtrip. Subject to the auth rate-limit bucket — many failed logins from one IP return 429.

Media type application/json
object
email
required
string format: email
password
required
string
Example generated
{
"email": "hello@example.com",
"password": "example"
}

Authenticated. Body carries user identity + org context + tokens.

Media type application/json
object
user
object
id
string format: uuid
email
string format: email
name
string
emailVerifiedAt
string
nullable
orgId

Null when the user hasn’t completed onboarding.

string
nullable
orgName
string
nullable
accessToken
string
refreshToken
string
Example generated
{
"user": {
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"email": "hello@example.com",
"name": "example",
"emailVerifiedAt": "example",
"orgId": "example",
"orgName": "example"
},
"accessToken": "example",
"refreshToken": "example"
}

Validation failed — request body or query is missing/invalid

Media type application/json
object
error
string
Example
{
"error": "Missing or invalid \"url\" field"
}

Missing or invalid authentication token

Media type application/json
object
error
string
Example
{
"error": "Missing or invalid authentication token"
}

Unexpected server error. Logs and PostHog $exception capture

Media type application/json
object
error
string
Example
{
"error": "Something went wrong"
}