Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marirs/vt3-rs
Virustotal api v3
https://github.com/marirs/vt3-rs
api rust rust-crate rust-lang rust-library v3 virustotal
Last synced: about 9 hours ago
JSON representation
Virustotal api v3
- Host: GitHub
- URL: https://github.com/marirs/vt3-rs
- Owner: marirs
- License: mit
- Created: 2021-06-13T03:21:45.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T03:27:14.000Z (6 months ago)
- Last Synced: 2024-09-17T12:38:57.034Z (8 days ago)
- Topics: api, rust, rust-crate, rust-lang, rust-library, v3, virustotal
- Language: Rust
- Homepage:
- Size: 79.1 KB
- Stars: 6
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VirusTotal Api v3 (Public & Enterprise)
![Crates.io](https://img.shields.io/crates/v/vt3)
[![Documentation](https://docs.rs/vt3/badge.svg)](https://docs.rs/vt3)
![docs.rs](https://img.shields.io/docsrs/vt3/latest)
[![Build Status](https://travis-ci.com/marirs/vt3-rs.svg?branch=main)](https://travis-ci.com/marirs/vt3-rs)
[![GitHub license](https://img.shields.io/github/license/marirs/vt3-rs)](https://github.com/marirs/vt3-rs/blob/main/LICENSE)VT3 provides an easy api interface to use VirusTotal v3 REST endpoints,
including those exclusive to VirusTotal Enterprise. See below for list of available API's:- Public API
- IP
- Get IP information
- Get Comments
- Add Comments
- List Votes
- Add Votes
- List Ip related IDs/Objects
- Domain
- Get Domain information
- File
- Get File information
- Upload File to Scan
- File ReScan
- Url
- Get Url information
- Get Url information by ID
- Url Scan
- Url ReScan
- Enterprise - `features = ["enterprise"]`
- Users & Groups
- Get User information
- Delete a User
- API Usage
- Overall Quotas
- Get Group information
- Get all Group Members
- Get Group API Usage
- Hunting (Enterprise) - `features = ["hunting"]`
- Live hunt
- Get Live hunt Rulesets
- Get Ruleset by ruleset id
- Create Ruleset
- Delete Ruleset
- Update Ruleset
- Retro hunt
- Get Retrohunt jobs
- Get Retrohunt job by job id
- Create a Retrohunt job
- Delete a Retrohunt job
- Abort a Retrohunt job
- Feeds (Enterprise) - `features = ["feeds"]`
- File feeds
- Get file feed batch
- Get file behaviours feed batch
- Get file feed batch hourly
- Get file behaviours feed batch hourly
- Url feeds
- Get Url feed batch
- Get Url feed batch hourly## Available `feature` flags
- enterprise
- feeds
- hunting## Usage
- Cargo.toml
```toml
[dependencies]
vt3 = "0.7.3"
```- to enable enterprise features
```toml
[dependencies]
vt3 = { version = "0.7.3", features = ["enterprise"] }
```- and then: to get `ip information`
```rust
use vt3::VtClient;fn main() {
let api_key = match std::env::args()
.skip(1)
.next()
.ok_or_else(|| "Please provide the api key!")
{
Ok(api_key) => api_key,
Err(e) => {
println!("{:?}", e);
std::process::exit(1)
}
};
let ip_address = "5.2.69.42";let res = VtClient::new(&api_key).ip_info(ip_address);
match res {
Ok(report) => println!("{:#?}", report),
Err(e) => println!("Error: {}", e.to_string()),
}
}
```
- Providing a `user agent` for the client```rust
use vt3::VtClient;fn main() {
let api_key = match std::env::args()
.skip(1)
.next()
.ok_or_else(|| "Please provide the api key!")
{
Ok(api_key) => api_key,
Err(e) => {
println!("{:?}", e);
std::process::exit(1)
}
};
let ip_address = "5.2.69.42";let res = VtClient::new(&api_key)
.user_agent("Chrome for Windows")
.ip_info(ip_address);
match res {
Ok(report) => println!("{:#?}", report),
Err(e) => println!("Error: {}", e.to_string()),
}
}
```## Examples
To run the examples - `Universal API Endpoints`:
- Domain info: `cargo run --example domain_info `
- IP info: `cargo run --example ip_info `
- URL info: `cargo run --example url_info `
- URL info by id: `cargo run --example url_info_by_id `
- URL rescan: `cargo run --example url_rescan `
- File info: `cargo run --example file_info `
- File scan: `cargo run --example file_scan `
- File rescan: `cargo run --example file_rescan `
- Get latest comments: `cargo run --example get_latest_comments `
- Get comment by id: `cargo run --example get_comment `To run the examples - `Enterprise API Endpoints`:
- Get user information: `cargo run --example user_info --features="enterprise" `
- Delete a user: `cargo run --example delete_user --features="enterprise" `
- Get Api usage info: `cargo run --example api_usage --features="enterprise" `
- Get overall quotas for user: `cargo run --example overall_quotas --features="enterprise" `
- Get group information: `cargo run --example group_info --features="enterprise" `
- Get group api usage: `cargo run --example group_api_usage --features="enterprise" `
- Get group members: `cargo run --example group_members --features="enterprise" `
To run the examples - `Hunting API Endpoint`:
- Get Livehunt rulesets: `cargo run --example livehunt_get_rulesets --features="hunting" `
- Get Retrohunt jobs: `cargo run --example retrohunt_jobs --features="hunting" `## VT Developer reference
- https://developers.virustotal.com/v3.0/reference
---
License: MIT