API Reference
The AllServicePros API is organized around REST. Resource-oriented URLs, JSON request/response bodies, standard HTTP status codes, and Bearer authentication.
Base URL
https://allservicepros.net/api
Public agentic routes are under /api/v1/.... Pro-authenticated dashboard APIs also live under /api/v1/pro/... and related paths.
Authentication
Create and revoke keys in:
- Pros: Developer console → API Keys
- Clients (Customer MCP / widget): Client → Integrations
Authorization: Bearer asp_live_YOUR_API_KEY
Keys are shown once at creation. Treat them like passwords — never commit them or embed server scopes in browser JavaScript.
Scopes (common)
| Scope | Purpose |
| --- | --- |
| services:read / pros:read / pricing:read / availability:read / reviews:read | Public catalog reads |
| bookings:write / rfqs:write / reviews:write | Create bookings, RFQs, reviews |
| widget:public / widget:book | Browser embeds (origin-locked) |
| mcp:read / mcp:write | MCP tool access |
| pro:read / pro:write | Pro dashboard-style access |
| packages:read / packages:book | Offer packages (when enabled) |
| webhooks:manage / webhook:sign | Manage or verify webhooks |
Presets in the console (widget, MCP, server full, webhook receiver) pick safe defaults. Prefer the narrowest scope that works.
Idempotency
For safely retrying writes, send:
Idempotency-Key: <unique-key>
Use a stable UUID per logical operation. Retries with the same key should not create duplicate bookings or RFQs.
Rate limits
Scopes enforce per-minute and per-day limits (widget booking scopes are stricter than read scopes). On 429, back off and retry. MCP and widget traffic share the key’s envelope.
Core public endpoints
These are the endpoints most agent builders need. The live contract is always OpenAPI.
| Method | Path | Summary |
| --- | --- | --- |
| GET | /api/v1/availability/query | Open slots for a pro + service |
| POST | /api/v1/bookings/create | Start a booking (may return payment clientSecret) |
| GET | /api/v1/bookings/:id | Retrieve a booking |
| GET | /api/v1/pros / related search routes | Discover professionals |
| GET | /api/v1/profile/public/{profileId} | Public profile |
| GET | /api/v1/packages (+ /compare, /{id}) | Offer packages when FEATURE_OFFER_PACKAGES is on |
Example — query availability
GET /api/v1/availability/query?professionalId=UUID&serviceId=UUID&date=2026-09-15
Authorization: Bearer asp_live_YOUR_API_KEY
Example — create booking
POST /api/v1/bookings/create
Authorization: Bearer asp_live_YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: 8f3c2a1e-...
{
"professionalId": "UUID",
"serviceId": "UUID",
"startDateTime": "2026-09-15T15:00:00.000Z",
"durationMinutes": 60,
"guestName": "Alex Homeowner",
"guestEmail": "alex@example.com",
"description": "AC not cooling",
"zipCode": "78701"
}
Responses may include a Stripe PaymentIntent clientSecret for the instant booking fee. Complete payment before treating the booking as confirmed.
Pro / Business APIs
Authenticated pro keys can access team, locations, site config, reviews, and analytics under /api/v1/pro/... (see OpenAPI). Prefer the Developer console and MCP for day-to-day ops unless you are building a custom integration.
OpenAPI & Swagger UI
| Resource | URL | | --- | --- | | OpenAPI JSON | /openapi.json | | Interactive docs | /api-docs | | API catalog (RFC-style) | /.well-known/api-catalog |
This markdown guide explains auth and flow. Swagger / OpenAPI is the source of truth for schemas and every registered path.