Product Hunt user upvotes
curl --request POST \
--url https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user": "kevin",
"max_items": 2
}
'import requests
url = "https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes"
payload = {
"user": "kevin",
"max_items": 2
}
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({user: 'kevin', max_items: 2})
};
fetch('https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes', 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.neuralverge.ai/functions/v1/run-producthunt-users-upvotes",
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([
'user' => 'kevin',
'max_items' => 2
]),
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://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes"
payload := strings.NewReader("{\n \"user\": \"kevin\",\n \"max_items\": 2\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://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user\": \"kevin\",\n \"max_items\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes")
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 \"user\": \"kevin\",\n \"max_items\": 2\n}"
response = http.request(request)
puts response.read_body{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "producthunt_users_upvotes",
"user": "kevin",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Product Hunt — user upvotes\n\n- **User:** kevin\n- **Results:** 2\n- **Proxy traffic:** 17.4 KB",
"machine": {
"total_items": 2,
"first_item": {
"id": "openseo-2",
"name": "OpenSEO",
"url": "https://www.producthunt.com/posts/openseo-2",
"alias": "openseo-2",
"launch_id": "1272262",
"tagline": "The open source Semrush alternative",
"votes_count": 354,
"comments_count": 39,
"daily_rank": 2,
"weekly_rank": 9,
"monthly_rank": 12,
"topics": [],
"image": "https://ph-files.imgix.net/2c78fe4a-262c-48b2-a376-365b77bf6eeb.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openseo",
"product_url": "https://www.producthunt.com/products/openseo",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
},
"items": [
{
"id": "openseo-2",
"name": "OpenSEO",
"url": "https://www.producthunt.com/posts/openseo-2",
"alias": "openseo-2",
"launch_id": "1272262",
"tagline": "The open source Semrush alternative",
"votes_count": 354,
"comments_count": 39,
"daily_rank": 2,
"weekly_rank": 9,
"monthly_rank": 12,
"topics": [],
"image": "https://ph-files.imgix.net/2c78fe4a-262c-48b2-a376-365b77bf6eeb.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openseo",
"product_url": "https://www.producthunt.com/products/openseo",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
},
{
"id": "openswarm-3",
"name": "OpenSwarm",
"url": "https://www.producthunt.com/posts/openswarm-3",
"alias": "openswarm-3",
"launch_id": "1271048",
"tagline": "A swarm of agents, in the same place you work",
"votes_count": 376,
"comments_count": 60,
"daily_rank": 1,
"weekly_rank": 6,
"monthly_rank": 9,
"topics": [],
"image": "https://ph-files.imgix.net/ea2bfd22-7652-444c-b680-8028ef82bdc8.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openswarm-3",
"product_url": "https://www.producthunt.com/products/openswarm-3",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
}
],
"total_found": null,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 17845
},
"total_points": 2
}Startup & Funding Data
Product Hunt user upvotes
Launches a Product Hunt user upvoted, newest first: votes, comments, ranks and dates. The site serves at most the latest 200 upvotes of a user. 1 point per returned record.
POST
/
functions
/
v1
/
run-producthunt-users-upvotes
Product Hunt user upvotes
curl --request POST \
--url https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user": "kevin",
"max_items": 2
}
'import requests
url = "https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes"
payload = {
"user": "kevin",
"max_items": 2
}
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({user: 'kevin', max_items: 2})
};
fetch('https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes', 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.neuralverge.ai/functions/v1/run-producthunt-users-upvotes",
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([
'user' => 'kevin',
'max_items' => 2
]),
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://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes"
payload := strings.NewReader("{\n \"user\": \"kevin\",\n \"max_items\": 2\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://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user\": \"kevin\",\n \"max_items\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neuralverge.ai/functions/v1/run-producthunt-users-upvotes")
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 \"user\": \"kevin\",\n \"max_items\": 2\n}"
response = http.request(request)
puts response.read_body{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "producthunt_users_upvotes",
"user": "kevin",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Product Hunt — user upvotes\n\n- **User:** kevin\n- **Results:** 2\n- **Proxy traffic:** 17.4 KB",
"machine": {
"total_items": 2,
"first_item": {
"id": "openseo-2",
"name": "OpenSEO",
"url": "https://www.producthunt.com/posts/openseo-2",
"alias": "openseo-2",
"launch_id": "1272262",
"tagline": "The open source Semrush alternative",
"votes_count": 354,
"comments_count": 39,
"daily_rank": 2,
"weekly_rank": 9,
"monthly_rank": 12,
"topics": [],
"image": "https://ph-files.imgix.net/2c78fe4a-262c-48b2-a376-365b77bf6eeb.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openseo",
"product_url": "https://www.producthunt.com/products/openseo",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
},
"items": [
{
"id": "openseo-2",
"name": "OpenSEO",
"url": "https://www.producthunt.com/posts/openseo-2",
"alias": "openseo-2",
"launch_id": "1272262",
"tagline": "The open source Semrush alternative",
"votes_count": 354,
"comments_count": 39,
"daily_rank": 2,
"weekly_rank": 9,
"monthly_rank": 12,
"topics": [],
"image": "https://ph-files.imgix.net/2c78fe4a-262c-48b2-a376-365b77bf6eeb.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openseo",
"product_url": "https://www.producthunt.com/products/openseo",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
},
{
"id": "openswarm-3",
"name": "OpenSwarm",
"url": "https://www.producthunt.com/posts/openswarm-3",
"alias": "openswarm-3",
"launch_id": "1271048",
"tagline": "A swarm of agents, in the same place you work",
"votes_count": 376,
"comments_count": 60,
"daily_rank": 1,
"weekly_rank": 6,
"monthly_rank": 9,
"topics": [],
"image": "https://ph-files.imgix.net/ea2bfd22-7652-444c-b680-8028ef82bdc8.png?auto=format&fit=crop&w=128&h=128",
"product_slug": "openswarm-3",
"product_url": "https://www.producthunt.com/products/openswarm-3",
"featured_at": "2026-10-08T00:01:00-07:00",
"created_at": "2026-10-08T00:01:00-07:00"
}
],
"total_found": null,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 17845
},
"total_points": 2
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Response
Run completed.
Session identifier for this run.
Data source identifier for this endpoint.
True when the scrape stopped early and returned the records collected so far.
Markdown summary of the result, for display.
Structured result payload.
Show child attributes
Show child attributes
Points charged for this run.