NAV
shell python

Introduction

Welcome to the Vysion API! You can use our API to access Vysion API endpoints, which can give you Threat Intelligence Information from our database.

We have language bindings in Shell, Python and a MISP module! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authentication

To authorize, use this code:

from vysion import client

c = client.Client(api_key=API_KEY)

# With curl, you can just pass the correct header with each request
curl "https://api.vysion.ai" \
  --header 'Accept: application/json' \
  --header 'x-api-key: API_KEY'

Make sure to replace API_KEY with your API key.

Vysion uses API keys to allow access to the API.

Vysion expects for the API key to be included in all API requests to the server in a header that looks like the following:

x-api-key: API_KEY

Generic search - Darknet

Search a String

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.search("contileaks")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'https://api.vysion.ai/api/v1/search/contileaks?page=1' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 2,
    "hits": [
      {
        "page": {
          "id": "62a9def5933a3165923302d7",
          "url": {
            "protocol": "http",
            "domain": "threatpost.i2p",
            "port": 80,
            "path": "/staff-think-conti-group-legit-employer-podcast/178903/",
            "signature": "cccb793d918a8acda1a22adb334b1046",
            "network": "i2p"
          },
          "parent": "c4272ddfa07abfba43e3d47e81763dce",
          "title": "Staff Think Conti Group Is a Legit Employer – Podcast | Threatpost",
          "language": "en",
          "html": "</p></div><div class=\"c-article__content js-reading-content\"><p>",
          "sha1sum": "833940de276239967a621ee5495907ff5483b7e9",
          "ssdeep": "768:XU3M+el3BIIeX2Ehc1f5D1pePpgwNnSRVSks23GgIIMu1h:uMJTIIeu1fzRck1IIL",
          "date": "2022-06-15T13:30:29.785355",
          "chunk": true
        },
        "email": [],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      },
      {
        "page": {
          "id": "62a9b16e7fbfcde13c740e83",
          "url": {
            "protocol": "http",
            "domain": "7szmmmqckjag4tstn2qv5icavm3gj2654yjl2v25d6oto55m2sykn3yd.onion",
            "port": 80,
            "path": "",
            "signature": "403ee702ef4824ac784b4933a5d45010",
            "network": "tor"
          },
          "parent": "429ce029f8d8649a86c59902123c1898",
          "title": "Index of /",
          "language": "en",
          "html": "href=\"AMD/\">AMD/</a>                                            ",
          "sha1sum": "21983a20edfdb0abbe9d641ae15d82ebbd2b699f",
          "ssdeep": "384:iLZi1vJvtTdfwLKvGjfc7hLtSPxTDRVBdR7ZlJDUkjF77DF+DF1f2omRHzVHU1eK:Ul7qkiJCQ",
          "date": "2022-06-15T10:16:14.372773",
          "chunk": true
        },
        "email": [],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      }
    ]
  }
}

Vysion API allows several types of searches. Searches return the 10 matching hits, if they are more results iteration over pages will need to be done.

HTTP Request

GET http://api.vysion.ai/api/v1/search/{query}

Query Parameters

Name Located in Description Required Type
query path Yes string
page query No integer
network query No string
language query No string
tag  query    No string
gte query No string
lte query No string
exact query If set to true, the search will be an exact_match search. No boolean

Responses

Code Description
200 Successful Response
422 Validation Error

