Air Pipe tutorial API

Air Pipe tutorial API as documented publicly: 9 operations. Contract generated from the documentation by API Evangelist (2026-11-01); not the provider's own document.

Operations 9

GET /configurations GET /configurations #
GET /setup.sh GET /setup.sh #
GET /tutorial/csv-cat-to-api GET /tutorial/csv-cat-to-api #
GET /tutorial/json-cat-to-api GET /tutorial/json-cat-to-api #
GET /tutorial/myroute GET /tutorial/myroute #
POST /tutorial/webhook POST /tutorial/webhook #
GET /tutorial/xml-cat-to-api GET /tutorial/xml-cat-to-api #
POST /your-org-uuid/staging/tutorial/webhook POST /your-org-uuid/staging/tutorial/webhook #
GET /your_org_uuid/staging/tutorial/myroute GET /your_org_uuid/staging/tutorial/myroute #

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/airpipe-io:tutorial-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

airpipe-io-tutorial-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Air Pipe tutorial API
  version: '2026-11-01'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-01: 9 operation(s) read from 5 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Air Pipe has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 11
    documentation: 26
    pages-with-code: 9
    pages-read: 11
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-01'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
  - https://docs.airpipe.io/docs/tutorial/csv-output-to-api
  - https://docs.airpipe.io/docs/tutorial/json-output-to-api
  - https://docs.airpipe.io/docs/tutorial/setup
  - https://docs.airpipe.io/docs/tutorial/xml-output-to-api
  x-docs-section: tutorial
