encar is the official Python client for Carapis Encar API. Use it to access, search, and analyze real-time Korean used car data from Encar.com via a powerful REST API. Supports vehicle listings, details, manufacturers, models, and more.
Project description
Encar – Official Python Client for Encar API
Encar is the official Python client for the Carapis Encar API, providing seamless programmatic access to real-time Korean used car data from Encar.com. With the encar library, you can easily query, filter, and analyze vehicle listings, manufacturers, models, and more – all powered by the robust Encar API provided by Carapis.com.
Explore a live catalog powered by this Encar API: Carapis Catalog
Features
- Easy access to real-time Encar.com vehicle data via Carapis Encar API
- List, filter, and retrieve detailed car listings using the Encar API
- Fetch manufacturer, model, and vehicle details programmatically
- Supports advanced search queries for the Encar API
- Free tier available for testing the Encar API (up to 1,000 vehicles)
Installation
Install the encar library using pip. Dependencies are handled automatically.
pip install encar
Configuration
-
API Key: The client requires a Carapis Encar API key for full access. Get yours at Carapis.com Pricing. Retrieve this key from a secure location, such as environment variables.
Without an API key, Encar API access is limited to the latest 1,000 vehicles (Free Tier).
How to use Encar API (Python Client)
Initialize the client and make Encar API calls.
import os
from encar import CarapisClient, CarapisClientError
# Retrieve the Encar API key from environment variables
API_KEY = os.getenv("CARAPIS_API_KEY")
if not API_KEY:
print("Error: CARAPIS_API_KEY environment variable not set. Exiting.")
# Full Encar API access requires a valid key.
exit()
try:
# Initialize Encar API client
client = CarapisClient(api_key=API_KEY)
print("Carapis Encar API Client initialized successfully.")
# --- Proceed with Encar API calls below ---
except CarapisClientError as e:
print(f"Encar API Client Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
Encar API Python Usage Examples
Below are examples for querying the Encar API using this client.
List Vehicles via Encar API
Retrieve a list of vehicles with filtering.
try:
print("\n--- Querying Encar API for Vehicles ---")
# Fetch vehicle data via Encar API
vehicles = client.list_vehicles(
limit=5,
min_year=2021,
fuel_type='gasoline',
max_mileage=50000,
ordering='-created_at'
)
print("Vehicles Found via Encar API:")
if vehicles and vehicles.get('results'):
for v in vehicles['results']:
print(f"- ID: {v.get('vehicle_id')}, Model: {v.get('model_name', 'N/A')}, Price: {v.get('price')}")
else:
print("No vehicles found.")
except CarapisClientError as e:
print(f"Encar API Error listing vehicles: {e}")
Get Vehicle Details via Encar API
Retrieve details for a specific vehicle.
try:
vehicle_id_to_get = 12345678 # Replace with a valid ID
print(f"\n--- Getting Vehicle Details from Encar API (ID: {vehicle_id_to_get}) ---")
# Fetch specific vehicle details via Encar API
vehicle_details = client.get_vehicle(vehicle_id=vehicle_id_to_get)
print("Vehicle Details Received from Encar API:")
print(vehicle_details)
except CarapisClientError as e:
print(f"Encar API Error getting vehicle {vehicle_id_to_get}: {e}")
List Manufacturers via Encar API
Retrieve a list of vehicle manufacturers.
try:
print("\n--- Listing Manufacturers from Encar API ---")
# Fetch manufacturers via Encar API
manufacturers = client.list_manufacturers(country='KR', limit=10)
print("Manufacturers Found via Encar API:")
if manufacturers and manufacturers.get('results'):
for mfr in manufacturers['results']:
print(f"- Code: {mfr.get('code')}, Name: {mfr.get('name')}")
else:
print("No manufacturers found.")
except CarapisClientError as e:
print(f"Encar API Error listing manufacturers: {e}")
Get Manufacturer Details via Encar API
Retrieve details for a specific manufacturer by its code.
try:
manufacturer_code = '101' # Example: Hyundai
print(f"\n--- Getting Manufacturer Details from Encar API (Code: {manufacturer_code}) ---")
manufacturer_info = client.get_manufacturer(code=manufacturer_code)
print("Manufacturer Details Received from Encar API:")
print(manufacturer_info)
except CarapisClientError as e:
print(f"Encar API Error getting manufacturer {manufacturer_code}: {e}")
Get Manufacturer Stats via Encar API
Retrieve overall statistics about manufacturers.
try:
print("\n--- Getting Manufacturer Stats from Encar API ---")
mfr_stats = client.get_manufacturer_stats()
print("Manufacturer Statistics Received from Encar API:")
print(mfr_stats)
except CarapisClientError as e:
print(f"Encar API Error getting manufacturer stats: {e}")
List Model Groups via Encar API
Retrieve a list of model groups, optionally filtered.
try:
manufacturer_code = '101' # Example: Hyundai
print(f"\n--- Listing Model Groups from Encar API (Manufacturer: {manufacturer_code}) ---")
# Fetch model groups via Encar API
model_groups = client.list_model_groups(manufacturer=manufacturer_code, search='Avante', limit=5)
print("Model Groups Found via Encar API:")
if model_groups and model_groups.get('results'):
for mg in model_groups['results']:
print(f"- Code: {mg.get('code')}, Name: {mg.get('name')}")
else:
print("No model groups found.")
except CarapisClientError as e:
print(f"Encar API Error listing model groups: {e}")
Get Model Group Details via Encar API
Retrieve details for a specific model group by its code.
try:
model_group_code = '1101' # Example: Avante
print(f"\n--- Getting Model Group Details from Encar API (Code: {model_group_code}) ---")
# Fetch model group details via Encar API
model_group_info = client.get_model_group(code=model_group_code)
print("Model Group Details Received from Encar API:")
print(model_group_info)
except CarapisClientError as e:
print(f"Encar API Error getting model group {model_group_code}: {e}")
List Models via Encar API
Retrieve a list of specific vehicle models, optionally filtered.
try:
model_group_code = '1101' # Example: Avante
print(f"\n--- Listing Models from Encar API (Model Group: {model_group_code}) ---")
# Fetch models via Encar API
models = client.list_models(model_group=model_group_code, search='CN7', limit=5)
print("Models Found via Encar API:")
if models and models.get('results'):
for mdl in models['results']:
print(f"- Code: {mdl.get('code')}, Name: {mdl.get('name')}")
else:
print("No models found.")
except CarapisClientError as e:
print(f"Encar API Error listing models: {e}")
Get Model Details via Encar API
Retrieve details for a specific vehicle model by its code.
try:
model_code = '21101' # Example: Specific Avante model
print(f"\n--- Getting Model Details from Encar API (Code: {model_code}) ---")
# Fetch model details via Encar API
model_info = client.get_model(code=model_code)
print("Model Details Received from Encar API:")
print(model_info)
except CarapisClientError as e:
print(f"Encar API Error getting model {model_code}: {e}")
List Dealers via Encar API
Retrieve a list of dealers.
try:
print("\n--- Listing Dealers from Encar API ---")
# Fetch dealers via Encar API
dealers = client.list_dealers(limit=5, ordering='name')
print("Dealers Found via Encar API:")
if dealers and dealers.get('results'):
for dealer in dealers['results']:
print(f"- User ID: {dealer.get('user_id')}, Name: {dealer.get('name')}, Type: {dealer.get('type')}")
else:
print("No dealers found.")
except CarapisClientError as e:
print(f"Encar API Error listing dealers: {e}")
Get Dealer Details via Encar API
Retrieve details for a specific dealer by User ID.
try:
dealer_user_id = 'some_dealer_id' # Replace with a valid User ID
print(f"\n--- Getting Dealer Details from Encar API (User ID: {dealer_user_id}) ---")
# Fetch dealer details via Encar API
dealer_details = client.get_dealer(user_id=dealer_user_id)
print("Dealer Details Received from Encar API:")
print(dealer_details)
except CarapisClientError as e:
print(f"Encar API Error getting dealer {dealer_user_id}: {e}")
List Diagnosis Centers via Encar API
Retrieve a list of diagnosis centers.
try:
dealer_user_id = 'some_dealer_id' # Optionally filter by dealer ID
print(f"\n--- Listing Diagnosis Centers from Encar API (Dealer: {dealer_user_id or 'Any'}) ---")
# Fetch diagnosis centers via Encar API
centers = client.list_diagnosis_centers(dealer=dealer_user_id, limit=5)
print("Diagnosis Centers Found via Encar API:")
if centers and centers.get('results'):
for center in centers['results']:
print(f"- Code: {center.get('code')}, Name: {center.get('name')}, Dealer: {center.get('dealer')}")
else:
print("No diagnosis centers found.")
except CarapisClientError as e:
print(f"Encar API Error listing diagnosis centers: {e}")
Get Diagnosis Center Details via Encar API
Retrieve details for a specific diagnosis center by its code.
try:
center_code = 'DC001' # Replace with a valid Center Code
print(f"\n--- Getting Diagnosis Center Details from Encar API (Code: {center_code}) ---")
# Fetch center details via Encar API
center_details = client.get_diagnosis_center(code=center_code)
print("Diagnosis Center Details Received from Encar API:")
print(center_details)
except CarapisClientError as e:
print(f"Encar API Error getting diagnosis center {center_code}: {e}")
Get Vehicle Enums via Encar API
Retrieve possible enum values used in vehicle data (e.g., for FuelType, Color).
try:
print("\n--- Getting Vehicle Enums from Encar API ---")
# Fetch enums via Encar API
enums = client.get_vehicle_enums()
print("Available Enums Received from Encar API:")
if enums:
print(f"- Fuel Types: {list(enums.get('FuelType', {}).keys())}")
print(f"- Colors: {list(enums.get('Color', {}).keys())}")
# Add more as needed
else:
print("Could not retrieve enums.")
except CarapisClientError as e:
print(f"Encar API Error getting enums: {e}")
Get Vehicle Stats via Encar API
Retrieve overall statistics about vehicles in the database.
try:
print("\n--- Getting Vehicle Stats from Encar API ---")
# Fetch stats via Encar API
vehicle_stats = client.get_vehicle_stats()
print("Vehicle Statistics Received from Encar API:")
print(vehicle_stats)
except CarapisClientError as e:
print(f"Encar API Error getting stats: {e}")
(Refer to the Encar API documentation for full details on all methods and parameters.)
Direct Encar API Access & Documentation
Interact with the Encar API directly using curl or other HTTP clients.
Full Encar API Documentation: https://carapis.com/docs
Example curl Requests for Encar API:
-
With API Key (Full Encar API Access):
# Query Encar API for vehicles curl -X 'GET' \ 'https://api.carapis.com/api/encar/v2/vehicles/?limit=5&min_year=2021' \ -H 'accept: application/json' \ -H 'Authorization: ApiKey YOUR_API_KEY_UUID'
-
Without API Key (Free Tier Encar API Access - 1,000 Record Limit):
# Limited query to Encar API curl -X 'GET' \ 'https://api.carapis.com/api/encar/v2/vehicles/?limit=5' \ -H 'accept: application/json'
See Carapis Pricing Plans for Encar API access tiers.
Support & Contact
- Website: https://carapis.com
- Telegram: t.me/markinmatrix
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file encar-0.1.2.tar.gz.
File metadata
- Download URL: encar-0.1.2.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.7 Darwin/23.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2071bf591b40904689585df55c862e83bc637ecbb20dc79f65d899f404a6df34
|
|
| MD5 |
696323b485f46c55bc1637b9b5f86e7b
|
|
| BLAKE2b-256 |
4742df8d934b7007816677261526581bdb50600d04bae7a42d5abacbaa3e4a52
|
File details
Details for the file encar-0.1.2-py3-none-any.whl.
File metadata
- Download URL: encar-0.1.2-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.7 Darwin/23.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcf332b82bae36ac7b1afd6db993f4367984dfefe6248e700943a179f0d33e3a
|
|
| MD5 |
21a53ca76c06f366ee8be6519c9585fb
|
|
| BLAKE2b-256 |
7b0abdda9992b86640bae414308e208086688def1a84d1d208ca9b71f2f6ce55
|