P ProhostAI · Developer portal
Developer portal · Getting started

Build on ProhostAI in under five minutes.

Everything you need to integrate with ProhostAI — authenticate, make your first call, and explore the full REST API or the MCP server for AI assistants.

Already have a ProhostAI account with listings imported? Skip to “Create an API key”.

  1. Sign up — create a free account at app.prohost.ai/signup.
  2. Connect your Airbnb or PMS — when prompted, link your Airbnb account directly or your PMS (Hostaway, Guesty, Hospitable, etc.).
  3. Import your listings — ProhostAI pulls your properties automatically; refine details in the dashboard.
  4. Create an API key — open Settings → 🔑 API Keys in your ProhostAI dashboard and create a new key. Copy it immediately — it won't be shown again.
  5. Make your first request — pass the key in the X-API-Key header:
    curl curl -H "X-API-Key: ph_live_YOUR_KEY" \ https://connect.prohost.ai/v1/listings
  6. Explore — open the API Reference tab above to see all endpoints, or check out MCP to connect your AI assistant.

Authentication

All requests require an X-API-Key header. Keys are scoped — you control exactly which resources each key can access.

http GET https://connect.prohost.ai/v1/reservations HTTP/1.1 X-API-Key: ph_live_YOUR_KEY

Rate limits are returned in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Errors & status codes

Errors use conventional HTTP status codes. The three worth handling explicitly when you wire up auth and billing:

401 Unauthorized — missing or invalid credential.

A WWW-Authenticate header points OAuth clients at the discovery document so they can (re-)authenticate. An invalid bearer token additionally sets error="invalid_token".

http HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer resource_metadata="https://connect.prohost.ai/.well-known/oauth-protected-resource" {"detail": "Missing authentication. Provide X-API-Key header or Bearer token."}

402 Payment Required — the account's plan is below the tier a feature requires.

The structured body carries the current tier and a deep link to billing so you can prompt the user to upgrade.

json HTTP/1.1 402 Payment Required { "detail": { "error": "upgrade_required", "reason": "tier_pro_required", "current_tier": "free", "upgrade_url": "https://app.prohost.ai/settings/billing" } }

429 Too Many Requests — you've exceeded your rate-limit tier.

Back off for Retry-After seconds. The body is structured (not a bare string), and the X-RateLimit-* + X-ProhostAI-Tier headers accompany it.

http HTTP/1.1 429 Too Many Requests Retry-After: 42 X-RateLimit-Limit: 60 X-RateLimit-Remaining: 0 X-ProhostAI-Tier: free { "error": "rate_limit_exceeded", "reason": "per_minute", "limit": 60, "retry_after_seconds": 42, "upgrade_url": "https://app.prohost.ai/settings/billing" }

A 403 means the credential is valid but its scopes don't cover the operation — request a key or OAuth grant that carries the required scope.

By using the API or MCP server you agree to our privacy policy.