servers:
- url: https://app.airpipe.io
paths:
  /configurations:
    get:
      operationId: get_configurations
      tags:
      - Configurations
      summary: GET /configurations
      x-source: https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConfigurationsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl: ​ \n The load configuration UI will automatically show you what your detected routes are, you can copy this for the next\
          \ steps. \n The link is automatically built with your organization uuid and environment, your API endpoints can be found here if required\
          \ https://app.airpipe.io/configurations . \n Update the route as necessary "
  /setup.sh:
    get:
      operationId: get_setup_sh
      tags:
      - Setup
      summary: GET /setup.sh
      x-source: https://docs.airpipe.io/docs/tutorial/setup
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://download.airpipe.io/setup.sh | sudo bash -s -- --api-key enter-your-api-key-12345 --local \n This will download\
          \ the binary into the current directory and create a few more directories we will use later \n Proceed to next step \n Edit this page\
          \ Next 01 - Configurations Requirements Docs Getting Started Configuration Examples Community Discord Twitter More GitHub Copyright\
          \ © 2026 Air Pi"
  /tutorial/csv-cat-to-api:
    get:
      operationId: get_tutorial_csv_cat_to_api
      tags:
      - Tutorial
      summary: GET /tutorial/csv-cat-to-api
      x-source: https://docs.airpipe.io/docs/tutorial/csv-output-to-api
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTutorialCsvCatToApiResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \n http://0.0.0.0:4111/tutorial/csv-cat-to-api \n HTTP Response ​ \n { \"data\": { \"RunCommand\": { \"data\": [ { \"Country\
          \ of Origin\": \"United States\", \"Favorite Weapon\": \" \", \"First Name\": \"Clark\", \"Hero Name\": \"Superman\", \"Last Name\"\
          : \"Kent\", \"Vehicle\": \"Supermobile\" }, { \"Country of Origin\": \"Themyscira\", \"Favorite Weapon\": \"Lasso of Truth\", \"First\
          \ Name\": \"Diana\", \"Hero Name\": \"Wonder Woman\", \"Las"
  /tutorial/json-cat-to-api:
    get:
      operationId: get_tutorial_json_cat_to_api
      tags:
      - Tutorial
      summary: GET /tutorial/json-cat-to-api
      x-source: https://docs.airpipe.io/docs/tutorial/json-output-to-api
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTutorialJsonCatToApiResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \n http://0.0.0.0:4111/tutorial/json-cat-to-api \n HTTP Response ​ \n { \"data\": { \"RunCommand\": { \"data\": { \"heroes\"\
          : [ { \"identity\": \"bruce\", \"name\": \"batman\" }, { \"identity\": \"clark\", \"name\": \"superman\" } ], \"message\": \"hero ouput\"\
          \ }, \"time.ms\": 1 } } } Edit this page Previous 00 - Intro Next 02 - CSV output to API Prepare sample data Review configuration Test\
          \ HTTP Response Docs Getting Starte"
  /tutorial/myroute:
    get:
      operationId: get_tutorial_myroute
      tags:
      - Tutorial
      summary: GET /tutorial/myroute
      x-source: https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
      parameters:
      - name: msg
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTutorialMyrouteResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://0.0.0.0:4111/tutorial/myroute?msg=hello \n Response ​ \n { \"data\": { \"CheckQueryParams\": { \"data\": { \"msg\"\
          : \"hello\" }, \"time.ms\": 3 } } } \n 2. HTTP POST API (Webhook) ​ \n In this simple example we will be creating a HTTP POST API where\
          \ we will access data from the posted body.\nYou may add or adjust the payload sent in the validation steps to see how the data is handled.\
          \ \n Deploy via Host"
  /tutorial/webhook:
    post:
      operationId: post_tutorial_webhook
      tags:
      - Tutorial
      summary: POST /tutorial/webhook
      x-source: https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTutorialWebhookRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTutorialWebhookResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --location 'http://0.0.0.0:4111/tutorial/webhook' \\ --header 'Content-Type: application/json' \\ --data '{ \"message\"\
          : \"hello world\", \"heroes\": [ { \"name\": \"batman\", \"identity\": \"bruce\" }, { \"name\": \"superman\", \"identity\": \"clark\"\
          \ } ] }' \n Response ​ \n { \"data\": { \"CheckBody\": { \"data\": { \"heroes\": [ { \"identity\": \"bruce\", \"name\": \"batman\" },\
          \ { \"identity\": \"clark\", \"name\": \"superman\" } ], \"mess"
  /tutorial/xml-cat-to-api:
    get:
      operationId: get_tutorial_xml_cat_to_api
      tags:
      - Tutorial
      summary: GET /tutorial/xml-cat-to-api
      x-source: https://docs.airpipe.io/docs/tutorial/xml-output-to-api
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTutorialXmlCatToApiResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \n http://0.0.0.0:4111/tutorial/xml-cat-to-api \n HTTP Response ​ \n { \"data\": { \"RunCommand\": { \"data\": { \"superheroes\"\
          : { \"hero\": [ { \"favoriteWeapon\": \"None\", \"heroName\": \"Superman\", \"identity\": \"Clark Kent\", \"vehicle\": \"None\" }, {\
          \ \"favoriteWeapon\": \"Batarang\", \"heroName\": \"Batman\", \"identity\": \"Bruce Wayne\", \"vehicle\": \"Batmobile\" }, { \"favoriteWeapon\"\
          : \"Lasso of Truth\", \"heroName\": \"Wonder "
  /your-org-uuid/staging/tutorial/webhook:
    post:
      operationId: post_your_org_uuid_staging_tutorial_webhook
      tags:
      - Your Org Uuid
      summary: POST /your-org-uuid/staging/tutorial/webhook
      x-source: https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostYourOrgUuidStagingTutorialWebhookRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostYourOrgUuidStagingTutorialWebhookResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --location 'https://api.airpipe.io/your-org-uuid/staging/tutorial/webhook' \\ --header 'Content-Type: application/json'\
          \ \\ --data '{ \"message\": \"hello world\", \"heroes\": [ { \"name\": \"batman\", \"identity\": \"bruce\" }, { \"name\": \"superman\"\
          , \"identity\": \"clark\" } ] }' \n Self hosted mode, curl or use your preferred API testing tool: ​ "
  /your_org_uuid/staging/tutorial/myroute:
    get:
      operationId: get_your_org_uuid_staging_tutorial_myroute
      tags:
      - Your Org Uuid
      summary: GET /your_org_uuid/staging/tutorial/myroute
      x-source: https://docs.airpipe.io/docs/tutorial/apis-and-webhooks
      parameters:
      - name: msg
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetYourOrgUuidStagingTutorialMyrouteResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://app.airpipe.io/your_org_uuid/staging/tutorial/myroute?msg=hello \n Self hosted mode, either navigate to or curl:\
          \ ​ \n http://0.0.0.0:4111/tutorial/myroute?msg=hello "
components:
  schemas:
    GetConfigurationsResponse:
      type: object
      properties:
        CheckQueryParams:
          type: object
          properties:
            data:
              type: object
              properties:
                msg:
                  type: string
            time.ms:
              type: integer
    GetTutorialCsvCatToApiResponse:
      type: object
      properties:
        RunCommand:
          type: object
          properties:
            data:
              type: array
              items:
                type: object
                properties:
                  Country of Origin:
                    type: string
                  Favorite Weapon:
                    type: string
                  First Name:
                    type: string
                  Hero Name:
                    type: string
                  Last Name:
                    type: string
                  Vehicle:
                    type: string
            time.ms:
              type: integer
    GetTutorialJsonCatToApiResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            heroes:
              type: array
              items:
                type: object
                properties:
                  identity:
                    type: string
                  name:
                    type: string
            message:
              type: string
        time.ms:
          type: integer
    GetTutorialMyrouteResponse:
      type: object
      properties:
        CheckQueryParams:
          type: object
          properties:
            data:
              type: object
              properties:
                msg:
                  type: string
            time.ms:
              type: integer
    PostTutorialWebhookRequest:
      type: object
      properties:
        message:
          type: string
        heroes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              identity:
                type: string
    PostTutorialWebhookResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            heroes:
              type: array
              items:
                type: object
                properties:
                  identity:
                    type: string
                  name:
                    type: string
            message:
              type: string
        time.ms:
          type: integer
    GetTutorialXmlCatToApiResponse:
      type: object
      properties:
        superheroes:
          type: object
          properties:
            hero:
              type: array
              items:
                type: object
                properties:
                  favoriteWeapon:
                    type: string
                  heroName:
                    type: string
                  identity:
                    type: string
                  vehicle:
                    type: string
    PostYourOrgUuidStagingTutorialWebhookRequest:
      type: object
      properties:
        message:
          type: string
        heroes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              identity:
                type: string
    PostYourOrgUuidStagingTutorialWebhookResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            heroes:
              type: array
              items:
                type: object
                properties:
                  identity:
                    type: string
                  name:
                    type: string
            message:
              type: string
        time.ms:
          type: integer
    GetYourOrgUuidStagingTutorialMyrouteResponse:
      type: object
      properties:
        CheckQueryParams:
          type: object
          properties:
            data:
              type: object
              properties:
                msg:
                  type: string
            time.ms:
              type: integer
  securitySchemes:
    Backend_API_key:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    Backend_API_key_alternative_header:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    Backend_API_key_query:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    JWT_shared_secret:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    JWT_shared_secret_query:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    JWT_JWKS:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    OAuth2_Authorization_Code:
      type: http
      scheme: bearer
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
    Basic_Auth:
      type: http
      scheme: basic
      x-source: https://docs.airpipe.io/docs/features/realtime/realtime-auth/
tags:
- name: Configurations
- name: Setup
- name: Tutorial
- name: Your Org Uuid
security:
- Backend_API_key: []
- Backend_API_key_alternative_header: []
- Backend_API_key_query: []
- JWT_shared_secret: []
- JWT_shared_secret_query: []
- JWT_JWKS: []
- OAuth2_Authorization_Code: []
- Basic_Auth: []