Get a Specific Document

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.get_document("62a708ded9bd72bfe6f3ed05")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'https://api.vysion.ai/api/v1/document/62a708ded9bd72bfe6f3ed05' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 1,
    "hits": [
      {
        "page": {
          "id": "62a708ded9bd72bfe6f3ed05",
          "url": {
            "protocol": "http",
            "domain": "ecdmr42a34qovoph557zotkfvth4fsz56twvwgiylstjup4r5bpc4oad.onion",
            "port": 80,
            "path": "/JhykowedsgX/HJj76xxTY54qWW/",
            "signature": "bda923d6934937e79bee5a21ac3fe4a0",
            "network": "tor"
          },
          "parent": "88c91b676b9b8fa11cd3ffdb01364274",
          "title": "Index of /JhykowedsgX/HJj76xxTY54qWW/",
          "language": "en",
          "html": "<html>\r\n<head><title>Index of /JhykowedsgX/HJj76xxTY54qWW/</title></head>\r\n<body>\r\n<h1>Index of /JhykowedsgX/HJj76xxTY54qWW/</h1><hr><pre><a href=\"../\">../</a>\r\n<a href=\"01_Area_de_ENFERMERIA/\">01_Area_de_ENFERMERIA/</a>                             14-Jan-2022 02:32                   -\r\n<a href=\"02_Area_de_FACULTATIVOS/\">02_Area_de_FACULTATIVOS/</a>                           14-Jan-2022 04:19                   -\r\n<a href=\"10.200.200.15%20Cloud/\">10.200.200.15 Cloud/</a>                               14-Jan-2022 03:13                   -\r\n<a href=\"10.200.200.243%20Share/\">10.200.200.243 Share/</a>                              14-Jan-2022 03:09                   -\r\n<a href=\"10.200.200.46/\">10.200.200.46/</a>                                     14-Jan-2022 03:09                   -\r\n<a href=\"10.200.200.53%20Covid-19-consulta/\">10.200.200.53 Covid-19-consulta/</a>                   14-Jan-2022 03:08                   -\r\n<a href=\"10.200.200.53%20Share/\">10.200.200.53 Share/</a>                               14-Jan-2022 02:44                   -\r\n<a href=\"10.200.200.71%20Covid-19/\">10.200.200.71 Covid-19/</a>                            14-Jan-2022 02:35                   -\r\n<a href=\"AdminPC/\">AdminPC/</a>                                           14-Jan-2022 02:32                   -\r\n<a href=\"Desktop/\">Desktop/</a>                                           14-Jan-2022 02:32                   -\r\n<a href=\"SQL%20DB%2047/\">SQL DB 47/</a>                                         14-Jan-2022 04:10                   -\r\n<a href=\"SQLDB31/\">SQLDB31/</a>                                           14-Jan-2022 02:42                   -\r\n<a href=\"SQLDB33/\">SQLDB33/</a>                                           14-Jan-2022 03:04                   -\r\n</pre><hr></body>\r\n</html>\r\n",
          "sha1sum": "e8c4bd0d171b4efec605759281152a66f31a5f15",
          "ssdeep": "24:AVhEjpF+3++FqQF5FFfLXFgrF7OFVKceyF+rFBFYF7FVFbdFAkKFE+:AVhSD+3+6qQbXgRuN+RzoBvrIE+",
          "date": "2022-06-13T09:52:34.107646",
          "chunk": false
        },
        "email": [],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      }
    ]
  }
}

This endpoint retrieves a specific document from Vysion database.

HTTP Request

GET https://api.vysion.ai/api/v1/document/{id}

URL Parameters

