Garage Door ScienceGarage Door Science

For developers

API keys for /mcp-pro.

Higher rate limits and deeper retrieval for agents that call Garage Door Science tools in production. Email magic-link signup. No credit card.

Developer API illustration

We only use your email to send the magic link + (someday) billing. No marketing without your opt-in.

Tiers at a glance

/mcpPublic/mcp-proPro · bearer key
Auth
NoneAuthorization: Bearer gds_live_…, a free key from the form above
Rate limit
60 a minute, 2,000 a day, per IP240 a minute, 10,000 a day, per IP
Tools you can call
10 of 12. retrieveLabContext needs a key.11 of 12. identifyOpener needs the Technician plan, which is not part of the free key.
Retrieval depth
Not available without a keyretrieveLabContext returns up to 10 results a call
REST
/api/v1/<tool> with no key. Same limits. Browser calls from other sites need a Turnstile token./api/v1/<tool> with your key. Same limits. No Turnstile.
OpenAPI
/openapi.json, one spec for both tiers/openapi.json, try calls at /developers/api

Per-tool details

Built from the live tool registry, so it matches what the endpoints allow. retrieveLabContext needs a key, and identifyOpener needs the Technician plan; the rest are open on the public tier within the general rate limits.

ToolPublicProNotes
diagnoseYesYes—
routeByZipYesYes—
getDoorStylesYesYes—
getActivePromotionsYesYes—
getInspectionReferencePhotosYesYes—
getLabYesYes—
getLabEmbedYesYes—
retrieveLabContextNo, needs a keyYesUp to 10 results a call on pro.
visualDiagnoseYes · 20/day per IPYes · 100/day per IPA daily photo cap on top of the general rate limit.
identifyOpenerNo, needs a keyNo, needs the Technician plan—
costEstimateYesYes—
submitInspectionYesYes—

10-second start

Find the local installer for a ZIP code with routeByZip. Both run as pasted, with no key. Run the fetch from a server or Node 18+: a browser on another site needs a Turnstile token on the public tier.

To use your pro limits, add Authorization: Bearer gds_live_… with your own key; the reply then also carries "priority": true.

curl -s https://garagedoorscience.com/api/v1/routeByZip \
  -H 'content-type: application/json' \
  -d '{"zipOrLocation": "89101"}'

Response

{
  "covered": true,
  "region": "Las Vegas Valley",
  "regionKey": "nevada.las_vegas",
  "partnerId": "<partner id>",
  "partner": {
    "displayName": "<partner name>",
    "phone": "<partner phone>",
    "url": "https://garagedoorscience.com/go/<partner>",
    "schedulerUrl": "https://garagedoorscience.com/go/<partner>-schedule",
    "canEmbedScheduler": true,
    "reviews": null,
    "reviewsLine": null
  },
  "leadHeat": "warm"
}

The partner, phone and links depend on the ZIP you send. leadHeat repeats the one you sent: hot for an emergency, warm for a replacement, cold for research. It is warm when you send none.

How it works

  1. Enter your email above. We send a magic-link.
  2. Click the link within 15 minutes to verify.
  3. Generate a key in the dashboard. Plaintext is shown once.
  4. Send as Authorization: Bearer gds_live_... to https://garagedoorscience.com/mcp-pro (MCP) or /api/v1/<tool> (REST).
  5. Try calls in the browser at /developers/api (interactive OpenAPI docs).

Need the free tier instead?

The public endpoint at https://garagedoorscience.com/mcp requires no auth — just point any MCP-compatible client at it. All details on the agent docs page.

Recent changes

  1. getDoorStyles: sourced prices only, R-value filter removed
  2. visualDiagnose and submitInspection: what they store and who gets emailed
  3. /mcp now lists only the tools the public tier can call
  4. routeByZip marks pro callers with a priority flag
  5. identifyOpener and opener spec data need the Technician plan
  6. getLabEmbed: an iframe snippet for any lab

The full list, with what each change means for your calls, is at /developers/changelog. Subscribe to the JSON feed for a programmatic reader.

What can I build with this?

Four distinct consumer patterns — Claude Desktop, ChatGPT Custom GPT, LangChain agents, and contractor-site embed widgets — with runnable recipes for each. See /developers/use-cases and the cookbook repo.