{"openapi":"3.1.0","info":{"title":"Hevo Data (BYOK) API","version":"0.1.0","description":"Hevo Data (BYOK) lets an AI assistant read your own Hevo Data data through the Hevo Data API with a key you supply (Hevo API key). Read-only: 11 tools (list_pipelines, get_pipeline, get_pipeline_schedule, list_pipeline_objects, get_pipeline_object_stats, list_event_types, list_destinations, get_destination, get_destination_table_stats, list_models, list_workflows). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hevo.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hevo/docs"},"termsOfService":"https://connectorbay.com/byok-hevo/terms"},"servers":[{"url":"https://byok-hevo.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hevo/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_pipelines":{"post":{"operationId":"list_pipelines","summary":"List ELT pipelines with status, health, source name and type, destination, last and next run time and schedule. Use for ","description":"List ELT pipelines with status, health, source name and type, destination, last and next run time and schedule. Use for \"Which Hevo pipelines are failing right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the id of the last item of the previous page (leave empty for the first page).","title":"Starting After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100, default 20).","title":"Limit"}},"required":["region"],"title":"list_pipelinesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline":{"post":{"operationId":"get_pipeline","summary":"Get one pipeline: status, health, source and destination summary, schedule, priority and auto-mapping. Use for \"Show me ","description":"Get one pipeline: status, health, source and destination summary, schedule, priority and auto-mapping. Use for \"Show me the details of Hevo pipeline 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"pipeline_id":{"description":"Numeric id of the Pipeline, from list_pipelines.","title":"Pipeline Id","type":"integer"}},"required":["region","pipeline_id"],"title":"get_pipelineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_schedule":{"post":{"operationId":"get_pipeline_schedule","summary":"Get the schedule options of a pipeline: type, cron or frequency and the allowed frequency range. Use for \"How often does","description":"Get the schedule options of a pipeline: type, cron or frequency and the allowed frequency range. Use for \"How often does Hevo pipeline 1 run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"pipeline_id":{"description":"Numeric id of the Pipeline, from list_pipelines.","title":"Pipeline Id","type":"integer"}},"required":["region","pipeline_id"],"title":"get_pipeline_scheduleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_pipeline_objects":{"post":{"operationId":"list_pipeline_objects","summary":"List the objects (tables, files, streams) a pipeline ingests with status, last run time and position; can filter by a st","description":"List the objects (tables, files, streams) a pipeline ingests with status, last run time and position; can filter by a status category or name text. Use for \"Which objects in Hevo pipeline 1 have failed events\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"pipeline_id":{"description":"Numeric id of the Pipeline, from list_pipelines.","title":"Pipeline Id","type":"integer"},"search_text":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only objects whose name contains this text.","title":"Search Text"},"category":{"anyOf":[{"enum":["ACTIVE","INACTIVE","FAILED","AWAITING_MAPPING","HAS_FAILED_EVENTS"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by ACTIVE, INACTIVE, FAILED, AWAITING_MAPPING or HAS_FAILED_EVENTS.","title":"Category"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the id of the last item of the previous page (leave empty for the first page).","title":"Starting After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100, default 20).","title":"Limit"}},"required":["region","pipeline_id"],"title":"list_pipeline_objectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_object_stats":{"post":{"operationId":"get_pipeline_object_stats","summary":"Get event counts per processing stage for one pipeline object over the last N minutes (default 120). Use for \"How many e","description":"Get event counts per processing stage for one pipeline object over the last N minutes (default 120). Use for \"How many events did the orders object of Hevo pipeline 1 ingest recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"pipeline_id":{"description":"Numeric id of the Pipeline, from list_pipelines.","title":"Pipeline Id","type":"integer"},"object_name":{"description":"Exact object name as listed by list_pipeline_objects.","maxLength":200,"title":"Object Name","type":"string"},"duration":{"anyOf":[{"maximum":10080,"minimum":1,"type":"integer"},{"type":"null"}],"default":120,"description":"Look-back window in minutes (default 120).","title":"Duration"}},"required":["region","pipeline_id","object_name"],"title":"get_pipeline_object_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_event_types":{"post":{"operationId":"list_event_types","summary":"List the event types of a streaming pipeline with auto-mapping setting and mapping status. Use for \"Which event types of","description":"List the event types of a streaming pipeline with auto-mapping setting and mapping status. Use for \"Which event types of Hevo pipeline 1 are unmapped\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"pipeline_id":{"description":"Numeric id of the Pipeline, from list_pipelines.","title":"Pipeline Id","type":"integer"},"search_text":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only event types whose name contains this text.","title":"Search Text"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the id of the last item of the previous page (leave empty for the first page).","title":"Starting After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100, default 20).","title":"Limit"}},"required":["region","pipeline_id"],"title":"list_event_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_destinations":{"post":{"operationId":"list_destinations","summary":"List warehouse destinations with type, status, health, failure reason and schedule. Use for \"Which Hevo destinations are","description":"List warehouse destinations with type, status, health, failure reason and schedule. Use for \"Which Hevo destinations are connected and healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the id of the last item of the previous page (leave empty for the first page).","title":"Starting After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100, default 20).","title":"Limit"}},"required":["region"],"title":"list_destinationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_destination":{"post":{"operationId":"get_destination","summary":"Get one destination: type, status, health, failure reason and schedule. Use for \"Is Hevo destination 1 healthy\".","description":"Get one destination: type, status, health, failure reason and schedule. Use for \"Is Hevo destination 1 healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"destination_id":{"description":"Numeric id of the destination, from list_destinations.","title":"Destination Id","type":"integer"}},"required":["region","destination_id"],"title":"get_destinationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_destination_table_stats":{"post":{"operationId":"get_destination_table_stats","summary":"Get event counts per processing stage for one destination table over the last N minutes (default 120). Use for \"How many","description":"Get event counts per processing stage for one destination table over the last N minutes (default 120). Use for \"How many events were loaded into table orders of Hevo destination 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"},"destination_id":{"description":"Numeric id of the destination.","title":"Destination Id","type":"integer"},"table_name":{"description":"Table name in the destination.","maxLength":200,"title":"Table Name","type":"string"},"duration":{"anyOf":[{"maximum":10080,"minimum":1,"type":"integer"},{"type":"null"}],"default":120,"description":"Look-back window in minutes (default 120).","title":"Duration"}},"required":["region","destination_id","table_name"],"title":"get_destination_table_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_models":{"post":{"operationId":"list_models","summary":"List SQL transformation models with destination, output table, load type, status, last run status and last failure messa","description":"List SQL transformation models with destination, output table, load type, status, last run status and last failure message. Use for \"Which Hevo models failed on their last run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"}},"required":["region"],"title":"list_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workflows":{"post":{"operationId":"list_workflows","summary":"List workflows with status, schedule, last run time and status and last failure message. Use for \"What is the status of ","description":"List workflows with status, schedule, last run time and status and last failure message. Use for \"What is the status of my Hevo workflows\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Hevo region of your account: us, us2, eu, in, asia or au (the first part of your Hevo dashboard address).","enum":["us","us2","eu","in","asia","au"],"title":"Region","type":"string"}},"required":["region"],"title":"list_workflowsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}