Gram (by Speakeasy) API

Gram (by Speakeasy) API as documented publicly: 11 operations. Contract generated from the documentation by API Evangelist (2026-10-18); not the provider's own document.

Operations 11

GET / GET / #
GET /cli-install.sh GET /cli-install.sh #
GET /cli.sh GET /cli.sh #
GET /docs/ai-control-plane/getting-started.md Append .md to any docs URL to get the page as plain markdown, with no HTML, navigation, or scripts #
POST /public/v2/custom-connections POST /public/v2/custom-connections #
POST /rpc/telemetry.searchLogs POST /rpc/telemetry.searchLogs #
GET /speakeasy-api/speakeasy/main/install.sh GET /speakeasy-api/speakeasy/main/install.sh #
GET /speakeasy-device-agent-releases-prod/releases.json GET /speakeasy-device-agent-releases-prod/releases.json #
GET /speakeasy-device-agent-releases-prod/v${VERSION}/speakeasyd_${VERSION}_linux_amd64 GET /speakeasy-device-agent-releases-prod/v${VERSION}/speakeasyd_${VERSION}_linux_amd64 #
GET /v0.1/servers Consumers read the catalog through a REST API, with GET /v0.1/servers returning the full list for downstream systems to ingest. #
GET /{org}/{repo}/main/scripts/install.sh GET /{org}/{repo}/main/scripts/install.sh #

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/getgram:getgram-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

getgram-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Gram (by Speakeasy) API
  version: '2026-10-18'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-18: 11 operation(s) read from 13 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Gram (by Speakeasy) has published no machine-readable
    contract that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 9
    documentation: 2
    pages-with-code: 12
    pages-read: 13
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-18'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://www.speakeasy.com/docs/ai-control-plane/reference/command-line
  - https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent
  - https://www.speakeasy.com/docs/ai-control-plane/reference/api-reference
  - https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent/mdm-installations
  - https://www.speakeasy.com/docs/standalone-mcp/build-server
  - https://www.speakeasy.com/docs/cli-generation/distribute-cli
  - https://www.speakeasy.com/docs/sdks/guides/sdk-preview-breaking-changes
  - https://www.speakeasy.com/docs/ai-control-plane/getting-started/agent-friendly-docs
  - https://www.speakeasy.com/docs/speakeasy-reference/cli/getting-started
  - https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent/mdm-installations/linux
  - https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent/mdm-installations/drata
  - https://www.speakeasy.com/resources/mcp-registry
  - https://github.com/trending