Name Located in Description Required Type
id path Yes string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a Specific URL

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_url("continewsnv5otx5kaoje7krkto2qbu3gtqef22mnr7eaxw3y6ncz3ad.onion")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'https://api.vysion.ai/api/v1/url/continewsnv5otx5kaoje7krkto2qbu3gtqef22mnr7eaxw3y6ncz3ad.onion' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 2,
    "hits": [
      {
        "page": {
          "id": "62a3e93386b18d886dca581f",
          "url": {
            "protocol": "http",
            "domain": "continewsnv5otx5kaoje7krkto2qbu3gtqef22mnr7eaxw3y6ncz3ad.onion",
            "port": 80,
            "path": "/page/13",
            "signature": "ba58edd38ab6eb955eabbdc02e073a60",
            "network": "tor"
          },
          "parent": "f917d219b3f0081961e0cbfb9c1a42d7",
          "title": "CONTI.News",
          "language": "en",
          "html": "",
          "sha1sum": "caade0fba44464fe15987a7ea93d0a38ce7b2217",
          "ssdeep": "384:4y44r/lLuVlKVMu7QF6co30wYO+1Tx2IM:vXWlKq6cohYOeG",
          "date": "2022-06-15T16:03:55.032375",
          "chunk": true
        },
        "email": [
          {
            "value": "[email protected]"
          }
        ],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      },
      {
        "page": {
          "id": "62a80a0afc4ed50cd387572a",
          "url": {
            "protocol": "http",
            "domain": "continewsnv5otx5kaoje7krkto2qbu3gtqef22mnr7eaxw3y6ncz3ad.onion",
            "port": 80,
            "path": "/page/85",
            "signature": "fd5698441f79ce449049e6bb858bb177",
            "network": "tor"
          },
          "parent": "ca43141c0d844c50d9869395d7d215d2",
          "title": "CONTI.News",
          "language": "en",
          "html": "",
          "sha1sum": "7385e0cab3d5a23ea1104911d4804d7dba14df59",
          "ssdeep": "192:4jG6T4GDleT/GDleYWnUdXPW0WZDIizBIM:4y44r/AWUdXPW0WlIizBIM",
          "date": "2022-06-14T04:09:46.377729",
          "chunk": true
        },
        "email": [],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      }
    ]
  }
}

This endpoint search for a specific URL.

HTTP Request

GET https://api.vysion.ai/api/v1/url/{url}

URL Parameters

Name Located in Description Required Type
url path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a Specific Email

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_email("[email protected]")

for hit in result.hits:
    print(hit.page.title)

curl --location --request GET 'https://api.vysion.ai/api/v1/email/[email protected]' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 1,
    "hits": [
      {
        "page": {
          "id": "629d5e5991462d18a4f8965c",
          "url": {
            "protocol": "http",
            "domain": "anonblogd4pcarck2ff6qlseyawjljaatp6wjq6rqpet2wfuoom42kyd.onion",
            "port": 80,
            "path": "/tag/dark-web-business",
            "signature": "762181c029ceb7c1565b0fe33c6962f9",
            "network": "tor"
          },
          "parent": "983da04221a7c2d4a6db3af25b6cb98d",
          "title": "Dark Web Business Tagged Posts - AnonBlogs",
          "language": "en",
          "html": "",
          "sha1sum": "3a7f80804055c4c75fa46a317acc374790f7d88e",
          "ssdeep": "96:+KLuYvVvU0CvzCVL7MNjYJlYBXvmbTP4G:TZd8NzCVL7M6Klvm/4G",
          "date": "2022-06-15T09:55:32.609233",
          "chunk": true
        },
        "email": [
          {
            "value": "[email protected]"
          }
        ],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": []
      }
    ]
  }
}

This endpoint search for a specific email.

HTTP Request

GET https://api.vysion.ai/api/v1/email/{email}

URL Parameters

Name Located in Description Required Type
email path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Generic search - Telegram

Search a String

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.search_telegram("crown")

for hit in result.hits:
    print(hit.message)
curl --location --request GET 'https://api.vysion.ai/api/v1/search-telegram/crown' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
    "data": {
        "total": 1,
        "hits": [
            {
                "userId": -1001742919890,
                "username": "snatch_team",
                "channelId": -1001742919890,
                "messageId": 584,
                "message": "While Queen Elizabeth II, Prince Charles, Prince William and Prince George are fairly easy to place in the rather complicated British royal family tree, where do royals like Princess Eugenie, Zara Tindall and Prince Edward come into the picture? The most famous family in Britain is a notoriously complicated one, with a few divorces, second marriages and name repetitions.\n\nTo make matters even more complicated, the British royal line of succession is also pretty complex. Until fairly recently, the line of succession followed a system of male preference primogeniture — where princes took precedence over their older sisters. However, the 2013 Succession to the Crown Act amended the system so that males no longer take precedence over their older sisters. This is why, although Kate Middleton and Prince William’s third child is a boy, Princess Charlotte will remain fourth in line to the throne and won’t be bumped down to fifth place.\n\n#RoyalFamily #Succession",
                "channelTitle": "S_N_ATCH",
                "languages": [
                    {
                        "language": "en",
                        "probability": 0.9999973418664887
                    }
                ],
                "sha1sum": "ec8963fe0382557d30958a7d6fbeef3d67313ca8",
                "sha256sum": "99ac6d0788352de97ffbb1743613e8a4dd6de419b43637a047484c8b6b379c0b",
                "media": "...",
                "detectionDate": "2024-03-29T14:56:39.742717"
            }
        ]
    }
}

