Etlworks API

Etlworks API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-10-20); not the provider's own document.

Operations 13

GET / GET / #
POST /etlworks-events POST /etlworks-events #
GET /rest GET /rest #
GET /rest/v1/ai-agent/api GET /rest/v1/ai-agent/api #
POST /rest/v1/ai-agent/api/chat POST /rest/v1/ai-agent/api/chat #
POST /rest/v1/ai-agent/api/tools/search_knowledge_base/execute POST /rest/v1/ai-agent/api/tools/search_knowledge_base/execute #
POST /rest/v1/ai-agent/mcp POST /rest/v1/ai-agent/mcp #
GET /rest/v1/flows GET /rest/v1/flows #
POST /rest/v1/flows/{flowid}/run POST /rest/v1/flows/{flowId}/run #
POST /rest/v1/httplistener/file/test2.json POST /rest/v1/httplistener/file/test2.json #
POST /rest/v1/httplistener/hl7/patient POST /rest/v1/httplistener/hl7/patient #
GET /rest/v1/httplistener/patients/{patientid} GET /rest/v1/httplistener/patients/{patientId} #
POST /rest/v1/token-auth/issue POST /rest/v1/token-auth/issue #

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

etlworks-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Etlworks API
  version: '2026-10-20'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-20: 13 operation(s) read from 18 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Etlworks has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 13
    documentation: 0
    pages-with-code: 10
    pages-read: 18
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-20'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://etlworks.com/dev/api
  - https://etlworks.com/dev/api/examples.html
  - https://etlworks.com/dev/api/user-apis.html
  - https://etlworks.com/dev/api/quickstart.html
  - https://etlworks.com/dev/api/api-reference.html
  - https://etlworks.com/dev/api/etlworks-api.openapi.json
  - https://etlworks.com/dev/api/etlworks-api.openapi.yaml
  - https://etlworks.com/dev/ai/api-reference.html
  - https://etlworks.com/dev/ai
  - https://etlworks.com/dev/ai/downloads.html
  - https://etlworks.com/dev/ai/quickstart.html
  - https://etlworks.com/dev/cli
  - https://etlworks.com/dev/ai/mcp.html
  - https://etlworks.com/dev/ai/etlworks-ai-agent-api.openapi.json
  - https://etlworks.com/dev/ai/etlworks-ai-agent-api.openapi.yaml
  - https://etlworks.com/dev/cli/quickstart.html
  - https://etlworks.com/dev/cli/examples.html
  - https://etlworks.com/dev/cli/downloads.html
