Show a Contract
curl --request GET \
--url https://public-api.stora.co/2025-09/contracts/{contract_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/contracts/{contract_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/contracts/{contract_id}', 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://public-api.stora.co/2025-09/contracts/{contract_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.stora.co/2025-09/contracts/{contract_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.stora.co/2025-09/contracts/{contract_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/contracts/{contract_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"contract": {
"id": "ctr_a1b2c3d4e5f6g7h8",
"_links": {
"sf:show_contract": {
"href": "/contracts/ctr_a1b2c3d4e5f6g7h8",
"title": "Show contract"
}
},
"contact": {
"id": "con_195h6kfm9ro15lof"
},
"contract_template": {
"id": "ctpl_33ae8d0b2b371ba2"
},
"created_at": "2025-02-22T14:41:00Z",
"name": "Indoor Storage Contract",
"sent_at": "2025-02-18T09:00:00Z",
"signed_at": "2025-02-20T10:00:00Z",
"status": "signed",
"tenancy": {
"id": "ten_ac1499df16ae0dea"
},
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://acme.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Contracts
Show a Contract
Retrieve a specific contract by its ID.
Supports PDF download. Set application/pdf in the Accept request header. Only signed contracts return a PDF.
Required authorization scope: public.contract:read
GET
/
2025-09
/
contracts
/
{contract_id}
Show a Contract
curl --request GET \
--url https://public-api.stora.co/2025-09/contracts/{contract_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/contracts/{contract_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/contracts/{contract_id}', 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://public-api.stora.co/2025-09/contracts/{contract_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.stora.co/2025-09/contracts/{contract_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.stora.co/2025-09/contracts/{contract_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/contracts/{contract_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"contract": {
"id": "ctr_a1b2c3d4e5f6g7h8",
"_links": {
"sf:show_contract": {
"href": "/contracts/ctr_a1b2c3d4e5f6g7h8",
"title": "Show contract"
}
},
"contact": {
"id": "con_195h6kfm9ro15lof"
},
"contract_template": {
"id": "ctpl_33ae8d0b2b371ba2"
},
"created_at": "2025-02-22T14:41:00Z",
"name": "Indoor Storage Contract",
"sent_at": "2025-02-18T09:00:00Z",
"signed_at": "2025-02-20T10:00:00Z",
"status": "signed",
"tenancy": {
"id": "ten_ac1499df16ae0dea"
},
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://acme.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Authorizations
BearerOAuth2
Bearer Token necessary to use API
Path Parameters
The ID of the contract
Query Parameters
This endpoint supports expandable responses. For more, see the documentation page.
Was this page helpful?