{ "swagger": "2.0", "info": { "title": "phishingapi", "description": "Easily and directly scan and block phishing security threats in input.", "version": "v1" }, "paths": { "/phishing/detect/file": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform AI phishing detection and classification on an input image or document (PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, HTML, EML, MSG, PNG, JPG, WEBP). Analyzes input content as well as embedded URLs with AI deep learning to detect phishing and other unsafe content. Uses 100-125 API calls depending on model selected.", "consumes": [ "multipart/form-data" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "header", "name": "model", "description": "Model to use; default setting is Advanced", "type": "string", "default": "Advanced" }, { "in": "formData", "name": "inputFile", "type": "file" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionResponse" } } } } }, "/phishing/detect/text-string": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform AI phishing detection against input text string. Returns a clean/not-clean result with confidence level and optional rationale.", "consumes": [ "application/json", "text/json", "application/*+json" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "body", "name": "body", "description": "Phishing detection request", "schema": { "$ref": "#/definitions/PhishingDetectionTextStringRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionTextStringResponse" } } } } }, "/phishing/detect/text-string/advanced": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform advanced AI phishing detection and classification against input text string. Analyzes input content as well as embedded URLs with AI deep learning to detect spam, phishing and other unsafe content. Uses 25-100 API calls depending on model selected.", "consumes": [ "application/json", "text/json", "application/*+json" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "body", "name": "body", "description": "Phishing detection request", "schema": { "$ref": "#/definitions/PhishingDetectionAdvancedRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionAdvancedResponse" } } } } }, "/phishing/detect/file/advanced": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform advanced AI phishing detection and classification on an input image or document (PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, HTML, EML, MSG, PNG, JPG, WEBP). Analyzes input content as well as embedded URLs with AI deep learning to detect phishing, phishing and other unsafe content. Uses 25-100 API calls depending on model selected.", "consumes": [ "multipart/form-data" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "header", "name": "model", "type": "string", "default": "Advanced" }, { "in": "header", "name": "customPolicyId", "type": "string" }, { "in": "formData", "name": "inputFile", "type": "file" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionAdvancedResponse" } } } } }, "/phishing/detect/email/advanced": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform advanced AI phishing detection and classification against input email. Supports email input as a file (PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, HTML, EML, MSG, PNG, JPG, WEBP) or as an HTML body string. Analyzes input email as well as embedded URLs with AI deep learning to detect phishing, phishing and other unsafe content. Uses 25-100 API calls depending on model selected.", "consumes": [ "application/json", "text/json", "application/*+json" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "body", "name": "body", "description": "Phishing detection request", "schema": { "$ref": "#/definitions/AdvancedEmailDetectionRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionEmailAdvancedResponse" } } } } }, "/phishing/detect/url/advanced": { "post": { "tags": [ "PhishingDetection" ], "summary": "Perform advanced AI phishing detection and classification against an input URL. Retrieves the URL content, checks for SSRF threats, and analyzes the page with AI deep learning to detect phishing and other unsafe content. Uses 100-125 API calls.", "consumes": [ "application/json", "text/json", "application/*+json" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "body", "name": "body", "description": "URL phishing detection request", "schema": { "$ref": "#/definitions/AdvancedUrlDetectionRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PhishingDetectionUrlAdvancedResponse" } } } } } }, "definitions": { "AdvancedEmailDetectionRequest": { "description": "Request to detect phishing from an email", "type": "object", "properties": { "FromEmailAddress": { "description": "Email address of the sender", "type": "string" }, "ToEmailAddress": { "description": "Email address of the recipient", "type": "string" }, "Subject": { "description": "Subject of the email", "type": "string" }, "HtmlBody": { "description": "Body of the email in HTML, or text", "type": "string" }, "AllowLowReputationSenders": { "description": "Allow email from low reputation senders and domains", "type": "boolean" }, "AllowSanctioned": { "description": "True to allow sanctioned countries and certain known sanctioned entities, false otherwise (default)", "type": "boolean" }, "CustomPolicyID": { "description": "Apply a Custom Policy for Phishing Enforcement by providing the ID; to create a Custom Policy,\r\nnavigate to the Cloudmersive Management Portal and select Custom Policies.\r\nRequires Managed Instance or Private Cloud", "type": "string" }, "InputEmailFile": { "format": "byte", "description": "Optional: Input email file bytes (EML, PDF, etc.). If not provided, HtmlBody will be used instead.", "type": "string" } }, "additionalProperties": false }, "AdvancedUrlDetectionRequest": { "description": "Request to detect phishing from a URL", "type": "object", "properties": { "Url": { "description": "URL to check for phishing", "type": "string" }, "CustomPolicyID": { "description": "Apply a Custom Policy for Phishing Enforcement by providing the ID; to create a Custom Policy,\r\nnavigate to the Cloudmersive Management Portal and select Custom Policies.\r\nRequires Managed Instance or Private Cloud", "type": "string" } }, "additionalProperties": false }, "PhishingDetectionAdvancedRequest": { "description": "AI advanced phishing detection request", "type": "object", "properties": { "InputString": { "description": "Input text string to detect phishing against", "type": "string", "example": "Hello, world!" }, "TextType": { "description": "Optional: Type of text being analyzed. Must be one of: \"TextMessage\", \"UserMessage\", \"SalesLead\", \"EmailMessage\", \"SupportCase\", \"AppMessage\", \"Other\".", "type": "string", "example": "TextMessage" }, "Model": { "description": "Optional: Specify which AI model to use. Possible choices are Normal and Advanced. Default is Advanced.", "type": "string", "example": "Advanced" }, "AllowUnsolicitedSales": { "description": "Optional: True if unsolicited sales should be allowed, false otherwise. Defaults to true.", "type": "boolean", "example": true }, "AllowPromotionalContent": { "description": "Optional: True if promotional content should be allowed, false otherwise. Defaults to true.", "type": "boolean", "example": true }, "AllowWebUrls": { "description": "Optional: True if web URLs should be allowed in the input text, false otherwise. Defaults to true. When false, input containing URLs (including homoglyph URLs and spaced-out URLs) will be flagged as not clean.", "type": "boolean", "example": true }, "AllowPhoneNumbers": { "description": "Optional: True if phone numbers should be allowed in the input text, false otherwise. Defaults to true. When false, input containing phone numbers (including homoglyph digits and spaced-out or spelled-out workarounds) will be flagged as not clean.", "type": "boolean", "example": true }, "AllowEmailAddresses": { "description": "Optional: True if email addresses should be allowed in the input text, false otherwise. Defaults to true. When false, input containing email addresses (including homoglyph characters and obfuscated workarounds like \"danny at somedomaine [DOT] com\") will be flagged as not clean.", "type": "boolean", "example": true }, "ProvideUrlAnalysis": { "description": "Optional: True to perform deep URL analysis on any URLs detected in the text. When enabled, if the initial AI scan detects URLs, a second AI call enumerates them and each URL is individually analyzed for phishing. Defaults to true.", "type": "boolean", "example": true }, "CustomPolicyID": { "description": "Apply a Custom Policy for Phishing Enforcement by providing the ID; to create a Custom Policy,\r\nnavigate to the Cloudmersive Management Portal and select Custom Policies.\r\nRequires Managed Instance or Private Cloud", "type": "string", "example": "" }, "ProvideAnalysisRationale": { "description": "Optional: Set to true to include an analysis rationale in the response explaining why the content was or was not flagged. Default is true.", "type": "boolean", "example": true }, "FromName": { "description": "Optional: Name of the sender", "type": "string", "example": "John Smith" }, "ToName": { "description": "Optional: Name of the recipient", "type": "string", "example": "Jane Doe" }, "FromPhoneNumber": { "description": "Optional: Phone number of the sender", "type": "string", "example": "+1-555-123-4567" }, "ToPhoneNumber": { "description": "Optional: Phone number of the recipient", "type": "string", "example": "+1-555-987-6543" }, "FromEmailAddress": { "description": "Optional: Email address of the sender", "type": "string", "example": "john.smith@cloudmersive.com" }, "ToEmailAddress": { "description": "Optional: Email address of the recipient", "type": "string", "example": "jane.doe@cloudmersive.com" }, "PriorHistory": { "description": "Optional: Prior context history (e.g. message history) leading up to the current input string. If provided, the AI will take this history into account as context when evaluating the current input.", "type": "array", "items": { "$ref": "#/definitions/PriorHistoryItem" } } }, "additionalProperties": false }, "PhishingDetectionAdvancedResponse": { "description": "Result of detecting phishing using AI", "type": "object", "properties": { "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" }, "ContainsPhishing": { "description": "True if the input text contains a phishing attempt, false otherwise", "type": "boolean" }, "ContainsUnsolicitedSales": { "description": "True if the input text contains unsolicited sales, false otherwise", "type": "boolean" }, "ContainsPromotionalContent": { "description": "True if the input text contains promotional content, false otherwise", "type": "boolean" }, "ContainsWebUrls": { "description": "True if the input text contains web URLs, including homoglyph URLs and spaced-out URL workarounds", "type": "boolean" }, "ContainsPhoneNumbers": { "description": "True if the input text contains phone numbers, including homoglyph digits and spaced-out or spelled-out workarounds", "type": "boolean" }, "ContainsEmailAddresses": { "description": "True if the input text contains email addresses, including homoglyph characters and obfuscated workarounds", "type": "boolean" }, "ConfidenceLevel": { "format": "double", "description": "Confidence level between 0.0 and 1.0 where values over 0.9 indicate high confidence", "type": "number" }, "AnalysisRationale": { "description": "Rationale for why the conclusion was formed", "type": "string" }, "UnsafeUrls": { "description": "URLs detected in the input text that were analyzed and found to be unsafe. Only populated when ProvideUrlAnalysis is true and URLs are detected.", "type": "array", "items": { "$ref": "#/definitions/UnsafeUrlResult" } } }, "additionalProperties": false }, "PhishingDetectionEmailAdvancedResponse": { "description": "Result of detecting phishing using AI", "type": "object", "properties": { "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" }, "PhishingRiskLevel": { "format": "double", "description": "Overall phishing risk level between 0.0 and 1.0", "type": "number" }, "SpamRiskLevel": { "format": "double", "description": "Overall phishing spam level between 0.0 and 1.0", "type": "number" }, "ContainsLowReputationSender": { "description": "True if the input email is from a low reputation sender", "type": "boolean" }, "ContainsPhishing": { "description": "True if the input email contains phishing threat risks, false otherwise", "type": "boolean" }, "ContainsSpam": { "description": "True if the email contains phishing threat risks, false otherwise", "type": "boolean" }, "ContainsUnsolicitedSales": { "description": "True if the input email contains unsolicited sales, false otherwise", "type": "boolean" }, "ContainsPromotionalContent": { "description": "True if the input email contains promotional content, false otherwise", "type": "boolean" }, "ContainsPhishingAttempt": { "description": "True if the input email contains a phishing attempt, false otherwise", "type": "boolean" }, "AnalysisRationale": { "description": "Rationale for why the conclusion was formed", "type": "string" } }, "additionalProperties": false }, "PhishingDetectionResponse": { "description": "Result of detecting phishing using AI", "type": "object", "properties": { "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" } }, "additionalProperties": false }, "PhishingDetectionTextStringRequest": { "description": "AI phishing detection request for basic text string analysis", "type": "object", "properties": { "InputString": { "description": "Input text string to detect phishing against", "type": "string", "example": "Hello, world!" }, "Model": { "description": "Optional: Specify which AI model to use. Possible choices are Normal and Advanced. Default is Advanced.", "type": "string", "example": "Advanced" }, "ProvideAnalysisRationale": { "description": "Optional: Set to true to include an analysis rationale in the response explaining why the content was or was not flagged. Default is true.", "type": "boolean", "example": true } }, "additionalProperties": false }, "PhishingDetectionTextStringResponse": { "description": "Result of detecting phishing using AI for basic text string analysis", "type": "object", "properties": { "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" }, "ConfidenceLevel": { "format": "double", "description": "Confidence level between 0.0 and 1.0 where values over 0.9 indicate high confidence", "type": "number" }, "AnalysisRationale": { "description": "Rationale for why the conclusion was formed", "type": "string" } }, "additionalProperties": false }, "PhishingDetectionUrlAdvancedResponse": { "description": "Result of detecting phishing from a URL using AI", "type": "object", "properties": { "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" }, "PhishingRiskLevel": { "format": "double", "description": "Overall phishing risk level between 0.0 and 1.0", "type": "number" }, "IsSsrfThreat": { "description": "True if the URL is an SSRF threat", "type": "boolean" }, "ContainsPhishing": { "description": "True if the URL contains phishing threat risks, false otherwise", "type": "boolean" }, "ContainsUnsolicitedSales": { "description": "True if the URL contains unsolicited sales, false otherwise", "type": "boolean" }, "ContainsPromotionalContent": { "description": "True if the URL contains promotional content, false otherwise", "type": "boolean" }, "ContainsPhishingAttempt": { "description": "True if the URL contains a phishing attempt, false otherwise", "type": "boolean" }, "AnalysisRationale": { "description": "Rationale for why the conclusion was formed", "type": "string" } }, "additionalProperties": false }, "PriorHistoryItem": { "description": "A single message in the prior conversation history", "type": "object", "properties": { "InputString": { "description": "The text content of this historical message", "type": "string", "example": "Hello, how can I help you today?" }, "FromName": { "description": "Optional: Name of the sender", "type": "string", "example": "John Smith" }, "ToName": { "description": "Optional: Name of the recipient", "type": "string", "example": "Jane Doe" }, "FromPhoneNumber": { "description": "Optional: Phone number of the sender", "type": "string", "example": "+1-555-123-4567" }, "ToPhoneNumber": { "description": "Optional: Phone number of the recipient", "type": "string", "example": "+1-555-987-6543" }, "FromEmailAddress": { "description": "Optional: Email address of the sender", "type": "string", "example": "john.smith@cloudmersive.com" }, "ToEmailAddress": { "description": "Optional: Email address of the recipient", "type": "string", "example": "jane.doe@cloudmersive.com" }, "TrustedParty": { "description": "Optional: True if this message is from a trusted party (such as our own company), false otherwise", "type": "boolean", "example": true } }, "additionalProperties": false }, "UnsafeUrlResult": { "description": "Result of analyzing an individual URL found in text", "type": "object", "properties": { "Url": { "description": "The URL that was detected and analyzed", "type": "string" }, "CleanResult": { "description": "True if the result is not phishing (clean), and false otherwise", "type": "boolean" }, "IsSsrfThreat": { "description": "True if the URL is an SSRF threat", "type": "boolean" }, "ContainsPhishing": { "description": "True if the URL contains phishing threat risks, false otherwise", "type": "boolean" }, "ContainsPhishingAttempt": { "description": "True if the URL contains a phishing attempt, false otherwise", "type": "boolean" } }, "additionalProperties": false } }, "securityDefinitions": { "Apikey": { "type": "apiKey", "name": "Apikey", "in": "header", "description": "Apikey" } }, "security": [ { "Apikey": [ ] } ] }