{"openapi":"3.1.0","info":{"title":"MetaDefender Cloud (BYOK) API","version":"0.1.0","description":"MetaDefender Cloud (BYOK) lets an AI assistant read your own MetaDefender Cloud data through the MetaDefender Cloud API with a key you supply (MetaDefender Cloud API key). Read-only: 7 tools (lookup_hash, lookup_ip, lookup_domain, lookup_url, get_api_key_info, get_api_key_usage, get_api_key_remaining). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-metadefender.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-metadefender/docs"},"termsOfService":"https://connectorbay.com/byok-metadefender/terms"},"servers":[{"url":"https://byok-metadefender.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-metadefender/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/lookup_hash":{"post":{"operationId":"lookup_hash","summary":"Look up the scan report of a file by MD5, SHA-1 or SHA-256 hash in MetaDefender Cloud (multi-engine verdicts). The offic","description":"Look up the scan report of a file by MD5, SHA-1 or SHA-256 hash in MetaDefender Cloud (multi-engine verdicts). The official page lists this endpoint but not its answer fields, so the answer is returned as received (long answers are cut). Use for \"Is this file hash known as malware in MetaDefender Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hash":{"description":"MD5, SHA-1 or SHA-256 hash of the file (hex).","maxLength":64,"title":"Hash","type":"string"}},"required":["hash"],"title":"lookup_hashArguments","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/lookup_ip":{"post":{"operationId":"lookup_ip","summary":"Look up the reputation of an IP address in MetaDefender Cloud. The official page lists this endpoint but not its answer ","description":"Look up the reputation of an IP address in MetaDefender Cloud. The official page lists this endpoint but not its answer fields, so the answer is returned as received (long answers are cut). Use for \"Is the IP address 8.8.8.8 flagged by MetaDefender Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip":{"description":"IP address, for example '8.8.8.8'.","maxLength":45,"title":"Ip","type":"string"}},"required":["ip"],"title":"lookup_ipArguments","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/lookup_domain":{"post":{"operationId":"lookup_domain","summary":"Look up the reputation of a domain in MetaDefender Cloud. The official page lists this endpoint but not its answer field","description":"Look up the reputation of a domain in MetaDefender Cloud. The official page lists this endpoint but not its answer fields, so the answer is returned as received (long answers are cut). Use for \"Is the domain example.com flagged by MetaDefender Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name, for example 'example.com'.","maxLength":253,"title":"Domain","type":"string"}},"required":["domain"],"title":"lookup_domainArguments","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/lookup_url":{"post":{"operationId":"lookup_url","summary":"Look up the reputation of a URL in MetaDefender Cloud. The URL goes into the request path and is encoded for you. The of","description":"Look up the reputation of a URL in MetaDefender Cloud. The URL goes into the request path and is encoded for you. The official page lists this endpoint but not its answer fields, so the answer is returned as received (long answers are cut). Use for \"Is the URL http://example.com/login flagged by MetaDefender Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"description":"The URL to check, for example 'http://example.com/login'.","maxLength":2000,"title":"Url","type":"string"}},"required":["url"],"title":"lookup_urlArguments","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_api_key_info":{"post":{"operationId":"get_api_key_info","summary":"Show the configured limits of the key: reputation, prevention, threat-intelligence, sandbox and feed limits, rate-limit,","description":"Show the configured limits of the key: reputation, prevention, threat-intelligence, sandbox and feed limits, rate-limit, interval, expiry and nickname. Use for \"What are the limits of my MetaDefender Cloud API key\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_key_infoArguments","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_api_key_usage":{"post":{"operationId":"get_api_key_usage","summary":"Show how much of each limit (reputation, prevention, threat-intelligence search, feed, download, sandbox) the key has us","description":"Show how much of each limit (reputation, prevention, threat-intelligence search, feed, download, sandbox) the key has used. Use for \"How many MetaDefender Cloud requests have I used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_key_usageArguments","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_api_key_remaining":{"post":{"operationId":"get_api_key_remaining","summary":"Show how much of each limit the key has left, and the throttling limit. Use for \"How many MetaDefender Cloud requests do","description":"Show how much of each limit the key has left, and the throttling limit. Use for \"How many MetaDefender Cloud requests do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_key_remainingArguments","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}}}}