Get conversation analysis PDF
curl --request GET \
--url https://api.instaview.sk/conversations/{id}/analysis-pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/conversations/{id}/analysis-pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/conversations/{id}/analysis-pdf', 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.instaview.sk/conversations/{id}/analysis-pdf",
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://api.instaview.sk/conversations/{id}/analysis-pdf"
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://api.instaview.sk/conversations/{id}/analysis-pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}/analysis-pdf")
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{
"analysisPdfBase64": "JVBERi0xLjQKMSAwIG9iai..."
}Conversations
Get Conversation Analysis PDF
Returns the Base64-encoded PDF report of a conversation’s analysis. The conversation must have a completed analysis for the PDF to be available.
GET
/
conversations
/
{id}
/
analysis-pdf
Get conversation analysis PDF
curl --request GET \
--url https://api.instaview.sk/conversations/{id}/analysis-pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/conversations/{id}/analysis-pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/conversations/{id}/analysis-pdf', 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.instaview.sk/conversations/{id}/analysis-pdf",
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://api.instaview.sk/conversations/{id}/analysis-pdf"
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://api.instaview.sk/conversations/{id}/analysis-pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}/analysis-pdf")
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{
"analysisPdfBase64": "JVBERi0xLjQKMSAwIG9iai..."
}GET /interviews/{id}/analysis-pdf is a permanent alias of this endpoint and keeps working unchanged, with the same scopes and the same response. See Resource names.Overview
The PDF comes back as a Base64-encoded string. It is kept off the conversation resource itself so thatGET /conversations/:id stays lightweight — fetch it here when you need the formatted report to download, forward or archive.
Use Cases
- Download the report: the formatted analysis of one conversation
- Forward it: email or share it with whoever needs to read it
- Archival: store it alongside your own records
Prerequisites
The conversation must have a completed analysis for a PDF to exist. While one is still in progress, or if it has no analysis, this endpoint returns404.
Response
{
"analysisPdfBase64": "JVBERi0xLjQKMSAwIG9iai..."
}
analysisPdfBase64 field contains the full PDF document encoded as a Base64 string. To reconstruct the PDF file, decode the Base64 string into binary data.
Example Usage
async function downloadAnalysisPdf(conversationId) {
const response = await fetch(
`https://api.instaview.sk/conversations/${conversationId}/analysis-pdf`,
{ headers: { Authorization: `Bearer ${apiKey}` } },
);
const data = await response.json();
// Decode Base64 to binary
const binaryString = atob(data.analysisPdfBase64);
const bytes = new Uint8Array(binaryString.length);
for (let i = 0; i < binaryString.length; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
// Create downloadable file
const blob = new Blob([bytes], { type: "application/pdf" });
const url = URL.createObjectURL(blob);
// Use `url` to trigger download or embed in an iframe
}
Error Scenarios
- 404 Not Found: the conversation does not exist, has been deleted, or has no analysis yet
- 403 Forbidden: the conversation belongs to a different company
The analysis PDF is also included in the
analysis.completed webhook
payload as the analysisPdfBase64
field, so you may not need this endpoint if you are already consuming
webhooks.Related Resources
Get Conversation
Read the whole conversation, analysis included
Webhooks Guide
Receive analysis PDF automatically via webhooks
Authorizations
API key for authentication using Bearer scheme
Path Parameters
Query Parameters
Required for ATS API keys to specify which company to access. Ignored for standard company API keys.
Response
200 - application/json
Base64-encoded PDF report of the conversation's analysis
Example:
"JVBERi0xLjQKMSAwIG9iai..."