Authenticate and get bearer token
curl --request POST \
--url https://my.propops.app/api/auth/login \
--header 'Content-Type: application/json' \
--data '
{
"email": "admin@example.com",
"password": "********"
}
'import requests
url = "https://my.propops.app/api/auth/login"
payload = {
"email": "admin@example.com",
"password": "********"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: 'admin@example.com', password: '********'})
};
fetch('https://my.propops.app/api/auth/login', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://my.propops.app/api/auth/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'admin@example.com',
'password' => '********'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://my.propops.app/api/auth/login"
payload := strings.NewReader("{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://my.propops.app/api/auth/login")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://my.propops.app/api/auth/login")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"token": "a1b2c3d4e5f67890...",
"token_type": "Bearer",
"expires_at": "2023-11-07T05:31:56Z",
"user": {
"name": "John Doe",
"email": "admin@example.com",
"account_type": "Staff"
},
"usage": "<string>"
}{
"success": false,
"error": "An error occurred. Please try again."
}{
"success": false,
"error": "An error occurred. Please try again."
}Authentication
Authenticate and get bearer token
Authenticate with email and password to receive a long-lived bearer token
for API access. Available on any domain. When used on the API Playground
(my.propops.app), login is restricted to SysOps and API roles only.
The returned token is valid for 90 days and should be included as
Authorization: Bearer <token> in all subsequent API requests.
Any previously active token for the same account is automatically revoked when a new one is generated.
POST
/
api
/
auth
/
login
Authenticate and get bearer token
curl --request POST \
--url https://my.propops.app/api/auth/login \
--header 'Content-Type: application/json' \
--data '
{
"email": "admin@example.com",
"password": "********"
}
'import requests
url = "https://my.propops.app/api/auth/login"
payload = {
"email": "admin@example.com",
"password": "********"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: 'admin@example.com', password: '********'})
};
fetch('https://my.propops.app/api/auth/login', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://my.propops.app/api/auth/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'admin@example.com',
'password' => '********'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://my.propops.app/api/auth/login"
payload := strings.NewReader("{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://my.propops.app/api/auth/login")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://my.propops.app/api/auth/login")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"admin@example.com\",\n \"password\": \"********\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"token": "a1b2c3d4e5f67890...",
"token_type": "Bearer",
"expires_at": "2023-11-07T05:31:56Z",
"user": {
"name": "John Doe",
"email": "admin@example.com",
"account_type": "Staff"
},
"usage": "<string>"
}{
"success": false,
"error": "An error occurred. Please try again."
}{
"success": false,
"error": "An error occurred. Please try again."
}Body
application/json
Response
Authentication successful
⌘I