Zeal Components
Generate Reports Link
Generate a link that automatically signs in an employer and redirects them to their Zeal Reports Dashboard, where they can view all reports. This link can only be generated in production and expires exactly 7 days after generation.
POST
/
authLinks
/
reports
Generate Reports Link
curl --request POST \
--url https://api.zeal.com/authLinks/reports \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "fc2ccf012b2342cc342ca082f357715bcfa",
"partnerID": "c133eed233c9b8419ba4452cc059bd445a"
}
'import requests
url = "https://api.zeal.com/authLinks/reports"
payload = {
"companyID": "fc2ccf012b2342cc342ca082f357715bcfa",
"partnerID": "c133eed233c9b8419ba4452cc059bd445a"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyID: 'fc2ccf012b2342cc342ca082f357715bcfa',
partnerID: 'c133eed233c9b8419ba4452cc059bd445a'
})
};
fetch('https://api.zeal.com/authLinks/reports', 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.zeal.com/authLinks/reports",
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([
'companyID' => 'fc2ccf012b2342cc342ca082f357715bcfa',
'partnerID' => 'c133eed233c9b8419ba4452cc059bd445a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.zeal.com/authLinks/reports"
payload := strings.NewReader("{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.zeal.com/authLinks/reports")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/authLinks/reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"url": "https://payroll.yourdomain.com/token-auth?redirectUrl=%2Freports&routeFilter=%2Freports&token=<accessToken>"
}{
"success": false,
"errors": [
{
"success": false,
"message": "No user with this company ID exists.",
"code": 4
}
]
}Authorizations
Body
application/json
⌘I
Generate Reports Link
curl --request POST \
--url https://api.zeal.com/authLinks/reports \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "fc2ccf012b2342cc342ca082f357715bcfa",
"partnerID": "c133eed233c9b8419ba4452cc059bd445a"
}
'import requests
url = "https://api.zeal.com/authLinks/reports"
payload = {
"companyID": "fc2ccf012b2342cc342ca082f357715bcfa",
"partnerID": "c133eed233c9b8419ba4452cc059bd445a"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyID: 'fc2ccf012b2342cc342ca082f357715bcfa',
partnerID: 'c133eed233c9b8419ba4452cc059bd445a'
})
};
fetch('https://api.zeal.com/authLinks/reports', 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.zeal.com/authLinks/reports",
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([
'companyID' => 'fc2ccf012b2342cc342ca082f357715bcfa',
'partnerID' => 'c133eed233c9b8419ba4452cc059bd445a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.zeal.com/authLinks/reports"
payload := strings.NewReader("{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.zeal.com/authLinks/reports")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/authLinks/reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"fc2ccf012b2342cc342ca082f357715bcfa\",\n \"partnerID\": \"c133eed233c9b8419ba4452cc059bd445a\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"url": "https://payroll.yourdomain.com/token-auth?redirectUrl=%2Freports&routeFilter=%2Freports&token=<accessToken>"
}{
"success": false,
"errors": [
{
"success": false,
"message": "No user with this company ID exists.",
"code": 4
}
]
}