Vysion API allows you to perform various types of searches in our Telegram message log. Searches return the 10 matching hits, if they are more results iteration over pages will need to be done.

HTTP Request

GET http://api.vysion.ai/api/v1/search-telegram/{query}

Query Parameters

Name Located in Description Required Type
query path Yes string
page query No integer
gte query No string
lte query No string
username query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a chat

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.get_chat_telegram("-1001742919890")

for hit in result.hits:
    print(hit.page.title)

curl --location --request GET 'https://api.vysion.ai/api/v1/telegram/chat/-1001742919890' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

This endpoint returns the messages of a chat sorted by time, given the channel identifier.

HTTP Request

GET https://api.vysion.ai/api/v1/telegram/chat/{channelId}

URL Parameters

Name Located in Description Required Type
channelId path Yes integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a specific message

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.get_message_telegram("-1001742919890_584")

print(result)

curl --location --request GET 'https://api.vysion.ai/api/v1/telegram/message/-1001742919890_584' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

This endpoint search for a specific message, it includes detailed information about the message and a link that returns possible media content (images, videos, documents...).

HTTP Request

GET https://api.vysion.ai/api/v1/telegram/message/{id}

URL Parameters

Name Located in Description Required Type
id query id parameter unifies the channel identifier with the id of the message specific to that channel. For example: "channelId_messageId". Yes integer

Responses

Code Description
200 Successful Response
422 Validation Error

Tag Search

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.search("protonmail.com", tag="electronic-forum")

print("Total of results:" + str(result.total))

for hit in result.hits:
    print(hit.page.title)
    print(hit.page.html)
    print(hit.page.url)
    print(hit.page.date)
curl --location --request GET 'api.vysion.ai/api/v1/search/protonmail?tag=electronic-forum' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 1,
    "hits": [
      {
        "page": {
          "id": "649e90ab4ca05303ad2461d9",
          "url": {
            "protocol": "https",
            "domain": "www.szenebox.org",
            "port": 443,
            "path": "/register.php",
            "signature": "796b967b-7474-5d9e-b542-2b6f7a3123bd",
            "network": "clearnet"
          },
          "parent": "a3523d37-9239-55ff-bbb4-f9200977567b",
          "title": "Bei SzeneBox ... im Mittelpunkt der Szene! registrieren",
          "language": "de",
          "html": "<br/>Adressen von @t-online.de, <b>ProtonMail</b> sind gesperrt!",
          "sha1sum": "177a1a4585fef339ca09b181a58f5677944c4039",
          "sha256sum": null,
          "ssdeep": "384:svL6X7P1aT5LGA+S/zxxBKkDP3qg20udusCNvaEndKiR:svL6X7P1JrShKkjqlssCNvXRR",
          "date": "2023-06-30T08:22:03.246000",
          "chunk": true
        },
        "tag": [
          {
            "namespace": "infoleak",
            "predicate": "source",
            "value": "electronic-forum"
          },
          {
            "namespace": "dark-web",
            "predicate": "topic",
            "value": "mixer"
          }
        ],
        "email": [],
        "paste": [],
        "skype": [],
        "telegram": [
          {
            "value": "https://t.me/Szene"
          }
        ],
        "whatsapp": [],
        "bitcoin_address": [],
        "polkadot_address": [],
        "ethereum_address": [],
        "monero_address": [],
        "ripple_address": [],
        "zcash_address": []
      }
    ]
  }
}

