Skip to content

contractor.id profiles

Contractor public profile URLs at contractor.id and the JSON endpoint behind them.

Every ContractorsNearMe profile also has a public page at contractor.id, and the profile data is available as JSON without a key.

URLs

  • Profile page: https://contractor.id/<state>/<city>/<slug>, for example https://contractor.id/tx/austin/<slug>. A short https://contractor.id/<slug> redirects there.
  • A contractor who claims a handle also gets https://contractor.id/<handle>. See Claim your profile.

Profile JSON

GET https://contractorsnearme.ai/api/agents/contractor-id/profile/<slug> (the same path also works on https://contractor.id)

Returns { "contractor": { … } } with contractor_id, company_name, slug, city, state_code, avg_rating, is_verified, about_text, phone, website, primary_trade, profile_url, photos[] (url, description), services[], reviews[] (rating, body, reviewer_name), certifications[], promotions[] and service_areas[]. This endpoint leaves out email addresses.

  • Unknown slug: 404 {"error":"Contractor profile not found"}. Bad slug: 400.
  • CORS is open (*), so browser apps can call it. Cached for up to an hour. Limit: 100 requests a minute per IP.

Check whether a profile is claimed

GET https://contractorsnearme.ai/api/agents/contractor-id/claims/by-slug/<slug> returns {"claim": null} when nobody has claimed the handle for that profile.

Don’t use

/api/agents/contractors, /api/agents/itbs and /api/agents/leads on contractorsnearme.ai and contractor.id are retired. They redirect to a sign-in page. Some older ContractorsNearMe pages still list them. Use the MCP server instead.