spectracost
AI cost observability SDK for Rust. Wrap your OpenAI or Anthropic calls with
one method and every request is tracked automatically.
cargo add spectracost tokio --features=tokio/full
OpenAI
use spectracost::{Spectracost, Options, openai::ChatRequest};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let sc = Spectracost::new(Options {
api_key: "sprc_...".into(),
openai_api_key: Some("sk-...".into()),
team: Some("search".into()),
..Default::default()
});
let response = sc.openai_chat(ChatRequest {
model: "gpt-4o-mini".into(),
messages: vec![
("user".into(), "Say hello!".into()).into(),
],
max_tokens: Some(50),
}).await?;
println!("{}", response.first_message().unwrap_or_default());
Ok(())
}
Anthropic
use spectracost::{Spectracost, Options, anthropic::MessagesRequest};
let sc = Spectracost::new(Options {
api_key: "sprc_...".into(),
anthropic_api_key: Some("sk-ant-...".into()),
..Default::default()
});
let response = sc.anthropic_messages(MessagesRequest {
model: "claude-haiku-4-5-20251001".into(),
max_tokens: 50,
messages: vec![
("user".into(), "Say hello!".into()).into(),
],
}).await?;
License
MIT