{
  "openapi": "3.0.3",
  "info": {
    "title": "RapidXAI Public Content API",
    "version": "1.1.0",
    "description": "Public data about RapidXAI's services, pricing, use cases, FAQ and consultation routes. This is a lead-generation services company, not a self-serve SaaS platform. There is no account system. GET /consultation-link returns the real booking link; POST /consultation-request records contact details but does not reserve a calendar slot. The MCP server exposes the same read tools plus a consent-gated consultation request tool.",
    "contact": {
      "name": "RapidXAI",
      "email": "shreyas@rapid-xai.com",
      "url": "https://rapidxai.com"
    },
    "license": {
      "name": "Public content API, no license required to consume"
    }
  },
  "servers": [
    {
      "url": "https://rapidxai.com/api",
      "description": "Production"
    }
  ],
  "paths": {
    "/services": {
      "get": {
        "operationId": "getServices",
        "summary": "List RapidXAI's core service lines",
        "description": "Returns the 3 real service lines RapidXAI offers: AI voice agents, an AI operating system, and high-converting websites.",
        "responses": {
          "200": {
            "description": "The 3 service lines",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesResponse"
                },
                "example": {
                  "services": [
                    {
                      "id": "ai-voice-agents",
                      "title": "AI Voice Assistants",
                      "description": "Human sounding agents that answer every call, qualify leads, and book appointments, in any language, around the clock.",
                      "url": "https://rapidxai.com/voice-agents"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/pricing": {
      "get": {
        "operationId": "getPricing",
        "summary": "Get public pricing plans",
        "description": "Returns RapidXAI's 3 published pricing plans (Pilot Deployment, Scale Plan, Enterprise) in USD. Exact pricing is still scoped on a consultation call, this is the published starting range.",
        "responses": {
          "200": {
            "description": "Pricing plans",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PricingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/use-cases": {
      "get": {
        "operationId": "getUseCases",
        "summary": "List deployable voice-agent use cases",
        "description": "Returns the 9 specific, named voice-agent use cases RapidXAI deploys (buyer qualification, cold database revival, COD confirmation, cart abandonment, clinic front desk, after-hours booking + dispatch, candidate screening, reservations, payment follow-up).",
        "responses": {
          "200": {
            "description": "Use cases",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UseCasesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/faq": {
      "get": {
        "operationId": "getFaq",
        "summary": "Get frequently asked questions",
        "description": "Returns the same FAQ content published on the RapidXAI homepage.",
        "responses": {
          "200": {
            "description": "FAQ entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FaqResponse"
                }
              }
            }
          }
        }
      }
    },
    "/consultation-link": {
      "get": {
        "operationId": "getConsultationLink",
        "summary": "Get the real booking link for a consultation call",
        "description": "Every RapidXAI engagement starts with a human consultation call. This returns the real, live Calendly link. It does not reserve a calendar slot; the human must confirm the actual date and time in Calendly.",
        "responses": {
          "200": {
            "description": "Booking link",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultationLinkResponse"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health and version",
        "operationId": "getHealth",
        "responses": {
          "200": {
            "description": "Service is up; returns version and endpoint list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "summary": "API version and versioning policy",
        "operationId": "getVersion",
        "responses": {
          "200": {
            "description": "Semver version and versioning strategy.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/consultation-request": {
      "post": {
        "summary": "Register interest in a consultation",
        "operationId": "createConsultationRequest",
        "description": "Records a consultation request and returns the booking link. Does not reserve a calendar slot.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "message"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "company": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Request recorded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "type": "string"
                    },
                    "bookingUrl": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error."
          },
          "400": {
            "description": "Invalid JSON."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ServicesResponse": {
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "required": [
                "id",
                "title",
                "description",
                "url"
              ]
            }
          }
        }
      },
      "PricingResponse": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "plans": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                },
                "audience": {
                  "type": "string"
                },
                "startingPrice": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "month",
                        "minute"
                      ]
                    },
                    "setupFee": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                },
                "features": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "id",
                "name",
                "summary",
                "audience",
                "features"
              ]
            }
          },
          "note": {
            "type": "string"
          }
        }
      },
      "UseCasesResponse": {
        "type": "object",
        "properties": {
          "useCases": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "required": [
                "slug",
                "title",
                "summary",
                "url"
              ]
            }
          }
        }
      },
      "FaqResponse": {
        "type": "object",
        "properties": {
          "faqs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "question": {
                  "type": "string"
                },
                "answer": {
                  "type": "string"
                }
              },
              "required": [
                "question",
                "answer"
              ]
            }
          }
        }
      },
      "ConsultationLinkResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "durationMinutes": {
            "type": "integer"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "durationMinutes"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "status": {
                "type": "integer"
              }
            },
            "required": [
              "code",
              "message",
              "status"
            ]
          }
        }
      }
    }
  }
}
