Create Promote Clickout Link
Create a clickout link that signs the user in and drops them on the promote page of a single job, ready to book reach for it.
The job is looked up by its external_job_id within the company. Kini refreshes the job from the ATS first, and creates the job if it does not exist yet, so the link also works for a job your system has only just published.
curl -X POST "https://api.getkini.com/clickout/promote/" \
-H "Content-Type: application/json" \
-H "Company-Id: 1" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"email": "jane.doe@example.com",
"external_job_id": "EXT-123456",
"product_type": "campaign"
}'
import requests
import json
url = "https://api.getkini.com/clickout/promote/"
headers = {
"Content-Type": "application/json",
"Company-Id": "1",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"email": "jane.doe@example.com",
"external_job_id": "EXT-123456",
"product_type": "campaign"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.getkini.com/clickout/promote/", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Company-Id": "1",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"email": "jane.doe@example.com",
"external_job_id": "EXT-123456",
"product_type": "campaign"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"email": "jane.doe@example.com",
"external_job_id": "EXT-123456",
"product_type": "campaign"
}`)
req, err := http.NewRequest("POST", "https://api.getkini.com/clickout/promote/", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Company-Id", "1")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.getkini.com/clickout/promote/')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Company-Id'] = '1'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"email": "jane.doe@example.com",
"external_job_id": "EXT-123456",
"product_type": "campaign"
}'
response = http.request(request)
puts response.body
{
"data": "https://app.getkini.com/companies/1/jobs/123456/promote?tab=campaign"
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Error",
"message": "Refreshing the job from the ATS timed out",
"code": 408
}
{
"error": "Conflict",
"message": "The request conflicts with the current state of the resource",
"code": 409,
"details": "Resource already exists"
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
{
"error": "Error",
"message": "Refreshing the job from the ATS failed",
"code": 502
}
/clickout/promote/
Target server for requests. Edit to use your own host.
Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.
Authorization: Bearer <your_api_key>.The media type of the request body
Kini ID of the company the key is associated with
Email address of the user the link is issued for. A shop user is created and added to the company on first use.
The job's ID in your system. Must be unique within the company.
Preselect a tab on the promote page. Enum: single (single job bookings), campaign (campaigns).
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer \<your_api_key\>.
Headers
Body
Email address of the user the link is issued for. A shop user is created and added to the company on first use.
jane.doe@example.comThe job's ID in your system. Must be unique within the company.
EXT-123456Preselect a tab on the promote page. Enum: single (single job bookings), campaign (campaigns).
singlecampaignResponses
Clickout URL. Signs the user in and lands them on the target page. Valid for one hour.