Skip to main content
POST
/
users
/
login
Logs user into the system
curl --request POST \
  --url https://app.planpoint.io/api/users/login \
  --header 'Authorization: <api-key>'
{
  "_id": "<string>",
  "role": "<string>",
  "username": "<string>",
  "name": "<string>",
  "lastName": "<string>",
  "fullName": "<string>",
  "phone": "<string>",
  "companyName": "<string>",
  "projectNameURL": "<string>",
  "country": "<string>",
  "address1": "<string>",
  "address2": "<string>",
  "city": "<string>",
  "region": "<string>",
  "zip": "<string>",
  "token": "<string>",
  "stripeAccountId": "<string>",
  "stripeOnboardingDone": false,
  "stripeDetailsSubmitted": false,
  "experimentalFeatures": false,
  "resetToken": "<string>",
  "stripeCustomer": {},
  "subscription": {},
  "appliedTrial": false,
  "projects": [
    "<string>"
  ],
  "groups": [
    "<string>"
  ],
  "administrators": [
    "<string>"
  ],
  "editors": [
    "<string>"
  ],
  "invites": [
    {
      "firstName": "<string>",
      "lastName": "<string>",
      "email": "[email protected]",
      "level": "<string>"
    }
  ],
  "preferences": {
    "hideBrandingIcon": false,
    "hideLoadingLogo": false
  }
}

Step-by-Step Guide: Planpoint Login API

1. Prepare Your Request Body

You’ll need to send a JSON payload with the following fields:
  • username: Your email address (required, must be valid email format)
  • password: Your password

2. Set Up the HTTP Request

Configure a POST request with:
  • Method: POST
  • URL: https://app.planpoint.io/api/users/login
  • Content-Type: application/json

3. Standard Login Flow

For regular user login, send this request body: json { "username": "[email protected]", "password": "your-password" } Example using cURL: bash curl --request POST \ --url https://app.planpoint.io/api/users/login \ --header 'Content-Type: application/json' \ --data '{ "username": "[email protected]", "password": "your-password" }'

4. Handle the Response

Success Response (200): json { "message": "Login successful", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } The response includes:
  • access_token: JWT token for authenticating future API requests
  • HTTP-only cookies are automatically set in your browser:
    • planpoint: Access token (expires in 1 day for regular users, 90 days for Zapier)
    • planpointRefresh: Refresh token (expires in 7 days, not set for Zapier users)
Error Responses:
  • 400: Invalid request body (username not an email, etc.)
  • 401: User not found, incorrect credentials, or unauthorized
  • 403: Not allowed (for impersonation attempts)
  • 405: Method not allowed (if not using POST)
  • 500: Server error

5. Use the Access Token

For subsequent API requests, use the access_token from the response in your Authorization header: bash Authorization: Bearer YOUR_ACCESS_TOKEN

Authorizations

Authorization
string
header
required

Query Parameters

username
string
required

The user name for login

password
string
required

The password for login

Response

Successful operation

_id
string<objectId>

Unique identifier for the user

role
string<objectId>

Reference to the user's role

username
string

Unique username of the user

name
string

First name of the user

lastName
string

Last name of the user

fullName
string

Full name of the user

phone
string

Phone number of the user

companyName
string

Name of the user's company

projectNameURL
string

URL for the user's project name

country
string

Country of the user

address1
string

Primary address of the user

address2
string

Secondary address of the user

city
string

City of the user

region
string

Region or state of the user

zip
string

ZIP code of the user

token
string

Authentication token for the user

stripeAccountId
string

Stripe account ID of the user

stripeOnboardingDone
boolean
default:false

Indicates if Stripe onboarding is complete

stripeDetailsSubmitted
boolean
default:false

Indicates if Stripe details have been submitted

experimentalFeatures
boolean
default:false

Indicates if experimental features are enabled

resetToken
string

Token for resetting the user's password

stripeCustomer
object

Stripe customer information for the user

subscription
object

Subscription details for the user

appliedTrial
boolean
default:false

Indicates if the user has applied a trial

projects
string<objectId>[]

List of projects associated with the user

groups
string<objectId>[]

List of groups associated with the user

administrators
string<objectId>[]

List of administrators associated with the user

editors
string<objectId>[]

List of editors associated with the user

invites
object[]

List of invites associated with the user

preferences
object

User preferences