Most of the content is categorized so you can filter it using MISP taxonomy values https://www.misp-project.org/taxonomies.html#_dark_web

Rigth now the following dark-web topics are available:

namespace predicate value
dark-web topic credit-card
dark-web topic drugs-narcotics
dark-web topic electronics
dark-web topic escrow
dark-web topic finance
dark-web topic finance-crypto
dark-web topic gambling
dark-web topic hacking
dark-web topic identification-credentials
dark-web topic intellectual-property-copyright-materials
dark-web topic mixer
dark-web topic pornography-adult
dark-web topic pornography-child-exploitation
dark-web topic pornography-illicit-or-illegal
dark-web topic search-engine-index
dark-web topic softwares
dark-web topic weapons
dark-web topic ransomware-group

Digital Assets Search

Search for a Specific BTC Wallet

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_btc("114qvtyucvKtiNXy9UL3eYx6HPYmadxeM4")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'api.vysion.ai/api/v1/btc/114qvtyucvKtiNXy9UL3eYx6HPYmadxeM4' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 1,
    "hits": [
      {
        "page": {
          "id": "62d5aee6417ebf36864db58f",
          "url": {
            "protocol": "http",
            "domain": "megapack35mc54kkhuxnyl6itmsr2ionxhz4ibxzedqrau3uuwozgaad.onion",
            "port": 80,
            "path": "/buy-trial/",
            "signature": "5800a2f5666e123548d5dda55cbb443e",
            "network": "tor"
          },
          "parent": "f7c2029f2f4a6bac548607d216ef1257",
          "title": "Billing",
          "language": "en",
          "html": "",
          "sha1sum": "8c932ebdf3406f57e7ee608934f6e50c8e98a625",
          "sha256sum": null,
          "ssdeep": "192:RQzUMJ5SwN2nfkdKMLEc9m+q9A7e597EcDcFi0szOgqidUjtSSCmhqEXiD88uZPj:RSUwN2nfsLLyO27OWUA68EztQ8",
          "date": "2022-07-19T00:39:08.740958",
          "chunk": true
        },
        "tag": [],
        "email": [
          {
            "value": "624659696@megapack35mc54kkhuxnyl6itmsr2ionxhz4ibxzedqrau3uuwozgaad.onion"
          }
        ],
        "paste": [],
        "skype": [],
        "telegram": [],
        "whatsapp": [],
        "bitcoin_address": [
          {
            "value": "114qvtyucvKtiNXy9UL3eYx6HPYmadxeM4"
          }
        ],
        "polkadot_address": [],
        "ethereum_address": [],
        "monero_address": [],
        "ripple_address": [],
        "zcash_address": []
      }
    ]
  }
}

This endpoint search for a bitcoin(BTC) wallet address.

HTTP Request

GET https://api.vysion.ai/api/v1/btc/{btc_wallet}

URL Parameters

Name Located in Description Required Type
btc_wallet path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a Specific ETH Wallet

This endpoint search for a ethereum(ETH) wallet address.

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_eth("0x71C7656EC7ab88b098defB751B7401B5f6d8976F")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'api.vysion.ai/api/v1/eth/0x71C7656EC7ab88b098defB751B7401B5f6d8976F' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

HTTP Request

GET https://api.vysion.ai/api/v1/eth/{eth_wallet}

URL Parameters

Name Located in Description Required Type
eth_wallet path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a Specific XMR Wallet