servers:
- url: https://app.etlworks.com
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://etlworks.com/dev/api/user-apis.html
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: httpie
        snippet: "HTTP \n https://<your-instance>.etlworks.com/rest/v1/httplistener/<your-url-pattern> "
  /etlworks-events:
    post:
      operationId: post_etlworks_events
      tags:
      - Etlworks Events
      summary: POST /etlworks-events
      x-source: https://etlworks.com/dev/api/examples.html
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostEtlworksEventsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -X POST \"$ETLWORKS_URL/v1/webhooks\"  -H \"Authorization: Bearer $ETLWORKS_API_KEY\"  -H \"Content-Type: application/json\"\
          \  -d '{\n \"name\": \"warehouse-flow-events\",\n \"description\": \"Notify ops on warehouse-pipeline failures and successes\",\n \"\
          events\": [\"Flow.Failed\", \"Flow.Executed\"],\n \"url\": \"https://your-app.example.com/etlworks-events\",\n \"method\": \"POST\"\
          ,\n \"secret\": \"use-this-for-hmac-verific"
  /rest:
    get:
      operationId: get_rest
      tags:
      - Rest
      summary: GET /rest
      x-source: https://etlworks.com/dev/api/examples.html
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl, Python, Bash, and PowerShell: pick the tab that matches your stack. \n Setup \n Every example assumes you've set ETLWORKS_URL\
          \ (e.g. https://app.etlworks.com/rest ) and ETLWORKS_API_KEY in your environment. See the Quickstart for getting these. \n Run a flow\
          \ and wait for completion \n Trigger a flow, then poll the executions endpoint until it reaches a terminal status. The most common pattern\
          \ in "
  /rest/v1/ai-agent/api:
    get:
      operationId: get_rest_v1_ai_agent_api
      tags:
      - Rest
      summary: GET /rest/v1/ai-agent/api
      x-source: https://etlworks.com/dev/ai/api-reference.html
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestV1AiAgentApiResponse'
      x-evidence:
        kind: code-example
        language: httpie
        snippet: "HTTP \n https://your-instance.etlworks.com/rest/v1/ai-agent/api "
  /rest/v1/ai-agent/api/chat:
    post:
      operationId: post_rest_v1_ai_agent_api_chat
      tags:
      - Rest
      summary: POST /rest/v1/ai-agent/api/chat
      x-source: https://etlworks.com/dev/ai
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1AiAgentApiChatRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestV1AiAgentApiChatResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s https://app.etlworks.com/rest/v1/ai-agent/api/chat  -H "Authorization: Bearer YOUR_API_KEY"  -H "Content-Type: application/json"  -d
          ''{"message": "How do I create a REST API connection to load JSON data?"}'''
  /rest/v1/ai-agent/api/tools/search_knowledge_base/execute:
    post:
      operationId: post_rest_v1_ai_agent_api_tools_search_knowledge_base_execute
      tags:
      - Rest
      summary: POST /rest/v1/ai-agent/api/tools/search_knowledge_base/execute
      x-source: https://etlworks.com/dev/ai
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1AiAgentApiToolsSearchKnowledgeBaseExecuteRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestV1AiAgentApiToolsSearchKnowledgeBaseExecuteResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://app.etlworks.com/rest/v1/ai-agent/api/tools/search_knowledge_base/execute  -H \"Authorization: Bearer YOUR_API_KEY\"\
          \  -H \"Content-Type: application/json\"  -d '{\"query\": \"schedule a flow to run every hour\"}' \n Python \n Copy \n from etlworks_agent\
          \ import EtlworksAgent\nagent = EtlworksAgent(\"https://app.etlworks.com\", api_key=\"YOUR_API_KEY\")"
  /rest/v1/ai-agent/mcp:
    post:
      operationId: post_rest_v1_ai_agent_mcp
      tags:
      - Rest
      summary: POST /rest/v1/ai-agent/mcp
      x-source: https://etlworks.com/dev/ai/mcp.html
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1AiAgentMcpRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestV1AiAgentMcpResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://app.etlworks.com/rest/v1/ai-agent/mcp  -H \"Authorization: Bearer YOUR_API_KEY\"  -H \"Content-Type: application/json\"\
          \  -H \"Accept: application/json, text/event-stream\"  -d '{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"initialize\",\n \"\
          params\": {\n \"protocolVersion\": \"2025-06-18\",\n \"capabilities\": {},\n \"clientInfo\": { \"name\": \"curl\", \"version\": \"1.0\"\
          \ }\n }\n }' \n JSON \n {\n \"jsonrpc\": \"2.0\",\n"
  /rest/v1/flows:
    get:
      operationId: get_rest_v1_flows
      tags:
      - Rest
      summary: GET /rest/v1/flows
      x-source: https://etlworks.com/dev/api
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestV1FlowsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s https://app.etlworks.com/rest/v1/flows  -H "Authorization: Bearer YOUR_API_KEY"'
  /rest/v1/flows/{flowid}/run:
    post:
      operationId: post_rest_v1_flows_flowid_run
      tags:
      - Rest
      summary: POST /rest/v1/flows/{flowId}/run
      x-source: https://etlworks.com/dev/api
      parameters:
      - name: flowid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1FlowsFlowidRunRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestV1FlowsFlowidRunResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -X POST https://app.etlworks.com/rest/v1/flows/12345/run  -H \"Authorization: Bearer YOUR_API_KEY\"  -H \"Content-Type:\
          \ application/json\"  -d '{\"runDate\":\"2026-05-09\"}' \n Python \n Copy \n import requests\nBASE = \"https://app.etlworks.com/rest\"\
          \nHEADERS = {\"Authorization\": f\"Bearer {API_KEY}\", \"Content-Type\": \"application/json\"}"
  /rest/v1/httplistener/file/test2.json:
    post:
      operationId: post_rest_v1_httplistener_file_test2_json
      tags:
      - Rest
      summary: POST /rest/v1/httplistener/file/test2.json
      x-source: https://etlworks.com/dev/api/user-apis.html
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl -s -X POST "https://app.etlworks.com/rest/v1/httplistener/file/test2.json"  -u "api-user:…"  --data-binary @local-file.json
  /rest/v1/httplistener/hl7/patient:
    post:
      operationId: post_rest_v1_httplistener_hl7_patient
      tags:
      - Rest
      summary: POST /rest/v1/httplistener/hl7/patient
      x-source: https://etlworks.com/dev/api/user-apis.html
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1HttplistenerHl7PatientRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s -X POST "https://app.etlworks.com/rest/v1/httplistener/hl7/patient"  -H "Authorization: Bearer eyJ0eXAi…"  -H "Content-Type:
          application/json"  -d ''{"id":123,"name":"…"}'''
  /rest/v1/httplistener/patients/{patientid}:
    get:
      operationId: get_rest_v1_httplistener_patients_patientid
      tags:
      - Rest
      summary: GET /rest/v1/httplistener/patients/{patientId}
      x-source: https://etlworks.com/dev/api/user-apis.html
      parameters:
      - name: patientid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s "https://app.etlworks.com/rest/v1/httplistener/patients/123"  -H "Authorization: Bearer eyJ0eXAi…"'
  /rest/v1/token-auth/issue:
    post:
      operationId: post_rest_v1_token_auth_issue
      tags:
      - Rest
      summary: POST /rest/v1/token-auth/issue
      x-source: https://etlworks.com/dev/api/user-apis.html
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestV1TokenAuthIssueRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s -X POST https://app.etlworks.com/rest/v1/token-auth/issue  -H "Content-Type: application/json"  -d ''{"login":"api-user","password":"…"}'''
components:
  schemas:
    PostEtlworksEventsRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        events:
          type: array
          items:
            type: string
        url:
          type: string
        method:
          type: string
        secret:
          type: string
        flowIncludes:
          type: array
          items:
            type: integer
        enabled:
          type: boolean
    GetRestResponse:
      type: object
      properties:
        runDate:
          type: string
          format: date
    GetRestV1AiAgentApiResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
    PostRestV1AiAgentApiChatRequest:
      type: object
      properties:
        message:
          type: string
    PostRestV1AiAgentApiChatResponse:
      type: object
      properties:
        query:
          type: string
    PostRestV1AiAgentApiToolsSearchKnowledgeBaseExecuteRequest:
      type: object
      properties:
        query:
          type: string
    PostRestV1AiAgentApiToolsSearchKnowledgeBaseExecuteResponse:
      type: object
      properties:
        query:
          type: string
    PostRestV1AiAgentMcpRequest:
      type: object
      properties:
        jsonrpc:
          type: string
        id:
          type: integer
        method:
          type: string
        params:
          type: object
          properties:
            protocolVersion:
              type: string
              format: date
            capabilities:
              type: object
            clientInfo:
              type: object
              properties:
                name:
                  type: string
                version:
                  type: string
    PostRestV1AiAgentMcpResponse:
      type: object
      properties:
        protocolVersion:
          type: string
          format: date
        capabilities:
          type: object
          properties:
            tools:
              type: object
              properties:
                listChanged:
                  type: boolean
        serverInfo:
          type: object
          properties:
            name:
              type: string
            version:
              type: string
    GetRestV1FlowsResponse:
      type: object
      properties:
        runDate:
          type: string
          format: date
    PostRestV1FlowsFlowidRunRequest:
      type: object
      properties:
        runDate:
          type: string
          format: date
    PostRestV1FlowsFlowidRunResponse:
      type: object
      properties:
        runDate:
          type: string
          format: date
    PostRestV1HttplistenerHl7PatientRequest:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    PostRestV1TokenAuthIssueRequest:
      type: object
      properties:
        login:
          type: string
        password:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Etlworks Events
- name: Rest