
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@cardog/api
Advanced tools
Official Cardog API client library for vehicle data, market analysis, and VIN decoding
npm install @cardog/api
# or
pnpm add @cardog/api
# or
yarn add @cardog/api
For React hooks, also install:
npm install @tanstack/react-query
import { CardogClient } from "@cardog/api";
const client = new CardogClient({
apiKey: "your-api-key", // Get one at https://cardog.app
});
// Decode a VIN
const vehicle = await client.vin.decode("1HGCM82633A123456");
console.log(vehicle.make, vehicle.model, vehicle.year);
// Honda Accord 2003
// Get market analysis
const market = await client.market.overview("Toyota", "Camry", 2022);
console.log(market.medianPrice, market.totalListings);
// Search listings
const listings = await client.listings.search({
makes: ["Toyota"],
year: { min: 2020, max: 2024 },
price: { max: 50000 },
});
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { CardogClient } from "@cardog/api";
import { createHooks } from "@cardog/api/react";
const queryClient = new QueryClient();
const client = new CardogClient({ apiKey: "your-api-key" });
const { useVinDecode, useMarketOverview, useListingsSearch } = createHooks(client);
function App() {
return (
<QueryClientProvider client={queryClient}>
<VehicleLookup />
</QueryClientProvider>
);
}
function VehicleLookup() {
const { data, isLoading, error } = useVinDecode("1HGCM82633A123456");
if (isLoading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return (
<div>
{data?.make} {data?.model} ({data?.year})
</div>
);
}
// Decode a VIN
const vehicle = await client.vin.decode("1HGCM82633A123456");
// Decode from image (base64)
const result = await client.vin.image(base64Image);
// Market overview for a specific vehicle
const overview = await client.market.overview("Toyota", "Camry", 2022);
// Price distribution
const pricing = await client.market.pricing("Honda", "Civic", 2021);
// Geographic breakdown
const geography = await client.market.geography("Ford", "F-150", 2023);
// Market trends over time
const trends = await client.market.trends("Tesla", "Model 3", 2022, "month");
// Listing market position
const position = await client.market.position("listing-id");
// Overall market pulse
const pulse = await client.market.pulse({
priceRangeMin: 20000,
priceRangeMax: 50000,
});
// Search listings with filters
const results = await client.listings.search({
makes: ["Toyota", "Honda"],
models: { Toyota: ["Camry", "Corolla"] },
year: { min: 2020, max: 2024 },
price: { min: 15000, max: 40000 },
odometer: { max: 50000 },
bodyStyles: ["Sedan", "SUV"],
fuelTypes: ["Gasoline", "Hybrid"],
});
// Get listing count
const count = await client.listings.count({ makes: ["BMW"] });
// Get facets for filtering UI
const facets = await client.listings.facets({ makes: ["Mercedes-Benz"] });
// Get specific listing
const listing = await client.listings.getById("listing-id");
// Search recalls
const recalls = await client.recalls.search({
country: "us", // or "ca" for Canada
makes: ["Toyota"],
models: ["RAV4"],
year: { min: 2019, max: 2023 },
});
// Get vehicle lineup for a make
const lineup = await client.research.lineup("Toyota");
// Get model year details
const modelYear = await client.research.modelYear("Toyota", "Camry", 2023);
// Get vehicle images
const images = await client.research.images("Toyota", "Camry", 2023);
// Get available colors
const colors = await client.research.colors("Honda", "Civic", 2024);
// Find gas stations
const gasStations = await client.fuel.search({
lat: 43.6532,
lng: -79.3832,
radius: 10,
fuelType: "REGULAR",
});
// Find EV charging stations
const chargers = await client.charging.search({
lat: 43.6532,
lng: -79.3832,
radius: 25,
minPower: 50, // kW
});
// Search dealer/seller locations
const dealers = await client.locations.search({
lat: 43.6532,
lng: -79.3832,
radius: 50,
});
// Get seller details
const seller = await client.locations.getById("seller-id");
// Search EPA fuel economy data
const efficiency = await client.efficiency.search({
make: "Toyota",
model: "Prius",
year: 2023,
});
// Search vehicle complaints
const complaints = await client.complaints.search({
make: "Ford",
model: "Explorer",
year: { min: 2020, max: 2023 },
});
import { CardogClient, APIError } from "@cardog/api";
try {
const data = await client.vin.decode("INVALID");
} catch (error) {
if (error instanceof APIError) {
console.log(error.status); // HTTP status code
console.log(error.code); // Error code (e.g., "INVALID_VIN")
console.log(error.message); // Human-readable message
console.log(error.data); // Additional error details
}
}
For manual React Query integration:
import { queryKeys } from "@cardog/api";
// Use in custom queries
const { data } = useQuery({
queryKey: queryKeys.vin.decode("1HGCM82633A123456"),
queryFn: () => client.vin.decode("1HGCM82633A123456"),
});
// Available key factories
queryKeys.vin.decode(vin)
queryKeys.market.overview(make, model, year)
queryKeys.listings.search(params)
queryKeys.recalls.search(params)
// ... and more
const client = new CardogClient({
apiKey: "your-api-key",
baseUrl: "https://api.cardog.app", // Default
});
// Update config at runtime
client.setConfig({
apiKey: "new-api-key",
});
| Plan | Requests/mo | Price | Best For |
|---|---|---|---|
| Free | 100 | $0 | Testing & development |
| Pro | 10,000 | $29/mo | Small apps & side projects |
| Business | 100,000 | $199/mo | Production applications |
| Enterprise | Unlimited | Custom | High-volume integrations |
All plans include access to all API endpoints. View full pricing →
@cardog/corgi - Offline VIN decoder (no API key needed)MIT License - see LICENSE for details.
FAQs
Official Cardog API client library for vehicle data, market analysis, and VIN decoding
We found that @cardog/api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.