
Why Developers Choose CardSight AI
Building card identification from scratch means training machine learning models, licensing card databases, building price scrapers, and handling countless edge cases. CardSight AI handles all the heavy lifting—99.5% accurate identification with CardSight, listing-ready images with CardMagic, a 16M+ trading card catalog, pricing from real sales, and production-grade infrastructure—so you can focus on building features your users love.
// What used to take months:
// ❌ Training ML models
// ❌ Licensing card data
// ❌ Building price scrapers
// ❌ Handling edge cases
// Now takes minutes:
import { CardSightAI } from 'cardsightai';
const client = new CardSightAI({ apiKey: 'your_api_key_here' });
const result = await client.identify.card(imageFile);
// Returns everything you need — every card in the photo:
{
"success": true,
"detections": [{
"confidence": "High",
"card": {
"name": "Ken Griffey Jr. #1 RC",
"year": "1989",
"release": { "name": "Upper Deck" },
"cardNumber": "1"
}
}, {
"confidence": "High",
"card": {
"name": "Charizard ex",
"release": { "name": "Pitch Black" },
"cardNumber": "054",
// Japanese print — detected, not guessed
"fields": [{ "key": "CARD_LANGUAGE", "value": "ja" }]
}
}]
}Complete Feature Set
CardSight Identification
- 99.5% mAP accuracy
- < 400ms response time
- Multi-card detection
- Graded slab labels read: grade, cert number, subgrades
- Slab-only mode in under 100ms
- Card language detection across 8 languages
- Parallel suggestions for baseball (beta)
CardMagic Imaging
- Listing-ready card images from a phone photo
- Crop, deskew, dewarp, and auto-levels
- Up to a 9-card binder page per photo
- Raw cards and graded slabs
- Optional close-ups of all four corners
Comprehensive Catalog
- 16M+ trading cards across baseball, football, basketball, hockey, MMA, soccer, Pokemon TCG, Magic: The Gathering & One Piece TCG
- 1933 to present day
- Every parallel & variation
- Complete metadata
Market Data
- Sold auctions (bid) beside Buy It Now asks (ask)
- Daily, weekly, and monthly time series
- Raw and graded, split by grade
- Bulk pricing for up to 100 cards per call
- PSA population reports (beta)
Collection Management
- Collections, binders, and want lists
- Purchase and sale tracking per card
- Realized gains and portfolio analytics
- Breakdowns by release, year, grade, or player
Developer Experience
- RESTful API design
- OpenAPI 3.1 spec
- SDKs for Node.js, Python, Swift, Java & .NET
- MCP endpoint for AI assistants
- 99.9% uptime SLA
Native SDKs - Pick Your Language
# Node.js
import { CardSightAI } from 'cardsightai';
// Initialize the client
const client = new CardSightAI({ apiKey: 'your_api_key_here' });
// Identify a card from an image
const imageFile = // File, Blob, Buffer, or ArrayBuffer
const result = await client.identify.card(imageFile);
// Access identification results
if (result.data?.success) {
const detection = result.data.detections?.[0];
if (detection?.card) {
console.log(`Card: ${detection.card.name}`);
console.log(`Confidence: ${detection.confidence}`);
}
}# Swift
import UIKit
import CardSightAI
// Initialize the client
let client = try CardSightAI(apiKey: "your_api_key")
// Image from camera or photo library
let image: UIImage = // ... from UIImagePickerController
let result = try await client.identify.card(image)
// Process results
switch result {
case .ok(let response):
switch response.body {
case .json(let identification):
if let detection = identification.detections?.first {
print("Card: \(detection.card?.name ?? "Unknown")")
print("Confidence: \(detection.confidence)")
}
}
}# Python
from cardsightai import CardSightAI
# Initialize the client
client = CardSightAI(api_key='your_api_key_here')
# Identify a card from an image
result = client.identify.identify('path/to/card.jpg')
# Access identification results
if result and result.detections:
detection = result.detections[0]
if detection.card:
print(f"Card: {detection.card.name}")
print(f"Confidence: {detection.confidence}")# Java
import ai.cardsight.CardSightAI;
import java.io.File;
// Initialize the client
CardSightAI client = new CardSightAI("your_api_key_here");
// Identify a card from an image
var response = client.cardIdentification().identifyCard(new File("card.jpg"));
// Process identification results
if (Boolean.TRUE.equals(response.getSuccess())) {
var detection = response.getDetections().get(0);
System.out.println("Card: " + detection.getCard().getName());
System.out.println("Confidence: " + detection.getConfidence());
}# .NET
using CardSightAI;
// Initialize the client
using var client = new CardSightAIClient("your_api_key_here");
// Identify a card from an image
using var stream = File.OpenRead("card.jpg");
var image = new FileParameter(stream, "card.jpg", "image/jpeg");
var result = await client.Api.IdentifyCardAsync(image);
// Access identification results
if (result.Success && result.Detections.Count > 0)
{
var detection = result.Detections[0];
Console.WriteLine($"Card: {detection.Card.Name}");
Console.WriteLine($"Confidence: {detection.Confidence}");
}Built for Developer Experience
CardSight AI is designed with modern development workflows in mind. Clean APIs, comprehensive documentation, and production-ready infrastructure mean you spend less time debugging and more time shipping.
Pricing Built for Builders
Most Popular