AdvisorPPC Support API

The support API from AdvisorPPC — 6 operation(s) for support.

Operations 6

GET /api/support/config Support Config #
GET /api/support/search Support Instant Search #
POST /api/support/attachments Support Upload #
GET /api/support/attachments/{attachment_id} Support Download #
POST /api/support/voice/token Support Voice Token #
POST /api/support/chat Support Chat #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/advisorppc-com:advisorppc-com-support-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

advisorppc-com-support-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AdvisorPPC Support API
  version: 0.1.0
tags:
- name: Support
paths:
  /api/support/config:
    get:
      tags:
      - Support
      summary: Support Config
      description: 'Feature flags for the public widget.


        ``voice`` is the xAI voice agent. It is OFF and must stay off until the xAI

        console team is authorized for voice — the voice endpoint currently returns

        403 "Team is not authorized to perform this action" for our team.'
      operationId: support_config_api_support_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Support Config Api Support Config Get
  /api/support/search:
    get:
      tags:
      - Support
      summary: Support Instant Search
      description: 'Instant answers from the knowledge file. No model, no spend.


        This is the lane the widget searches while the visitor is still typing.

        Every hit is the stored wording, quoted, so a plan fact reaches the

        visitor exactly as the pricing page states it - and a visitor who finds

        their answer here has spent nothing and still has all five free messages

        for the question that actually needs the agent.


        It is GET on purpose: the response depends only on the query and the

        deployed artifact, so a browser, our CDN and a back button may all cache

        it. Nothing here is per-visitor.'
      operationId: support_instant_search_api_support_search_get
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
          maxLength: 120
          default: ''
          title: Q
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 6
          minimum: 1
          default: 4
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Support Instant Search Api Support Search Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/support/attachments:
    post:
      tags:
      - Support
      summary: Support Upload
      description: 'Accept one file as a raw body. Returns the card the widget renders.


        Raw bytes rather than multipart, deliberately: one file per request is the

        shape the widget uses anyway, the size cap can be applied while reading

        instead of after parsing, and it keeps a form parser off the only

        unauthenticated surface in the product that takes bytes.'
      operationId: support_upload_api_support_attachments_post
      parameters:
      - name: name
        in: query
        required: false
        schema:
          type: string
          maxLength: 240
          default: ''
          title: Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Support Upload Api Support Attachments Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/support/attachments/{attachment_id}:
    get:
      tags:
      - Support
      summary: Support Download
      description: 'Serve one file back to whoever holds a link we minted for it.


        A presigned link rather than a re-derived owner, and that is a decision

        rather than a shortcut: a download is a navigation, a navigation carries no

        header, and the signed runtime handle is the only thing that identifies a

        customer of mcp.advisorppc.com here. The reasoning, and what bounds the

        link instead, is in support_attachments.DOWNLOAD_TTL_S.


        Every failure is the SAME 404. A 403 for "wrong signature" against a 404

        for "no such file" would turn this route into an oracle for which ids

        exist.'
      operationId: support_download_api_support_attachments__attachment_id__get
      parameters:
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
          title: Attachment Id
      - name: o
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: O
      - name: e
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: E
      - name: t
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: T
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Support Download Api Support Attachments  Attachment Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/support/voice/token:
    post:
      tags:
      - Support
      summary: Support Voice Token
      description: 'Mint a short-lived xAI realtime token for the browser.


        The browser opens the WebSocket itself (that is what makes this low-latency

        speech-to-speech), so it needs a credential. It gets an EPHEMERAL one minted

        here — never ``XAI_API_KEY``, which stays server-side and is read by name.

        The response also carries the voice instructions, which are not secret and

        which the browser applies via ``session.update``.'
      operationId: support_voice_token_api_support_voice_token_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Support Voice Token Api Support Voice Token Post
  /api/support/chat:
    post:
      tags:
      - Support
      summary: Support Chat
      operationId: support_chat_api_support_chat_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportChatIn'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Support Chat Api Support Chat Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SupportMessage:
      properties:
        role:
          type: string
          pattern: ^(user|assistant)$
          title: Role
        content:
          type: string
          title: Content
      type: object
      required:
      - role
      - content
      title: SupportMessage
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SupportChatIn:
      properties:
        messages:
          items:
            $ref: '#/components/schemas/SupportMessage'
          type: array
          maxItems: 100
          title: Messages
        conversation_id:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Conversation Id
        runtime_identity:
          anyOf:
          - type: string
            maxLength: 4096
          - type: 'null'
          title: Runtime Identity
        attachment_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Attachment Ids
      type: object
      required:
      - messages
      title: SupportChatIn
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer