Analyze pitch deck with AI
curl --request POST \
--url https://www.useroulette.com/api/v1/companies/{id}/analyze \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"extraData": "<string>"
}
'import requests
url = "https://www.useroulette.com/api/v1/companies/{id}/analyze"
payload = { "extraData": "<string>" }
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({extraData: '<string>'})
};
fetch('https://www.useroulette.com/api/v1/companies/{id}/analyze', 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://www.useroulette.com/api/v1/companies/{id}/analyze",
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([
'extraData' => '<string>'
]),
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://www.useroulette.com/api/v1/companies/{id}/analyze"
payload := strings.NewReader("{\n \"extraData\": \"<string>\"\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://www.useroulette.com/api/v1/companies/{id}/analyze")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"extraData\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useroulette.com/api/v1/companies/{id}/analyze")
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 \"extraData\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"company_name": "Acme Technologies",
"ai_analysis": "B2B SaaS platform providing enterprise workflow automation with AI-powered document processing.",
"founders": [
{
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "+1-555-123-4567",
"title": "CEO/Co-Founder",
"background": "Former engineer at Google, 10 years in enterprise software",
"linkedin_profile": "https://www.linkedin.com/in/example/"
}
],
"user_preferences": [
{
"type": "select",
"field": "Industry",
"value": "AI/ML",
"options": [
"SaaS",
"Fintech",
"AI/ML",
"Developer Tools"
],
"show_in_table": true
}
]
}
}{
"success": false,
"error": "Invalid or expired API key",
"data": null
}{
"success": false,
"error": "Resource not found",
"data": null
}{
"success": false,
"error": "Internal server error",
"data": null
}Companies
Analyze pitch deck with AI
Use AI to analyze the company’s pitch deck and extract structured data including company information, founder details, and key insights.
The analysis populates:
metadata.founders- Team member informationmetadata.ai_analysis- Brief company descriptionmetadata.analyzed_at- When analysis was performedmetadata.user_preferences- Extracted custom field values
Note: This operation consumes AI credits.
POST
/
companies
/
{id}
/
analyze
Analyze pitch deck with AI
curl --request POST \
--url https://www.useroulette.com/api/v1/companies/{id}/analyze \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"extraData": "<string>"
}
'import requests
url = "https://www.useroulette.com/api/v1/companies/{id}/analyze"
payload = { "extraData": "<string>" }
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({extraData: '<string>'})
};
fetch('https://www.useroulette.com/api/v1/companies/{id}/analyze', 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://www.useroulette.com/api/v1/companies/{id}/analyze",
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([
'extraData' => '<string>'
]),
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://www.useroulette.com/api/v1/companies/{id}/analyze"
payload := strings.NewReader("{\n \"extraData\": \"<string>\"\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://www.useroulette.com/api/v1/companies/{id}/analyze")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"extraData\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useroulette.com/api/v1/companies/{id}/analyze")
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 \"extraData\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"company_name": "Acme Technologies",
"ai_analysis": "B2B SaaS platform providing enterprise workflow automation with AI-powered document processing.",
"founders": [
{
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "+1-555-123-4567",
"title": "CEO/Co-Founder",
"background": "Former engineer at Google, 10 years in enterprise software",
"linkedin_profile": "https://www.linkedin.com/in/example/"
}
],
"user_preferences": [
{
"type": "select",
"field": "Industry",
"value": "AI/ML",
"options": [
"SaaS",
"Fintech",
"AI/ML",
"Developer Tools"
],
"show_in_table": true
}
]
}
}{
"success": false,
"error": "Invalid or expired API key",
"data": null
}{
"success": false,
"error": "Resource not found",
"data": null
}{
"success": false,
"error": "Internal server error",
"data": null
}Authorizations
API key authentication. Generate keys from your account settings.
Include in header: Authorization: Bearer YOUR_API_KEY
Path Parameters
The unique identifier of the company
Body
application/json
Additional text context to include in the analysis. Can contain supplementary information like email threads, meeting notes, or other relevant content that helps the AI better understand the company.
Maximum string length:
40000⌘I

