Features Pricing API Docs Sign In Get Started

API Documentation

The Pathwayful API is easy to use and free for all plans.

Vote on Issue

Vote on a public issue. Uses a fingerprint hash to prevent duplicate votes. No authentication required.

POST https://api.pathwayful.com/roadmaps/:slug/issues/:issue_id/votes

Headers

  • Content-TypeREQUIRED STRING
    application/json

Request body

{
  "fingerprint_hash": "device-fingerprint-hash"
}

Response body

{
  "success": true,
  "vote_count": 6
}

Code Examples

curl -X POST "https://api.pathwayful.com/roadmaps/product-roadmap/issues/your-issue-id/votes" \
  -H "Content-Type: application/json" \
  -d '{
    "fingerprint_hash": "device-fingerprint-hash"
  }'
// Vote on a public issue (no auth required)
const slug = 'product-roadmap';
const issueId = 'your-issue-id';
const response = await fetch(`https://api.pathwayful.com/roadmaps/${slug}/issues/${issueId}/votes`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    fingerprint_hash: 'device-fingerprint-hash'
  })
});

const result = await response.json();
console.log('Vote count:', result.vote_count);
# Vote on a public issue (no auth required)
import requests

slug = 'product-roadmap'
issue_id = 'your-issue-id'

data = {
    'fingerprint_hash': 'device-fingerprint-hash'
}

response = requests.post(
    f'https://api.pathwayful.com/roadmaps/{slug}/issues/{issue_id}/votes',
    json=data
)

result = response.json()
print(f"Vote count: {result['vote_count']}")
// Vote on a public issue (no auth required)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    slug := "product-roadmap"
    issueID := "your-issue-id"
    data := map[string]string{
        "fingerprint_hash": "device-fingerprint-hash",
    }
    jsonData, _ := json.Marshal(data)

    url := "https://api.pathwayful.com/roadmaps/" + slug + "/issues/" + issueID + "/votes"
    resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Printf("Vote count: %v\n", result["vote_count"])
}
# Vote on a public issue (no auth required)
require 'net/http'
require 'json'
require 'uri'

slug = 'product-roadmap'
issue_id = 'your-issue-id'
uri = URI("https://api.pathwayful.com/roadmaps/#{slug}/issues/#{issue_id}/votes")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = {
  fingerprint_hash: 'device-fingerprint-hash'
}.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts "Vote count: #{result['vote_count']}"
<?php
// Vote on a public issue (no auth required)
$slug = 'product-roadmap';
$issueId = 'your-issue-id';
$data = [
    'fingerprint_hash' => 'device-fingerprint-hash'
];

$ch = curl_init("https://api.pathwayful.com/roadmaps/{$slug}/issues/{$issueId}/votes");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo "Vote count: " . $result['vote_count'];