This endpoint search for a monero (XMR) wallet address.

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_xmr("888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'api.vysion.ai/api/v1/xmr/888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

HTTP Request

GET https://api.vysion.ai/api/v1/xmr/{xmr_wallet}

URL Parameters

Name Located in Description Required Type
xmr_wallet path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Search for a Specific DOT Wallet

This endpoint search for a polkadot (DOT) wallet address.

from vysion import client

c = client.Client(api_key=API_KEY)

result = c.find_dot("5F3sa2TJAWMqDhXG6jhV4N8ko9SxwGy8TpaNS1repo5EYjQX")

for hit in result.hits:
    print(hit.page.title)
curl --location --request GET 'api.vysion.ai/api/v1/xmr/5F3sa2TJAWMqDhXG6jhV4N8ko9SxwGy8TpaNS1repo5EYjQX' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

HTTP Request

GET https://api.vysion.ai/api/v1/dot/{dot_wallet}

URL Parameters

Name Located in Description Required Type
dot_wallet path Yes string
page query No integer
gte query No string
lte query No string

Responses

Code Description
200 Successful Response
422 Validation Error

Feeds

Ransomware feed

TO BE  IMPLEMENTED
curl --location --request GET 'https://api.vysion.ai/api/v1/feed/ransomware?batch=2022-06-20' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
  "data": {
    "total": 2,
    "hits": [
      {
        "id": "b635166ebc78ca1eb669e7da5f480a85deae6d3da4c0aaee54c2d063ce269ffd",
        "company": "hdhopwood.com",
        "company_link": "http://hdhopwood.com",
        "link": "http://lockbitapt5x4zkjbcqmz6frdhecqqgadevyiwqxukksspnlidyvd7qd.onion/post/b3dK3xkQwndbiFf86330845b5064d",
        "group": "LockBit",
        "date": "2022-09-27T23:09:14",
        "info": "H D Hopwood and Co\nwww.hdhopwood.com\n\n3 Carifta Ave\nBox 165\nKingston\nKingston 11\nJamaica\n\n+876 923 8481\n\nH.D. Hopwood & Company Limited is a leading distribution company in Jamaica, having been in existence for over 80 years representing popular international brands of pharmaceutical and fast moving consumer goods (FMCG). The company is also a member of the Caribbean conglomerate, Neal & Massy Holding, with businesses in retailing and distribution, energy, manufacturing, finance, automotive and automotive and industrial equipment.",
        "country": "US"
      },
      {
        "id": "71e8cd03c69a72c13fde35d5245411045453c034d65166c65e821f925b016688",
        "company": "Southwell, Inc.",
        "company_link": "http://mysouthwell.com",
        "link": "http://hiveleakdbtnp76ulyhi52eag6c6tyc3xw7ez7iqy6wc34gd2nekazyd.onion/#MmRKnzHcAwb_com",
        "group": "Hive",
        "date": "2022-09-27T22:17:30",
        "info": "About Southwell",
        "country": "US"
      }
    ]
  }
}

This endpoint obtain the latest ransomware victims detected by Vysion.

HTTP Request

GET https://api.vysion.ai/api/v1/feed/ransomware

URL Parameters

Name Located in Description Required Type
batch query No integer
page query No integer

Responses

Code Description
200 Successful Response
422 Validation Error

Telegram feed

import kittn

api = kittn.authorize('meowmeowmeow')
api.kittens.delete(2)
curl --location --request GET 'https://api.vysion.ai/api/v1/feed/telegram?days=1' \
--header 'Accept: application/json' \
--header 'x-api-key: API_KEY'

The above command returns JSON structured like this:

{
    "total": {
        "value": 1217,
        "relation": "eq"
    },
    "max_score": null,
    "hits": [
        {
            "_index": "vysion-062022",
            "_id": "62b0592b65d20386429039c0",
            "_score": null,
            "_source": {
                "protocol": "http",
                "domain": "bunkerapkk334hqopst6ur63mrjs4ls25z22x4telrvo5yn3c3llk3ad.onion",
                "port": 80,
                "path": "/comercio/101",

This endpoint obtain the latest Telegram channels discovered by Vysion.

HTTP Request

GET https://api.vysion.ai/api/v1/feed/telegram

URL Parameters

Name Located in Description Required Type
days query No integer
page query No integer

Responses

Code Description
200 Successful Response
422 Validation Error

Errors

The Vysion API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The document requested is hidden for administrators only.
404 Not Found -- The specified document could not be found.
405 Method Not Allowed -- You tried to access a document with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The document requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many documents! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.