servers:
- url: https://ai.speakeasy.com
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://github.com/trending
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Config\n Curry\n CWeb\n Cycript\n Cylc\n Cypher\n Cython\n D\n D-ObjDump\n D2\n Dafny\n Darcs Patch\n Dart\n Daslang\n\
          \ DataWeave\n Debian Package Control File\n DenizenScript\n desktop\n Dhall\n Diff\n DIGITAL Command Language\n dircolors\n DirectX\
          \ 3D File\n DM\n DNS Zone\n Dockerfile\n Dogescript\n Dotenv\n DTrace\n Dune\n Dylan\n E\n E-mail\n Eagle\n Earthly\n Easybuild\n EBNF\n\
          \ eC\n Ecere Projects\n ECL\n ECLiPSe\n Ecmarkup\n Edge"
  /cli-install.sh:
    get:
      operationId: get_cli_install_sh
      tags:
      - Cli Install
      summary: GET /cli-install.sh
      x-source: https://www.speakeasy.com/docs/standalone-mcp/build-server
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://go.speakeasy.com/cli-install.sh | sh \n Run the Speakeasy quickstart command: \n Terminal window speakeasy\
          \ quickstart --mcp \n Indicate whether you plan to deploy your server on Cloudflare. \n Cloudflare is a popular choice for hosting MCP\
          \ servers. If selected, a Cloudflare Worker config file is generated with your MCP server code, making it easy to deploy your server\
          \ to a Cloudflar"
  /cli.sh:
    get:
      operationId: get_cli_sh
      tags:
      - Cli
      summary: GET /cli.sh
      x-source: https://www.speakeasy.com/docs/ai-control-plane/reference/command-line
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://ai.speakeasy.com/cli.sh | bash \n After installation, run the following command to verify that the CLI is\
          \ installed correctly: \n Terminal window speakeasy --version \n The CLI was previously called gram . The gram command still works but\n\
          prints a deprecation warning. The speakeasy-api/tap/gram Homebrew formula\nis deprecated in favor of speakeasy-api/tap/cli . Its GRAM_*\
          \ environmen"
  /docs/ai-control-plane/getting-started.md:
    get:
      operationId: get_docs_ai_control_plane_getting_started_md
      tags:
      - Docs
      summary: Append .md to any docs URL to get the page as plain markdown, with no HTML, navigation, or scripts
      description: Retrieves the raw markdown version of the Getting Started page for the AI Control Plane.
      x-source: https://www.speakeasy.com/docs/ai-control-plane/getting-started/agent-friendly-docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /public/v2/custom-connections:
    post:
      operationId: post_public_v2_custom_connections
      tags:
      - Public
      summary: POST /public/v2/custom-connections
      x-source: https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent/mdm-installations/drata
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s -X POST https://public-api.drata.com/public/v2/custom-connections \ -H "Authorization: Bearer <YOUR_API_KEY>" -H "Content-Type:
          application/json" \ -d ''{ "name": "Speakeasy Device Agent Coverage", "providerTypes": ["CUSTOM"], "workspaceIds": [<WORKSPACE_ID>],
          "displayNameKey": "hostname", "schema": { "type": "object", "required": ["id", "serialNumber", "hostname", "assignedUserEmail", "age'
  /rpc/telemetry.searchLogs:
    post:
      operationId: post_rpc_telemetry_searchLogs
      tags:
      - Rpc
      summary: POST /rpc/telemetry.searchLogs
      x-source: https://www.speakeasy.com/docs/ai-control-plane/reference/api-reference
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRpcTelemetrySearchlogsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \"https://ai.speakeasy.com/rpc/telemetry.searchLogs\" \\ -H \"Content-Type: application/json\" \\ -H \"Speakeasy-AI-Key:\
          \ <your-api-key>\" \\ -H \"Speakeasy-AI-Project: <your-project-slug>\" \\ -d '{\"limit\": 50}' \" \\\x7F -H \"Speakeasy-AI-Project:\
          \ \" \\\x7F -d '{\"limit\": 50}'\"> \n These headers were previously named Gram-Key and Gram-Project . The old names still work, and\
          \ the generated reference below stil"
  /speakeasy-api/speakeasy/main/install.sh:
    get:
      operationId: get_speakeasy_api_speakeasy_main_install_sh
      tags:
      - Speakeasy Api
      summary: GET /speakeasy-api/speakeasy/main/install.sh
      x-source: https://www.speakeasy.com/docs/sdks/guides/sdk-preview-breaking-changes
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://raw.githubusercontent.com/speakeasy-api/speakeasy/main/install.sh | sh echo \"$HOME/.speakeasy/bin\" >> $GITHUB_PATH\
          \ \n - name : Run Speakeasy workflow env : SPEAKEASY_API_KEY : ${{secrets.SPEAKEASY_API_KEY}} run : speakeasy run "
  /speakeasy-device-agent-releases-prod/releases.json:
    get:
      operationId: get_speakeasy_device_agent_releases_prod_releases_json
      tags:
      - Speakeasy Device Agent Releases Prod
      summary: GET /speakeasy-device-agent-releases-prod/releases.json
      x-source: https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent/mdm-installations
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://storage.googleapis.com/speakeasy-device-agent-releases-prod/releases.json | jq -r '.latest.speakeasyd.version'\
          \ ) BASE = https://storage.googleapis.com/speakeasy-device-agent-releases-prod/v $VERSION ARCH = amd64 # or arm64 \n sudo curl -fSL\
          \ -o /usr/local/bin/speakeasyd \" $BASE /speakeasyd_${VERSION}_linux_${ARCH}\" sudo curl -fSL -o /usr/local/bin/speakeasy \" $BASE /speakeasy_${VERSI"
  /speakeasy-device-agent-releases-prod/v${VERSION}/speakeasyd_${VERSION}_linux_amd64:
    get:
      operationId: get_speakeasy_device_agent_releases_prod_v_VERSION_speakeasyd_VERSION_linux_amd6
      tags:
      - Speakeasy Device Agent Releases Prod
      summary: GET /speakeasy-device-agent-releases-prod/v${VERSION}/speakeasyd_${VERSION}_linux_amd64
      x-source: https://www.speakeasy.com/docs/ai-control-plane/reference/device-agent
      parameters:
      - name: VERSION
        in: path
        required: true
        schema:
          type: string
      - name: VERSION
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL -o /tmp/speakeasyd \\ \"https://storage.googleapis.com/speakeasy-device-agent-releases-prod/v${VERSION}/speakeasyd_${VERSION}_linux_amd64\"\
          \ echo \"${SHA256} /tmp/speakeasyd\" | sha256sum -c - sudo install -m 0755 /tmp/speakeasyd/usr/local/bin/speakeasyd \"\x7FSHA256=\"\
          \ \"\x7Fsudo apt-get update\x7Fsudo apt-get install -y --no-install-recommends jq\x7Fcurl -fsSL -o /tmp/speakeasyd \\\x7F \"https://storage.google"
  /v0.1/servers:
    get:
      operationId: get_v0_1_servers
      tags:
      - V0
      summary: Consumers read the catalog through a REST API, with GET /v0.1/servers returning the full list for downstream systems to ingest.
      x-source: https://www.speakeasy.com/resources/mcp-registry
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /{org}/{repo}/main/scripts/install.sh:
    get:
      operationId: get_org_repo_main_scripts_install_sh
      tags:
      - Main
      summary: GET /{org}/{repo}/main/scripts/install.sh
      x-source: https://www.speakeasy.com/docs/cli-generation/distribute-cli
      parameters:
      - name: org
        in: path
        required: true
        schema:
          type: string
      - name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://raw.githubusercontent.com/{org}/{repo}/main/scripts/install.sh | bash \n The script supports two environment\
          \ variables derived from the configured envVarPrefix : \n <PREFIX>_INSTALL_DIR — override the install directory \n <PREFIX>_VERSION\
          \ — install a specific release tag instead of latest \n Example: \n Terminal window PETSTORE_INSTALL_DIR = /opt/bin curl -fsSL .../install.sh\
          \ | bash "
components:
  schemas:
    PostRpcTelemetrySearchlogsRequest:
      type: object
      properties:
        limit:
          type: integer
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Cli
- name: Cli Install
- name: Docs
- name: Main
- name: Public
- name: Rpc
- name: Speakeasy Api
- name: Speakeasy Device Agent Releases Prod
- name: V0