Buy a domain
curl --request POST \
--url https://platform.jobbit.uk/v1/domains/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "kentphysio.co.uk",
"auto_renew": true,
"currency": "GBP",
"registrant": {
"first_name": "Alex",
"last_name": "Example",
"email": "alex@example.co.uk",
"street": "1 Sample Street",
"zipcode": "ME14 1XX",
"city": "Maidstone",
"state": "Kent",
"country": "GB",
"phone_country_code": "44",
"phone_area_code": "1632",
"phone_subscriber_number": "960123",
"uk_legal_type": "IND"
}
}
'import requests
url = "https://platform.jobbit.uk/v1/domains/checkout"
payload = {
"domain": "kentphysio.co.uk",
"auto_renew": True,
"currency": "GBP",
"registrant": {
"first_name": "Alex",
"last_name": "Example",
"email": "alex@example.co.uk",
"street": "1 Sample Street",
"zipcode": "ME14 1XX",
"city": "Maidstone",
"state": "Kent",
"country": "GB",
"phone_country_code": "44",
"phone_area_code": "1632",
"phone_subscriber_number": "960123",
"uk_legal_type": "IND"
}
}
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({
domain: 'kentphysio.co.uk',
auto_renew: true,
currency: 'GBP',
registrant: {
first_name: 'Alex',
last_name: 'Example',
email: 'alex@example.co.uk',
street: '1 Sample Street',
zipcode: 'ME14 1XX',
city: 'Maidstone',
state: 'Kent',
country: 'GB',
phone_country_code: '44',
phone_area_code: '1632',
phone_subscriber_number: '960123',
uk_legal_type: 'IND'
}
})
};
fetch('https://platform.jobbit.uk/v1/domains/checkout', 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://platform.jobbit.uk/v1/domains/checkout",
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([
'domain' => 'kentphysio.co.uk',
'auto_renew' => true,
'currency' => 'GBP',
'registrant' => [
'first_name' => 'Alex',
'last_name' => 'Example',
'email' => 'alex@example.co.uk',
'street' => '1 Sample Street',
'zipcode' => 'ME14 1XX',
'city' => 'Maidstone',
'state' => 'Kent',
'country' => 'GB',
'phone_country_code' => '44',
'phone_area_code' => '1632',
'phone_subscriber_number' => '960123',
'uk_legal_type' => 'IND'
]
]),
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://platform.jobbit.uk/v1/domains/checkout"
payload := strings.NewReader("{\n \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\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://platform.jobbit.uk/v1/domains/checkout")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.jobbit.uk/v1/domains/checkout")
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 \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "https://checkout.stripe.com/c/pay/cs_live_d0m41nB1",
"session_id": "cs_live_d0m41nB1",
"domain": "kentphysio.co.uk",
"domain_registration_id": "a8e41d07-3c52-4b90-86f1-d27b05c9e413",
"price": {
"amount": "8.99",
"currency": "GBP"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid registrant contact",
"details": {
"email": [
"Enter a valid email address."
]
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_key",
"message": "the API key is missing or invalid",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "insufficient_scope",
"message": "this key does not have the deploy:write permission",
"details": {
"required": "deploy:write"
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "conflict",
"message": "Domain is not available",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_request",
"message": "the request is not valid",
"details": [
{
"location": [
"body",
"name"
],
"message": "String should match pattern '^[a-z0-9][a-z0-9-]*$'",
"type": "string_pattern_mismatch"
}
],
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "rate_limited",
"message": "too many read requests, retry in 4 s",
"details": {
"group": "read",
"limit": 120,
"window_seconds": 60
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}Buy a domain
Creates a payment link for one year of a domain, with the registrant’s contact details. The domain is registered once the person has paid; until then it shows as PENDING_PAYMENT. Only one-year periods are sold.
Requires the domains:write and billing:write permissions.
POST
/
v1
/
domains
/
checkout
Buy a domain
curl --request POST \
--url https://platform.jobbit.uk/v1/domains/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "kentphysio.co.uk",
"auto_renew": true,
"currency": "GBP",
"registrant": {
"first_name": "Alex",
"last_name": "Example",
"email": "alex@example.co.uk",
"street": "1 Sample Street",
"zipcode": "ME14 1XX",
"city": "Maidstone",
"state": "Kent",
"country": "GB",
"phone_country_code": "44",
"phone_area_code": "1632",
"phone_subscriber_number": "960123",
"uk_legal_type": "IND"
}
}
'import requests
url = "https://platform.jobbit.uk/v1/domains/checkout"
payload = {
"domain": "kentphysio.co.uk",
"auto_renew": True,
"currency": "GBP",
"registrant": {
"first_name": "Alex",
"last_name": "Example",
"email": "alex@example.co.uk",
"street": "1 Sample Street",
"zipcode": "ME14 1XX",
"city": "Maidstone",
"state": "Kent",
"country": "GB",
"phone_country_code": "44",
"phone_area_code": "1632",
"phone_subscriber_number": "960123",
"uk_legal_type": "IND"
}
}
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({
domain: 'kentphysio.co.uk',
auto_renew: true,
currency: 'GBP',
registrant: {
first_name: 'Alex',
last_name: 'Example',
email: 'alex@example.co.uk',
street: '1 Sample Street',
zipcode: 'ME14 1XX',
city: 'Maidstone',
state: 'Kent',
country: 'GB',
phone_country_code: '44',
phone_area_code: '1632',
phone_subscriber_number: '960123',
uk_legal_type: 'IND'
}
})
};
fetch('https://platform.jobbit.uk/v1/domains/checkout', 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://platform.jobbit.uk/v1/domains/checkout",
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([
'domain' => 'kentphysio.co.uk',
'auto_renew' => true,
'currency' => 'GBP',
'registrant' => [
'first_name' => 'Alex',
'last_name' => 'Example',
'email' => 'alex@example.co.uk',
'street' => '1 Sample Street',
'zipcode' => 'ME14 1XX',
'city' => 'Maidstone',
'state' => 'Kent',
'country' => 'GB',
'phone_country_code' => '44',
'phone_area_code' => '1632',
'phone_subscriber_number' => '960123',
'uk_legal_type' => 'IND'
]
]),
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://platform.jobbit.uk/v1/domains/checkout"
payload := strings.NewReader("{\n \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\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://platform.jobbit.uk/v1/domains/checkout")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.jobbit.uk/v1/domains/checkout")
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 \"domain\": \"kentphysio.co.uk\",\n \"auto_renew\": true,\n \"currency\": \"GBP\",\n \"registrant\": {\n \"first_name\": \"Alex\",\n \"last_name\": \"Example\",\n \"email\": \"alex@example.co.uk\",\n \"street\": \"1 Sample Street\",\n \"zipcode\": \"ME14 1XX\",\n \"city\": \"Maidstone\",\n \"state\": \"Kent\",\n \"country\": \"GB\",\n \"phone_country_code\": \"44\",\n \"phone_area_code\": \"1632\",\n \"phone_subscriber_number\": \"960123\",\n \"uk_legal_type\": \"IND\"\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "https://checkout.stripe.com/c/pay/cs_live_d0m41nB1",
"session_id": "cs_live_d0m41nB1",
"domain": "kentphysio.co.uk",
"domain_registration_id": "a8e41d07-3c52-4b90-86f1-d27b05c9e413",
"price": {
"amount": "8.99",
"currency": "GBP"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid registrant contact",
"details": {
"email": [
"Enter a valid email address."
]
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_key",
"message": "the API key is missing or invalid",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "insufficient_scope",
"message": "this key does not have the deploy:write permission",
"details": {
"required": "deploy:write"
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "conflict",
"message": "Domain is not available",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_request",
"message": "the request is not valid",
"details": [
{
"location": [
"body",
"name"
],
"message": "String should match pattern '^[a-z0-9][a-z0-9-]*$'",
"type": "string_pattern_mismatch"
}
],
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "rate_limited",
"message": "too many read requests, retry in 4 s",
"details": {
"group": "read",
"limit": 120,
"window_seconds": 60
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}Authorizations
An API key from Settings → API keys, sent as Authorization: Bearer jb_live_…
Body
application/json
The domain to buy.
Required string length:
3 - 253The registrant's contact details, as the registrar needs them.
Show child attributes
Show child attributes
Whether the domain should renew on its own.
A three-letter currency code for the price.
Required string length:
3Response
The payment link.
The payment page. Hand it to the person; they open it and pay.
The Stripe checkout session id.
The domain.
The id the domain will have in GET /v1/domains. Null for a renewal.
Show child attributes
Show child attributes
⌘I