For Developers

Ship Card Features This Weekend,
Not Next Quarter

Stop building card identification from scratch. Get 99.5% accurate CardSight identification, CardMagic listing images, a 16M+ trading card catalog, and real market pricing from one API.

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)
See CardSight →

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
See CardMagic →

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
Browse the catalog →

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)
See price data →

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
See collections →

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
Read the docs →

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.

RESTful Design

Intuitive endpoints following REST best practices. Predictable request/response patterns, standard HTTP status codes, and JSON everywhere.

OpenAPI 3.1 Spec

Generate client code in any language, auto-complete in Postman, and always stay in sync with our latest API changes.

Type-Safe SDKs

Full TypeScript support in Node.js, Swift generics, and comprehensive IDE autocomplete. Catch errors at compile time, not runtime.

Pricing Built for Builders

Free

$0

750 API calls/month

Perfect for prototypes and personal projects

  • No credit card required
  • 4 requests per second
  • Full API access
Most Popular

Pro

$14.95/mo

5,000 API calls/month

For hobby projects and small apps

  • Additional calls at $0.0030 base rate
  • 6 requests per second
  • Full API access

Premium

$74.95/mo

30,000 API calls/month

For apps ready to ship

  • Additional calls at $0.0025 (20% tier discount)
  • 8 requests per second
  • Full API access

Ultra

$199.95/mo

100,000 API calls/month

For growing apps with active users

  • Additional calls at $0.0020 (35% tier discount)
  • 10 requests per second
  • Full API access

Enterprise

Custom

Unlimited API calls

For large-scale platforms

  • No rate limit
  • Full-resolution card scans
  • Dedicated infrastructure and SLAs

Start Building in 30 Seconds

No credit card. No sales calls. Just great card data.

Join the many other developers building the future of card collecting

We use cookies to improve your experience and analyze site traffic. By clicking 'Accept', you agree to our use of cookies for analytics.