curl --request POST \
--url https://api.skortorent.com/api/v1/applications/create-application \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Carrer de Mallorca 123 application",
"tenants": [
{
"email": "lead@example.com",
"is_lead": true
},
{
"email": "cotenant@example.com",
"is_lead": false
}
]
}
'import requests
url = "https://api.skortorent.com/api/v1/applications/create-application"
payload = {
"title": "Carrer de Mallorca 123 application",
"tenants": [
{
"email": "lead@example.com",
"is_lead": True
},
{
"email": "cotenant@example.com",
"is_lead": False
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Carrer de Mallorca 123 application',
tenants: [
{email: 'lead@example.com', is_lead: true},
{email: 'cotenant@example.com', is_lead: false}
]
})
};
fetch('https://api.skortorent.com/api/v1/applications/create-application', 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.skortorent.com/api/v1/applications/create-application",
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([
'title' => 'Carrer de Mallorca 123 application',
'tenants' => [
[
'email' => 'lead@example.com',
'is_lead' => true
],
[
'email' => 'cotenant@example.com',
'is_lead' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.skortorent.com/api/v1/applications/create-application"
payload := strings.NewReader("{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.skortorent.com/api/v1/applications/create-application")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.skortorent.com/api/v1/applications/create-application")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Application already exists for these tenants",
"data": {
"application_id": "<string>",
"title": "<string>"
}
}{
"status": "success",
"message": "<string>",
"data": {
"application_id": "<string>",
"title": "<string>"
}
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}Create Application
Creates an application from tenant email addresses. The property is linked later when generating a tenant onboarding token.
Exactly one entry must have is_lead: true. No tenant lookup or creation
is performed. An application supports up to five tenants in total.
Every participant starts with consent_status: pending,
while the lead is identified by is_lead: true. Non-lead emails receive
an application-invite email. This endpoint does not generate onboarding
tokens; each participant remains pending until their profile is completed.
If this API key already has an application containing the exact same set
of active tenant emails, the existing application is returned and no
invitation emails are sent again.
curl --request POST \
--url https://api.skortorent.com/api/v1/applications/create-application \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Carrer de Mallorca 123 application",
"tenants": [
{
"email": "lead@example.com",
"is_lead": true
},
{
"email": "cotenant@example.com",
"is_lead": false
}
]
}
'import requests
url = "https://api.skortorent.com/api/v1/applications/create-application"
payload = {
"title": "Carrer de Mallorca 123 application",
"tenants": [
{
"email": "lead@example.com",
"is_lead": True
},
{
"email": "cotenant@example.com",
"is_lead": False
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Carrer de Mallorca 123 application',
tenants: [
{email: 'lead@example.com', is_lead: true},
{email: 'cotenant@example.com', is_lead: false}
]
})
};
fetch('https://api.skortorent.com/api/v1/applications/create-application', 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.skortorent.com/api/v1/applications/create-application",
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([
'title' => 'Carrer de Mallorca 123 application',
'tenants' => [
[
'email' => 'lead@example.com',
'is_lead' => true
],
[
'email' => 'cotenant@example.com',
'is_lead' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.skortorent.com/api/v1/applications/create-application"
payload := strings.NewReader("{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.skortorent.com/api/v1/applications/create-application")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.skortorent.com/api/v1/applications/create-application")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Carrer de Mallorca 123 application\",\n \"tenants\": [\n {\n \"email\": \"lead@example.com\",\n \"is_lead\": true\n },\n {\n \"email\": \"cotenant@example.com\",\n \"is_lead\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Application already exists for these tenants",
"data": {
"application_id": "<string>",
"title": "<string>"
}
}{
"status": "success",
"message": "<string>",
"data": {
"application_id": "<string>",
"title": "<string>"
}
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}Authorizations
HTTP Bearer Authentication. Generate a shared token via
/authenticate/token, then pass it as Authorization: Bearer <token>.
Body
255"Carrer de Mallorca 123 application"
Unique tenant emails. They do not need to belong to an existing tenant account.
1 - 5 elementsShow child attributes
Show child attributes
[
{
"email": "lead@example.com",
"is_lead": true
},
{
"email": "cotenant@example.com",
"is_lead": false
}
]