Skip to main content
    QHSEtech
    Updated
    Developer

    QHSEtech Public API

    Programmatic access to the QHSE & ESG software directory. Free, JSON over HTTPS, Bearer-token authentication.

    API changelog

    Base URL

    https://nypdfolwwyubfqqljmxj.functions.supabase.co/public-api

    All requests require an Authorization: Bearer YOUR_API_KEY header. Generate a key below.

    Get an API key

    View your keys

    For security, listing or revoking keys requires a 6-digit code we email to your address. Codes expire in 15 minutes.

    Try it live in the API Explorer

    OpenAPI 3.1 spec & Postman

    Import /api-docs/openapi.json into Swagger UI / OpenAPI Generator, or run the pre-configured collection in Postman.

    Endpoints

    GET /v1/software

    List all software products. Supports ?category=, ?q= (name search, max 100 characters), ?limit= (max 100), ?offset=.

    curl https://nypdfolwwyubfqqljmxj.functions.supabase.co/public-api/v1/software?limit=5 \
      -H "Authorization: Bearer YOUR_API_KEY"

    Response shape:

    {
      "data": [
        {
          "id": "example-product",
          "name": "Example Product",
          "tagline": "...",
          "category": "QHSE Platform",
          "rating": null,
          "review_count": 0,
          "website": "https://...",
          ...
        }
      ],
      "pagination": { "limit": 25, "offset": 0, "total": 142 }
    }

    GET /v1/software/:id

    Fetch a single product by its slug ID with the full record (pros, cons, features, certifications, pricing details).

    curl https://nypdfolwwyubfqqljmxj.functions.supabase.co/public-api/v1/software/tekmon \
      -H "Authorization: Bearer YOUR_API_KEY"

    GET /v1/categories

    List all distinct categories with the number of products in each.

    curl https://nypdfolwwyubfqqljmxj.functions.supabase.co/public-api/v1/categories \
      -H "Authorization: Bearer YOUR_API_KEY"

    Code samples

    Same request — list software products — across five languages. Click the language tab and copy.

    curl https://nypdfolwwyubfqqljmxj.functions.supabase.co/public-api/v1/software?limit=5 \
      -H "Authorization: Bearer YOUR_API_KEY"

    Official SDKs

    Drop-in single-file clients for TypeScript and Python. Same API surface, fully typed, minimal dependencies.

    Install

    The SDKs are not published to npm or PyPI yet, so there is no package to install. Today the supported way is to download the single-file client and keep it in your project.

    curl -O https://qhsetech.com/api-docs/sdk/qhsetech.ts

    Or use the download buttons above: qhsetech.ts · qhsetech.py. Place the file next to your code; the examples below import it from there.

    Quick start

    import { QhseTechClient, QhseTechApiError } from "./qhsetech";
    
    const client = new QhseTechClient({
      apiKey: process.env.QHSE_API_KEY!, // qhse_live_*
    });
    
    // List products
    const { data, pagination } = await client.software.list({
      category: "Incident Management",
      limit: 10,
    });
    console.log(`${pagination?.total} products total`);
    
    // Single product
    const { data: product } = await client.software.get("tekmon");
    
    // Semantic search (AI-ranked)
    const { data: results } = await client.search.products({
      q: "permit to work for confined spaces",
      limit: 5,
    });
    
    // Typed error handling
    try {
      await client.software.get("does-not-exist");
    } catch (e) {
      if (e instanceof QhseTechApiError) {
        console.error(e.code, e.status, e.requestId);
      }
    }

    Available methods

    MethodEndpoint
    client.software.list(...)GET /v1/software
    client.software.get(id)GET /v1/software/:id
    client.categories.list()GET /v1/categories
    client.reviews.list(softwareId)GET /v1/reviews/:id
    client.glossary.list(q?)GET /v1/glossary
    client.search.products(q=...)GET /v1/search

    Fair use

    • Free unlimited access during preview — please be reasonable (avoid hammering the API).
    • Each request is logged with the API key for analytics. We may revoke keys behaving abusively.
    • Cache results when possible — the directory updates daily, not per-second.
    • Attribution appreciated: link back to qhsetech.com.

    Errors & status codes

    StatusMeaning
    401Missing or invalid API key
    403API key revoked
    404Resource not found
    405Method not allowed (only GET supported)
    500Server error — please retry