API usage example in Python

To help you get started with using Feature Upvote’s public REST API, here’s an example in Python you can copy and paste. It will list all of your feedback boards.

Make sure to add your own API key! If you don’t have one yet, create one on the Developer tab of your Account settings. We recommend creating a separate key for each application or script, so you can delete it later without affecting your other integrations.

import json
import urllib.request
import urllib.error

# Base URL for the Feature Upvote API v1
BASE_URL = "https://api.featureupvote.com/api/v1/"

# Replace this value with your actual Feature Upvote API key
API_KEY = "YOUR_API_KEY_HERE"

def get_boards():
    # Construct the API endpoint for listing boards
    endpoint_url = f"{BASE_URL}boards"

    # Configure the request headers with Bearer Authentication
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Accept": "application/json"
    }

    # Build the request object
    req = urllib.request.Request(endpoint_url, headers=headers, method="GET")

    try:
        # Send the request and read the response
        with urllib.request.urlopen(req) as response:
            status_code = response.getcode()
            response_body = response.read().decode('utf-8')

            # Parse raw text into a readable Python dictionary/list
            json_data = json.loads(response_body)

            print(f"HTTP Status Code: {status_code}")
            print("JSON Response:")
            print(json.dumps(json_data, indent=4))

    except urllib.error.HTTPError as e:
        print(f"HTTP Error occurred: {e.code} - {e.reason}")
        print(e.read().decode('utf-8'))
    except urllib.error.URLError as e:
        print(f"URL Error occurred: {e.reason}")

if __name__ == "__main__":
    get_boards()