Skip to main content
POST
/
iam
/
auth
/
jwt
/
login
Login
curl --request POST \
  --url https://api.gcore.com/iam/auth/jwt/login \
  --header 'Content-Type: application/json' \
  --data '
{
  "username": "you@yourcompany.com",
  "password": "yourpassword",
  "one_time_password": "authenticator passcode"
}
'
import requests

url = "https://api.gcore.com/iam/auth/jwt/login"

payload = {
"username": "you@yourcompany.com",
"password": "yourpassword",
"one_time_password": "authenticator passcode"
}
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({
username: 'you@yourcompany.com',
password: 'yourpassword',
one_time_password: 'authenticator passcode'
})
};

fetch('https://api.gcore.com/iam/auth/jwt/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://api.gcore.com/iam/auth/jwt/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([
'username' => 'you@yourcompany.com',
'password' => 'yourpassword',
'one_time_password' => 'authenticator passcode'
]),
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://api.gcore.com/iam/auth/jwt/login"

payload := strings.NewReader("{\n \"username\": \"you@yourcompany.com\",\n \"password\": \"yourpassword\",\n \"one_time_password\": \"authenticator passcode\"\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://api.gcore.com/iam/auth/jwt/login")
.header("Content-Type", "application/json")
.body("{\n \"username\": \"you@yourcompany.com\",\n \"password\": \"yourpassword\",\n \"one_time_password\": \"authenticator passcode\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.gcore.com/iam/auth/jwt/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 \"username\": \"you@yourcompany.com\",\n \"password\": \"yourpassword\",\n \"one_time_password\": \"authenticator passcode\"\n}"

response = http.request(request)
puts response.read_body
{
  "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYwMTcwNzA5MiwianRpIjoiMGFmOGU3NTMzYWEyNDM0YmI4M2NmMjA1ZWM2NTMwZjQiLCJ1c2VyX2lkIjo1LCJ1c2VyX3R5cGUiOiJjb21tb24iLCJ1c2VyX2dyb3VwcyI6WyJBZG1pbmlzdHJhdG9ycyJdLCJjbGllbnRfaWQiOjIsImVtYWlsIjoidGVzdHVzZXJAZXhhbXBsZS5jb20iLCJ1c2VybmFtZSI6InRlc3R1c2VyQGV4YW1wbGUuY29tIiwic3NvX2VudGl0eSI6bnVsbCwiaXNfYWRtaW4iOmZhbHNlLCJjbGllbnRfbmFtZSI6IlRlc3QgQ29tcGFueSIsImV4Y2hhbmdlYWJsZSI6dHJ1ZX0.C-RuHDWLpu1bd0_SoZgbkqSqA65egSBigKikeEKXkdK-PRVx4ZUIMdkJd-L4ebeydDHgeq3AwXbDBSqPuXZMTKTFKe1HTvpLycTNkTKa-dp9nTq0VwfUlf3G7QajEJA1UiQ7IhSDZJK5NBkEzs_-PFtPOQjeE2u2AbKKJ_SK3hNi1BVU3uVjfWsMVwGDkVnPIa0aLtYDTYd2QKN5InBGh06XITFD_P_IETfwhw7yG4PvLWGejGQO9jJx1ViFYCQi-O8vLR9-mjwaD8Ngc5O8v3mnzRkkxeWoukSW1p8eWiGf7QaLg-zSI6pNFO3_LO-ILHcJ394GJzW2rSpaAgvxwRHDIulDxJtAbqyxykLgnDSHUZbKq8mgQqkeshbmQ-BUT_nkYj1LcQisNTGp4QsDRdi095QQIXLntJiGC59BxpZQ5y3j67AZHG9qiVuHQSlHBaQKBAFdA_d7CRqV7TzsT4p3cHVXF_VccBM06pItkYYY5Xj0bQPU6qWf26bONnYh1FHOlaejw2mGc_FsPpi0soGUh-1v_Qs6C4N086VJ5uYSHw_M3MNcGBjAahnUdrKNX_8gmbTDwYNw7h1ELPYfBAFeQJrdTOOQPfUHzkt9g67DHdxRDHMQxz933Wxmfl_5fiHWoWE82n5ZA110BZB9JQoP7Tqtg4qIZoE1M6Knh14",
  "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjAxNjI0MjkyLCJqdGkiOiI0Mjk1ZjZhMjI4ZTE0MmE3YjA1ZmIxYjE5MjlhZjZlYyIsInVzZXJfaWQiOjUsInVzZXJfdHlwZSI6ImNvbW1vbiIsInVzZXJfZ3JvdXBzIjpbIkFkbWluaXN0cmF0b3JzIl0sImNsaWVudF9pZCI6MiwiZW1haWwiOiJ0ZXN0dXNlckBleGFtcGxlLmNvbSIsInVzZXJuYW1lIjoidGVzdHVzZXJAZXhhbXBsZS5jb20iLCJzc29fZW50aXR5IjpudWxsLCJpc19hZG1pbiI6ZmFsc2UsImNsaWVudF9uYW1lIjoiVGVzdCBDb21wYW55IiwiZXhjaGFuZ2VhYmxlIjp0cnVlLCJyanRpIjoiMGFmOGU3NTMzYWEyNDM0YmI4M2NmMjA1ZWM2NTMwZjQifQ.aJjVE3_mC8fimclIPggD0ynh0EIwO8kCEffhFN4CxbaDBGz4R2Xn2mJQqhsRB2YoDCx_oH3uLii6aM_6OQtc2DbIElfN1KHoQmzzEjxKKXlgTOF_gsq9dVwQ9hajeOsQu5ly1rMk41WW1LrQ6Nkb_v6LC8g57Ah4h2pGot44h87BDsG6uUyMFVV3ZTJjkVNWJxceljFeDPO5rhx-ujtkX5iYwAeVh6HAq3I4Sw7OO5LZHF9pnhNBJVRNu8HlBNyk5UVB7uyStc9vjAnjGJyqc4yWL3QVTz7BMtvXX19W6sypl_YQiYzz5dsOiL4dzsI5RERBVt9DtOytSqDNigF_WTVUn0VsmXEK1oDGb8I2AWuAmiKYxizKY2JEOHoUz7B1L87fiPg5fNlv3QDrFJhuy1M6A-72jL1-N4tCGhUCQubvZEv90JshAhc6A5W88ghtjS_W80xt63gpvK81vE9b3coutIBnh-yvzEwTvudm3YKTnRrNBxRT01tdiJVEKoJ1poST0BxzxtGAvW_JgASTcOqQcFR6-Rr5smDSOki_mKVqODbRgcAj7CeNOvrwDZqC2XlQkTLvlo6msNvyVQH8vugRzPsbZK7F3pCvOEB5ub2WY6a1ui7lm-mAVyAs1VbzCHEnLu5GiXmyNE-mlNXQlAS1xz5P751rANnwODJJFz0"
}
{
"errors": {
"password": [
"This field is required"
]
}
}

Body

application/json
username
string
required

User's email address.

password
string
required

User's password.

one_time_password
string

User's authenticator passcode in case of enabled 2fa.

Response

OK.

refresh
string
required

Use this token to refresh the access token via [/auth/jwt/refresh](POST /auth/jwt/refresh) method.

Example:

"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYwMTcwNzA5MiwianRpIjoiMGFmOGU3NTMzYWEyNDM0YmI4M2NmMjA1ZWM2NTMwZjQiLCJ1c2VyX2lkIjo1LCJ1c2VyX3R5cGUiOiJjb21tb24iLCJ1c2VyX2dyb3VwcyI6WyJBZG1pbmlzdHJhdG9ycyJdLCJjbGllbnRfaWQiOjIsImVtYWlsIjoidGVzdHVzZXJAZXhhbXBsZS5jb20iLCJ1c2VybmFtZSI6InRlc3R1c2VyQGV4YW1wbGUuY29tIiwic3NvX2VudGl0eSI6bnVsbCwiaXNfYWRtaW4iOmZhbHNlLCJjbGllbnRfbmFtZSI6IlRlc3QgQ29tcGFueSIsImV4Y2hhbmdlYWJsZSI6dHJ1ZX0.C-RuHDWLpu1bd0_SoZgbkqSqA65egSBigKikeEKXkdK-PRVx4ZUIMdkJd-L4ebeydDHgeq3AwXbDBSqPuXZMTKTFKe1HTvpLycTNkTKa-dp9nTq0VwfUlf3G7QajEJA1UiQ7IhSDZJK5NBkEzs_-PFtPOQjeE2u2AbKKJ_SK3hNi1BVU3uVjfWsMVwGDkVnPIa0aLtYDTYd2QKN5InBGh06XITFD_P_IETfwhw7yG4PvLWGejGQO9jJx1ViFYCQi-O8vLR9-mjwaD8Ngc5O8v3mnzRkkxeWoukSW1p8eWiGf7QaLg-zSI6pNFO3_LO-ILHcJ394GJzW2rSpaAgvxwRHDIulDxJtAbqyxykLgnDSHUZbKq8mgQqkeshbmQ-BUT_nkYj1LcQisNTGp4QsDRdi095QQIXLntJiGC59BxpZQ5y3j67AZHG9qiVuHQSlHBaQKBAFdA_d7CRqV7TzsT4p3cHVXF_VccBM06pItkYYY5Xj0bQPU6qWf26bONnYh1FHOlaejw2mGc_FsPpi0soGUh-1v_Qs6C4N086VJ5uYSHw_M3MNcGBjAahnUdrKNX_8gmbTDwYNw7h1ELPYfBAFeQJrdTOOQPfUHzkt9g67DHdxRDHMQxz933Wxmfl_5fiHWoWE82n5ZA110BZB9JQoP7Tqtg4qIZoE1M6Knh14"

access
string
required

Use this token to access API.

Example:

"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjAxNjI0MjkyLCJqdGkiOiI0Mjk1ZjZhMjI4ZTE0MmE3YjA1ZmIxYjE5MjlhZjZlYyIsInVzZXJfaWQiOjUsInVzZXJfdHlwZSI6ImNvbW1vbiIsInVzZXJfZ3JvdXBzIjpbIkFkbWluaXN0cmF0b3JzIl0sImNsaWVudF9pZCI6MiwiZW1haWwiOiJ0ZXN0dXNlckBleGFtcGxlLmNvbSIsInVzZXJuYW1lIjoidGVzdHVzZXJAZXhhbXBsZS5jb20iLCJzc29fZW50aXR5IjpudWxsLCJpc19hZG1pbiI6ZmFsc2UsImNsaWVudF9uYW1lIjoiVGVzdCBDb21wYW55IiwiZXhjaGFuZ2VhYmxlIjp0cnVlLCJyanRpIjoiMGFmOGU3NTMzYWEyNDM0YmI4M2NmMjA1ZWM2NTMwZjQifQ.aJjVE3_mC8fimclIPggD0ynh0EIwO8kCEffhFN4CxbaDBGz4R2Xn2mJQqhsRB2YoDCx_oH3uLii6aM_6OQtc2DbIElfN1KHoQmzzEjxKKXlgTOF_gsq9dVwQ9hajeOsQu5ly1rMk41WW1LrQ6Nkb_v6LC8g57Ah4h2pGot44h87BDsG6uUyMFVV3ZTJjkVNWJxceljFeDPO5rhx-ujtkX5iYwAeVh6HAq3I4Sw7OO5LZHF9pnhNBJVRNu8HlBNyk5UVB7uyStc9vjAnjGJyqc4yWL3QVTz7BMtvXX19W6sypl_YQiYzz5dsOiL4dzsI5RERBVt9DtOytSqDNigF_WTVUn0VsmXEK1oDGb8I2AWuAmiKYxizKY2JEOHoUz7B1L87fiPg5fNlv3QDrFJhuy1M6A-72jL1-N4tCGhUCQubvZEv90JshAhc6A5W88ghtjS_W80xt63gpvK81vE9b3coutIBnh-yvzEwTvudm3YKTnRrNBxRT01tdiJVEKoJ1poST0BxzxtGAvW_JgASTcOqQcFR6-Rr5smDSOki_mKVqODbRgcAj7CeNOvrwDZqC2XlQkTLvlo6msNvyVQH8vugRzPsbZK7F3pCvOEB5ub2WY6a1ui7lm-mAVyAs1VbzCHEnLu5GiXmyNE-mlNXQlAS1xz5P751rANnwODJJFz0"