{"openapi":"3.1.0","info":{"title":"elmah.io (BYOK) API","version":"0.1.0","description":"elmah.io (BYOK) lets an AI assistant read your own elmah.io data through the elmah.io API with a key you supply (elmah.io API key). Read-only: 7 tools (list_logs, get_log, diagnose_log, search_messages, get_message, list_deployments, get_deployment). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.elmah.io....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-elmah.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-elmah/docs"},"termsOfService":"https://connectorbay.com/byok-elmah/terms"},"servers":[{"url":"https://byok-elmah.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-elmah/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_logs":{"post":{"operationId":"list_logs","summary":"List the logs of your elmah.io organization (one per application or environment) with name, environment and disabled fla","description":"List the logs of your elmah.io organization (one per application or environment) with name, environment and disabled flag. Use for \"Which elmah.io logs do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_logsArguments","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_log":{"post":{"operationId":"get_log","summary":"Get one elmah.io log by id: name, environment, color and whether it is disabled. Use for \"Show the elmah.io log a1b2c3d4","description":"Get one elmah.io log by id: name, environment, color and whether it is disabled. Use for \"Show the elmah.io log a1b2c3d4-0000-4000-8000-000000000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Id of the log to fetch.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_logArguments","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/diagnose_log":{"post":{"operationId":"diagnose_log","summary":"Run elmah.io's diagnostic check on a log and return the findings about logging problems, such as missing messages. Use f","description":"Run elmah.io's diagnostic check on a log and return the findings about logging problems, such as missing messages. Use for \"Why is the elmah.io log a1b2c3d4-0000-4000-8000-000000000001 not receiving errors\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"log_id":{"description":"Id of the elmah.io log (an application or environment that receives errors); list_logs returns the ids.","maxLength":200,"title":"Log Id","type":"string"}},"required":["log_id"],"title":"diagnose_logArguments","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/search_messages":{"post":{"operationId":"search_messages","summary":"Search the errors and messages in an elmah.io log by free text or Lucene query and date range, newest first, with severi","description":"Search the errors and messages in an elmah.io log by free text or Lucene query and date range, newest first, with severity, title, source and URL. Use for \"What errors were logged in elmah.io log a1b2c3d4-0000-4000-8000-000000000001 yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"log_id":{"description":"Id of the elmah.io log (an application or environment that receives errors); list_logs returns the ids.","maxLength":200,"title":"Log Id","type":"string"},"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text or Lucene query, for example 'severity:Error AND statusCode:500'.","title":"Query"},"start":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages after this ISO 8601 date and time (not included).","title":"Start"},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages before this ISO 8601 date and time (not included).","title":"End"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"How many messages to return (1 to 100, default 15).","title":"Page Size"},"page_index":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page number.","title":"Page Index"}},"required":["log_id"],"title":"search_messagesArguments","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_message":{"post":{"operationId":"get_message","summary":"Get one logged error or message from an elmah.io log: title, severity, time, stack trace or detail, request URL, status ","description":"Get one logged error or message from an elmah.io log: title, severity, time, stack trace or detail, request URL, status code and breadcrumbs. Cookies, form fields and server variables are not returned. Use for \"Show the details of elmah.io message 99CDEA3D6A631F09 in log a1b2c3d4-0000-4000-8000-000000000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"log_id":{"description":"Id of the elmah.io log (an application or environment that receives errors); list_logs returns the ids.","maxLength":200,"title":"Log Id","type":"string"},"id":{"description":"Id of the message, as returned by search_messages.","maxLength":200,"title":"Id","type":"string"}},"required":["log_id","id"],"title":"get_messageArguments","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_deployments":{"post":{"operationId":"list_deployments","summary":"List the deployments recorded in elmah.io with version, description, time and the log they belong to. Use for \"Which dep","description":"List the deployments recorded in elmah.io with version, description, time and the log they belong to. Use for \"Which deployments did elmah.io record recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_deploymentsArguments","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_deployment":{"post":{"operationId":"get_deployment","summary":"Get one elmah.io deployment by id: version, description, time and log. Use for \"Show elmah.io deployment d1\".","description":"Get one elmah.io deployment by id: version, description, time and log. Use for \"Show elmah.io deployment d1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Id of the deployment to fetch.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_deploymentArguments","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}}}}