Developer Hub

Stable APIs, scoped keys, and practical integration docs.

This page now focuses on currently-supported routes and removes stale examples that drifted from production.

Scoped keys

Create and rotate personal or entity-scoped keys from the key manager.

Live playground

Test stable public routes directly against the current deployment.

Embed options

Use the hosted finder via iframe or script widget, depending on your stack.

Backend proxy model

Routes under /api/* are served by Next handlers and/or proxied Functions paths.

Current API surface

Endpoints listed here are intentionally limited to stable routes verified in this codebase.

GET/api/matches

Public match discovery

Primary endpoint used by the match finder. Supports date, discipline, and optional geospatial filters.

typeCSV

Filter by one or more disciplines.

fromYYYY-MM-DD

Inclusive start date.

toYYYY-MM-DD

Inclusive end date.

lat,lng,radiusnumber

Coordinate filter in miles.

limit1-1000

Maximum records to return.

sortdateAsc|dateDesc|nameAsc|nameDesc|distance

Sort mode.

Example

curl "https://shootershub.fortneyengineering.com/api/matches?type=NRL22&limit=50&sort=dateAsc"
GET/api/search

Hybrid site search

Indexed search across matches, clubs, forum threads, swap listings, and pages with ranking + caching.

qstring

Search query (2+ chars).

typematch|club|forum|swap|page|user

Optional entity-type filter.

limit1-40

Max results per request.

Example

curl "https://shootershub.fortneyengineering.com/api/search?q=api"
POST/api/olc/tiles

OLC tile hydration (proxy)

Proxies to the OLC service and returns tile payloads. Request/response shape is controlled by backend Functions.

tileIdsstring[] • required

List of tile IDs to resolve.

Example

curl -X POST "https://shootershub.fortneyengineering.com/api/olc/tiles" -H "Content-Type: application/json" -d "{"tileIds":["86JQ:2025-01"]}"
GET/api/health

Service health check

Simple liveness endpoint from the Next.js layer.

Example

curl "https://shootershub.fortneyengineering.com/api/health"

Embed quick start

iFrame

<iframe
  src="https://shootershub.fortneyengineering.com/match-finder?type=NRL22"
  loading="lazy"
  style="width:100%;height:720px;border:0;border-radius:18px;"
></iframe>

Script widget

<div class="shmf" data-sh-config='{"type":["NRL22"],"view":"map"}'></div>
<script src="https://shootershub.fortneyengineering.com/embed/match-finder.js" defer></script>
Live playground

Test stable public routes

This playground is intentionally limited to endpoints that are currently stable in this web app.

Request URL

/api/matches?type=NRL22&radius=150&limit=50&sort=dateAsc

cURL

curl "/api/matches?type=NRL22&radius=150&limit=50&sort=dateAsc"

Response

// Run the request to preview JSON output.