curl --request GET \
--url https://api.zenskar.com/contract_v2 \
--header 'organisation: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.zenskar.com/contract_v2"
headers = {
"x-api-key": "<api-key>",
"organisation": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', organisation: '<api-key>'}};
fetch('https://api.zenskar.com/contract_v2', 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.zenskar.com/contract_v2",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"organisation: <api-key>",
"x-api-key: <api-key>"
],
]);
$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://api.zenskar.com/contract_v2"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("organisation", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zenskar.com/contract_v2")
.header("x-api-key", "<api-key>")
.header("organisation", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zenskar.com/contract_v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["organisation"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "draft",
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "<string>",
"customer_name": "<string>",
"custom_data": {},
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"ship_to_address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"tax_info": [],
"email": "<string>",
"custom_attributes": {},
"phone_number": "<string>",
"communications_enabled": true,
"auto_charge_enabled": true,
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"description": "<string>",
"tags": [
"<unknown>"
],
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"custom_attributes": {},
"source": {},
"anchor_date": "2023-11-07T05:31:56Z",
"is_last_day_of_month": true,
"plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"renewal_policy": "do_not_renew",
"phases": [],
"invoice_payer_customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "<string>",
"customer_name": "<string>",
"custom_data": {},
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"ship_to_address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"tax_info": [],
"email": "<string>",
"custom_attributes": {},
"phone_number": "<string>",
"communications_enabled": true,
"auto_charge_enabled": true,
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"current_phase": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"phase_type": "active",
"phase_metadata": {}
},
"contract_link": "<string>",
"bill_parent_customer": false,
"invoice_payer_customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"next": "V2VsbCBhcmV1IGN1cmlvdxM=",
"previous": "GmBsbCBhcmV1IGN1cmlvdxM=",
"total_count": 123
}{
"detail": "Invalid date format in filter"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "An unexpected error occurred"
}List contracts
Retrieve a paginated list of contracts for your organization.
Returns contracts with comprehensive details including customer information, phases, products, and pricing. Supports filtering by customer, status, dates, and custom attributes. Results are sorted by creation date (newest first) by default.
Use cursor-based pagination to navigate through results. If no cursor is provided, returns the first page of results.
curl --request GET \
--url https://api.zenskar.com/contract_v2 \
--header 'organisation: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.zenskar.com/contract_v2"
headers = {
"x-api-key": "<api-key>",
"organisation": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', organisation: '<api-key>'}};
fetch('https://api.zenskar.com/contract_v2', 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.zenskar.com/contract_v2",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"organisation: <api-key>",
"x-api-key: <api-key>"
],
]);
$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://api.zenskar.com/contract_v2"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("organisation", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zenskar.com/contract_v2")
.header("x-api-key", "<api-key>")
.header("organisation", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zenskar.com/contract_v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["organisation"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "draft",
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "<string>",
"customer_name": "<string>",
"custom_data": {},
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"ship_to_address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"tax_info": [],
"email": "<string>",
"custom_attributes": {},
"phone_number": "<string>",
"communications_enabled": true,
"auto_charge_enabled": true,
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"description": "<string>",
"tags": [
"<unknown>"
],
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"custom_attributes": {},
"source": {},
"anchor_date": "2023-11-07T05:31:56Z",
"is_last_day_of_month": true,
"plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"renewal_policy": "do_not_renew",
"phases": [],
"invoice_payer_customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "<string>",
"customer_name": "<string>",
"custom_data": {},
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"ship_to_address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"country_code": "<string>",
"validation_status": "<string>",
"connector_validation": {}
},
"tax_info": [],
"email": "<string>",
"custom_attributes": {},
"phone_number": "<string>",
"communications_enabled": true,
"auto_charge_enabled": true,
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"current_phase": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"phase_type": "active",
"phase_metadata": {}
},
"contract_link": "<string>",
"bill_parent_customer": false,
"invoice_payer_customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"next": "V2VsbCBhcmV1IGN1cmlvdxM=",
"previous": "GmBsbCBhcmV1IGN1cmlvdxM=",
"total_count": 123
}{
"detail": "Invalid date format in filter"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "An unexpected error occurred"
}Authorizations
Query Parameters
The cursor indicating a unique set of results - this should be auto generated and you get it from the next and previous fields of the response
"V2VsbCBhcmV1IGN1cmlvdxM="
The number of results to return - defaults to 10
10
"order=created_at"
draft, active, paused, expired, disputed Classifies how a contract is billed. STANDARD is the default; EVENT_BASED contracts are driven by usage events and require P1D cadence + postpaid.
standard, event_based Response
Contracts retrieved successfully with pagination cursors
The results for the current page
Show child attributes
Show child attributes
The cursor for the next page of results
"V2VsbCBhcmV1IGN1cmlvdxM="
The cursor for the previous page of results
"GmBsbCBhcmV1IGN1cmlvdxM="
The total count of rows