Workflows
Getting Started
Hackers use phishing URLs to obtain and misuse sensitive data such as your identity, passwords or banking information. The first step of hackers who reach you via e-mail is to send you a trustworthy e-mail. The hackers who gain your trust are waiting for you to enter the data that you need to use your personal information such as password reset, authentication, and to redirect you to these fake web pages they created in Step 2, so that your information is stolen by the hackers.
Phishup uses advanced real-time machine learning and image processing so it detects malicious URLs at the millisecond level. It uses thousands of feature vectors gathered from the latest attack trends and starts tracking from the moment any domain name is purchased.
Our application, which has over 1 million URL scans around the world, is an artificial intelligence-based protection application that works in high quality and provides accurate results within seconds and proven reliability. Our application, which has a 30% higher success rate in local attacks compared to its global competitors, has a false positive rate of less than 1%.
Changelog
No change for now.
Purpose
In 2019 alone, people who fell into this trap were scammed over $58 million. Today, 91% of hacking attempts are made up of such phishing attacks. Phishup.co, which was established in 2019 and has been developing for years with artificial intelligence and deep learning techniques by DIATTACK company, aims to provide high protection to its customers against identity attacks with its real-time URL security system.
Prevent phishing attacks with our artificial intelligence-based protection system
- Faster threat detection
- Detect unknown malware and zero days
- Protect targeted attacks
Stop Phishing Attacks with PhishUp
- Quick response and fix
- Detect Counterfeit sites
- Zero-Day Phishing
- Sensetive Data
Brand Protection
- Protect your staff, your brand and your revenue with AI
- Easy recognising fake websites and domain names
Email Gateway Integration.
- Examine reputation of email sender & Analyzes email content.
- Protect your critical communications.
Services
Phishup provides its customers with rich content services. We tried to describe our services below.
Phishing Email & Email Gateway Integration
- The hackers who reach you via mail try to lure you to the web pages they have created with remarkable content. Thanks to our artificial intelligence, we ensure you are protected 24/7 in real time from malware, threats that target only you, or zero days attacks.
- The hackers who reach you via mail try to lure you to the web pages they have created with remarkable content. Thanks to our artificial intelligence, we ensure you are protected 24/7 in real time from malware, threats that target only you, or zero days attacks.
Counterfeit URL
- With our Counterfeit URL service, we enable you to detect fake web pages and domains immediately.
URL catergory APIs
- When analyzing global threats to data security, we ensure that each URL is classified into a category based on various information.
Image Screenshot APIs
- We enable you to detect famous object in screenshot with deep learning power.
Service Model
Integration with global security products | - | API |
Value-added service cooperation with telecom operators | Saas | API |
Restful API request service | SaaS | API |
Internet filtering with Internet service providers | - | API |
End use security | Saas | - |
How It Works
If you wish, you can get detailed query results by entering the url you want to query from our homepage.
You can access the ip address.
You can see the certificate information.
You can query the age of the url.
You can display url category.
You can access information such as DOM code.
If you wish, you can learn how to access and start using the phishup api by browsing the API Registry section.
Api Registry
Apart from an interface, we also provided API support to our customers that they can integrate into their projects. You can start integrating simple command lines requesting the Phishup API into your project with any of 6 different programming languages on the right side of the page. Do not forget to use the api key we have defined for you after registering on our website!
Single Url Query
curl --location --request POST 'http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"Url": "http://sample-url.com/"
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"Url": "http://sample-url.com/"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import requests
import json
url = "http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY"
payload = json.dumps({
"Url": "http://sample-url.com/"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"Url": "http://sample-url.com/"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""Url"": ""http://sample-url.com/""" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"Url\": \"http://sample-url.com/\"\n}");
Request request = new Request.Builder()
.url("http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
This is the response we should get
{
"Status": {
"Result": "Success",
"Message": ""
},
"Result": {
"IncomingUrl": "http://sample-url.com/",
"TargetHostname": "http://sample-url.com/",
"IsRouted": false,
"PhishUpStatus": "Clean",
"PhishUpScore": "1.0"
}
}
By integrating the single url query into your project, you can clearly find out whether the URL you are querying is a phishing trap or a clean url.
Request Information
Category | Value |
---|---|
Http Request |
POST |
URL |
http://apiv2.phishup.co/sherlock/investigate?apikey=YOUR_API_KEY |
Input Shema for Request
Category | Value |
---|---|
"Url" : |
"http://sample-url.com/" |
Output Shema of Request
Field | Meaning |
---|---|
Url |
Enter the url you want to query |
Detail Url Query
curl --location --request POST 'http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"Url": "hurriyet.com.tr"
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"Url": "hurriyet.com.tr"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import requests
import json
url = "http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY"
payload = json.dumps({
"Url": "hurriyet.com.tr"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"Url": "hurriyet.com.tr"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""Url"": ""hurriyet.com.tr""" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"Url\": \"hurriyet.com.tr\"\n}");
Request request = new Request.Builder()
.url("http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
This is the response we should get
{
"Status": {
"Result": "Success",
"Message": ""
},
"Result": {
"IncomingUrl": "http://sample-url.com/",
"TargetHostname": "http://sample-url.com/",
"IsRouted": false,
"PhishUpStatus": "Clean",
"PhishUpScore": "1.0",
"ScoreDomain": 78,
"ContentSimilarity": 0,
"Backlink": "",
"CountryCode": "SG",
"RegistrarName": "",
"Host": "157.240.238.35",
"CertificateIssuer": "C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA",
"CertificateStart": "2021-12-06T00:00:00Z",
"CertificateEnd": "2022-03-06T23:59:59Z",
"DOM":"<html lang=\"en\" id=\"facebook\" class=\"\"><head><meta charset=\"utf-8\"><meta name=\"referrer\" content=\"origin-when-crossorigin\" id=\"meta_referrer\"><script...",
"Screenshot": "iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAgAElEQVR4AezB3W8U6b4v9u+vqtrvbfC7G2PjN8C8GHjMAMMsZu8VJdpRbiZS..."
}
}
Returns the detailed information on the phishup site of the entered url.
Request Information
Category | Value |
---|---|
Http Request |
POST |
URL |
http://apiv2.phishup.co/sherlock/watson?apikey=YOUR_API_KEY |
Input Shema for Request
Category | Value |
---|---|
"Url" : |
"http://sample-url.com/" |
Output Shema of Request
Field | Meaning |
---|---|
Url |
Enter the url you want to query |
Bulk Url Query
curl --location --request POST 'http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"Urls": ["http://sample-url.com/", "http://sample-url.com/", "http://sample-url.com/"]
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"Urls": ["http://sample-url.com/", "http://sample-url.com/", "http://sample-url.com/"]
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import requests
import json
url = "http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY"
payload = json.dumps({
"Urls": [
"http://sample-url.com/",
"http://sample-url.com/",
"http://sample-url.com/"
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"Urls": [
"http://sample-url.com/",
"http://sample-url.com/",
"http://sample-url.com/"
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""Urls"": [""http://sample-url.com/"", ""http://sample-url.com/"", ""http://sample-url.com/""]" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"Urls\": [\"http://sample-url.com/\", \"http://sample-url.com/\", \"http://sample-url.com/\"]\n}");
Request request = new Request.Builder()
.url("http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
This is the response we should get
{
"Status": {
"Result": "Success",
"Message": "Success/Total: 3/3"
},
"Result": [
{
"IncomingUrl": "http://sample-url.com/",
"TargetHostname": "http://sample-url.com/",
"IsRouted": false,
"PhishUpStatus": "Clean",
"PhishUpScore": "1.0"
},
{
"IncomingUrl": "http://sample-url.com/",
"TargetHostname": "http://sample-url.com/",
"IsRouted": false,
"PhishUpStatus": "Clean",
"PhishUpScore": "1.0"
},
{
"IncomingUrl": "http://sample-url.com/",
"TargetHostname": "m.vk.com",
"IsRouted": true,
"PhishUpStatus": "Phish",
"PhishUpScore": "1.0"
}
]
}
Instead of making your queries one by one, you can create a list of your URLs and perform a collective scan. In this way, you can see whether each URL you enter is clean or a phishing trap.
Request Information
Category | Value |
---|---|
Http Request |
POST |
URL |
http://apiv2.phishup.co/sherlock/bulk?apikey=YOUR_API_KEY |
Input Shema for Request
Category | Value |
---|---|
"Urls" : |
["http://sample-url.com/", "http://sample-url.com/", "http://sample-url.com/"] |
Output Shema of Request
Field | Meaning |
---|---|
Urls |
Enter the urls you want to query |
Error
If the identity is not authenticated, 'bulk' query return this response.
{ "Status": { "Result": "Error", "Message": "Authentication Error" }, "Result": [] }
If the identity is not authenticated, 'watson' query return this response.
{ "Status": { "Result": "Error", "Message": "Authentication Error" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "", "ScoreDomain": 0, "ContentSimilarity": 0, "Backlink": "", "CountryCode": "", "RegistrarName": "", "Host": "", "CertificateIssuer": "", "CertificateStart": "", "CertificateEnd": "", "DOM": "", "Screenshot": "" } }
If the identity is not authenticated, 'investigate' query return this response.
{ "Status": { "Result": "Error", "Message": "Authentication Error" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "" } }
If you have exceeded the usage limit, 'bulk' query return this response.
{ "Status": { "Result": "Error", "Message": "Request Limit Exceeded" }, "Result": [] }
If you have exceeded the usage limit, 'watson' query return this response.
{ "Status": { "Result": "Error", "Message": "Request Limit Exceeded" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "", "ScoreDomain": 0, "ContentSimilarity": 0, "Backlink": "", "CountryCode": "", "RegistrarName": "", "Host": "", "CertificateIssuer": "", "CertificateStart": "", "CertificateEnd": "", "DOM": "", "Screenshot": "" } }
If you have exceeded the usage limit, 'investigate' query return this response.
{ "Status": { "Result": "Error", "Message": "Request Limit Exceeded" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "" } }
{ "Status": { "Result": "Error", "Message": "Not Enough Request Limit " }, "Result": [] }
If your subscription is ended, 'bulk' query return this response.
{ "Status": { "Result": "Error", "Message": "Subscription Expired" }, "Result": [] }
If your subscription is ended, 'watson' query return this response.
{ "Status": { "Result": "Error", "Message": "Subscription Expired" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "", "ScoreDomain": 0, "ContentSimilarity": 0, "Backlink": "", "CountryCode": "", "RegistrarName": "", "Host": "", "CertificateIssuer": "", "CertificateStart": "", "CertificateEnd": "", "DOM": "", "Screenshot": "" } }
If your subscription is ended, 'investigate' query return this response.
{ "Status": { "Result": "Error", "Message": "Subscription Expired" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "" } }
If your post body is invalid, 'bulk' query return this response.
{ "Status": { "Result": "Error", "Message": "Invalid URLs" }, "Result": [] }
If your post body is invalid, 'watson' query return this response.
{ "Status": { "Result": "Error", "Message": "Invalid URL" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "", "ScoreDomain": 0, "ContentSimilarity": 0, "Backlink": "", "CountryCode": "", "RegistrarName": "", "Host": "", "CertificateIssuer": "", "CertificateStart": "", "CertificateEnd": "", "DOM": "", "Screenshot": "" } }
If your post body is invalid, 'investigate' query return this response.
{ "Status": { "Result": "Error", "Message": "Invalid URL" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "" } }
If your post body is empty, 'bulk' query return this response.
{ "Status": { "Result": "Error", "Message": "Bad Post Body" }, "Result": [] }
If your post body is empty, 'watson' query return this response.
{ "Status": { "Result": "Error", "Message": "Bad Post Body" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "", "ScoreDomain": 0, "ContentSimilarity": 0, "Backlink": "", "CountryCode": "", "RegistrarName": "", "Host": "", "CertificateIssuer": "", "CertificateStart": "", "CertificateEnd": "", "DOM": "", "Screenshot": "" } }
If your post body is empty, 'investigate' query return this response.
{ "Status": { "Result": "Error", "Message": "Bad Post Body" }, "Result": { "IncomingUrl": "", "TargetHostname": "", "IsRouted": false, "PhishUpStatus": "", "PhishUpScore": "" } }
Portal
Quick Started
We have created an interface that our users can use easily. In this section, we will talk about the content of our website in order to help you.
Register
By clicking on this section, you can register by entering your name, phone number, e-mail address and password.
Login
You can log in to our portal by entering your e-mail address and password from the user data you have created.
Contact
If you have any requests, problems or questions, this is the tab where you can access our contact and location information. If you wish, you can contact us immediately by filling out the form below.
Blog
The tab where you can access valuable articles that we share with our users.
Pricing
It is the pricing tab for Phishup. Phishup has defined a monthly total of 250 url scans for you, our valued users, where you can make a maximum of 25 scans per day. If you wish, you can choose the most suitable package for you from this tab and set your monthly limit according to you.
Dashboard
After logging in, you can see dashboard, profile settings, API docs options on the left side of the page.
- Dashboard tab
- You can see the Api key information and usage limits we have created for you.
Profile Settings tab
- This is the tab you can use to change your Account Information.
API Docs tab
- This is the tab that contains the documentation we provide for you to learn more about Phishup.