Skip to content

Documents API

Vysion integrates multiple threat intelligence sources, accessible via the document endpoints, enabling comprehensive search capabilities across various networks and data types.

Search through the Vysion database using keyword queries with support for advanced operators.

GET/api/v2/document/search

The search supports “Google Dork” style syntax with the following operators:

  • + signifies AND operation
  • | signifies OR operation
  • - negates a single token
  • " wraps tokens to signify a phrase search
  • * at the end of a term signifies a prefix query
  • () signify precedence
  • ~N after a word signifies edit distance (fuzziness)
  • ~N after a phrase signifies slop amount
NameTypeRequiredDescription
qstringYesSearch query string
gtestringNoDate filter (≥). Formats: Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss
ltestringNoDate filter (≤). Formats: Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss
pageintegerNoPage number for pagination
page_sizeintegerNoResults per page (default: 10)
networkstringNoFilter by network: tor, i2p, or clearnet
languagestringNoFilter by language code
include_tagstringNoInclude documents with specific tag
exclude_tagstringNoExclude documents with specific tag
safe_searchboolNoExclude documents with pornography tag (Default: False)
Terminal window
curl "https://api.vysion.ai/api/v2/document/search?q=contileaks&page=1" \
--header 'Accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'
{
"data": {
"total": 150,
"hits": [
{
"page": {
"id": "62bdc0968e4892b70411895c",
"url": {
"url": "http://example.onion/page",
"networkProtocol": "http",
"domainName": "example.onion",
"port": 80,
"path": "/page",
"signature": "88fef6f3-fdb6-486d-87e1-c7ae0750df94",
"network": "tor"
},
"foundAt": "2022-06-30T10:15:30Z",
"pageTitle": "Sample Page",
"language": "en",
"html": "<html>...</html>",
"text": "Sample page content...",
"sha1sum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"sha256sum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"ssdeep": "3:a+JrJL:aJrJL",
"detectionDate": "2022-06-30T10:15:30Z",
"chunk": false
},
"tag": [
{
"namespace": "misp",
"predicate": "threat-actor",
"value": "conti"
}
],
"email": [
{
"value": "contact@example.com"
}
],
"bitcoin_address": [
{
"value": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2"
}
]
}
]
},
"error": null
}

Retrieve a specific document by its unique identifier.

GET/api/v2/document/{id}
NameTypeRequiredDescription
idstringYesDocument ID
Terminal window
curl "https://api.vysion.ai/api/v2/document/62bdc0968e4892b70411895c" \
--header 'Accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'

Fetch documents from the Vysion database based on their URLs. Returns multiple captures if available.

GET/api/v2/document/url/{url}
NameTypeRequiredDescription
urlstringYesURL to search for (URL-encoded)
gtestringNoDate filter (≥)
ltestringNoDate filter (≤)
pageintegerNoPage number
page_sizeintegerNoResults per page (default: 10)
Terminal window
# URL must be URL-encoded
curl "https://api.vysion.ai/api/v2/document/url/example.onion%2Fpage?page=1" \
--header 'Accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'

Search for documents that contain specific tags.

GET/api/v2/document/tag/{tag}
NameTypeRequiredDescription
tagstringYesTag to search for
gtestringNoDate filter (≥)
ltestringNoDate filter (≤)
pageintegerNoPage number
page_sizeintegerNoResults per page (default: 10)

Search for documents containing specific cryptocurrency wallet addresses.

GET/api/v2/document/wallet/{wallet}
NameTypeRequiredDescription
walletstringYesWallet address to search for
gtestringNoDate filter (≥)
ltestringNoDate filter (≤)
pageintegerNoPage number
page_sizeintegerNoResults per page (default: 10)

Search for documents containing specific email addresses.

GET/api/v2/document/email/{email}
NameTypeRequiredDescription
emailstringYesEmail address to search for
gtestringNoDate filter (≥)
ltestringNoDate filter (≤)
pageintegerNoPage number
page_sizeintegerNoResults per page (default: 10)

Search for documents containing specific phone numbers.

GET/api/v2/document/phone/{phone}
NameTypeRequiredDescription
phonestringYesPhone number to search for
gtestringNoDate filter (≥)
ltestringNoDate filter (≤)
pageintegerNoPage number
page_sizeintegerNoResults per page (default: 10)
StatusMeaningDescription
200OKSuccessful response
401UnauthorizedInvalid or missing API key
422Unprocessable EntityValidation error
429Too Many RequestsRate limit exceeded