{"id":"0ab3de77-6303-4485-850d-74c99fa95012","entityType":"agent","slug":"clawhub-carsxe-carsxe","name":"CarsXE","canonicalUrl":"https://www.xpersona.co/agent/clawhub-carsxe-carsxe","canonicalPath":"/agent/clawhub-carsxe-carsxe","generatedAt":"2026-10-10T11:00:02.911Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":null},"description":"Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup, market value, vehicle history, safety recalls (VIN, year/make/model, or batch), lien/theft checks, OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, YMM options, ownership (Enterprise), and plate/VIN OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model, or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"any recalls on a 2023 Toyota Camry\", \"check recalls for this list of VINs\", \"what Toyota models were sold in 2023\", \"who is the registered owner\", \"vehicle history report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query. Always use this skill when working with CarsXE APIs — do not guess API behavior without it.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17905cc5nn8xyvtp2qza8kb158773gz:carsxe","sourceUrl":"https://clawhub.ai/carsxe/carsxe","homepage":"https://clawhub.ai/carsxe/skills/carsxe","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/carsxe/carsxe","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/carsxe/skills/carsxe","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"CarsXE technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":null},"stars":null,"forks":null,"downloads":1562,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:25.679Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T08:20:25.703Z","lastCrawledAt":"2026-10-10T08:20:25.679Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T08:20:25.679Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-09-10T17:29:03.295Z","changelog":"Add recalls-ymm, recalls-batch, ymm-options, and ownership.","fileCount":10,"zipByteSize":11945},{"version":"1.1.7","createdAt":"2026-05-22T11:10:42.414Z","changelog":"carsxe 1.1.7 - No functional changes; documentation only update. - Example API requests in the SKILL.md have been refreshed with more realistic image URLs. - No code or interface updates were made to this version.","fileCount":4,"zipByteSize":7660},{"version":"1.1.6","createdAt":"2026-05-21T15:57:13.977Z","changelog":"carsxe v1.1.6 - No changes detected in this release. - Functionality, documentation, and configuration remain unchanged from the previous version.","fileCount":3,"zipByteSize":6251},{"version":"1.1.5","createdAt":"2026-05-21T10:52:40.401Z","changelog":"- Changed environment variable for API key from CARSXE_API_KEY to CARSXE_KEY throughout the documentation. - Updated instructions and code examples to use the new CARSXE_KEY variable. - Adjusted the error handling message for missing API key to refer to CARSXE_KEY. - No functional or endpoint changes otherwise.","fileCount":3,"zipByteSize":6618},{"version":"1.1.4","createdAt":"2026-05-20T19:50:18.492Z","changelog":"carsxe 1.1.4 changelog - Clarified API key usage: explained access in Node.js, PowerShell, and bash/zsh. - Updated instructions for missing/invalid API key to use `openclaw config set` and restart guidance. - Removed YAML `env` section in favor of plain-text API key handling instructions. - Minor language improvements for request building and error handling. - Example API requests now use generic `$CARSXE_API_KEY` placeholders instead of templated variables.","fileCount":3,"zipByteSize":6623},{"version":"1.1.3","createdAt":"2026-05-19T18:19:47.892Z","changelog":"- API key usage in all documentation updated from CARSXE_API_KEY to {{env.CARSXE_API_KEY}}, reflecting a template variable format. - All sample API URLs and authentication instructions now use the new {{env.CARSXE_API_KEY}} syntax. - No changes to skill functionality or endpoints; update is documentation-only.","fileCount":3,"zipByteSize":6540},{"version":"1.1.2","createdAt":"2026-05-19T17:59:12.577Z","changelog":"- Minor formatting and Markdown improvements to SKILL.md for consistency and readability. - No changes to functionality, endpoints, or environment variable requirements.","fileCount":3,"zipByteSize":6527},{"version":"1.1.1","createdAt":"2026-05-19T17:55:45.723Z","changelog":"**carsxe v1.1.1 Changelog** - Updated API endpoint paths and parameters for improved accuracy (e.g., new versions: `/v2/platedecoder`, `/v1/recalls`, `/v1/lien-theft`). - **All API requests now require appending `&source=openclaw`**. - Clarified authentication instructions and added a dedicated API key validation endpoint. - Expanded and detailed Quick API Map, including more optional parameters and all supported endpoints. - Updated examples and workflow to match the latest CarsXE API structure and best practices.","fileCount":3,"zipByteSize":6525}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17905cc5nn8xyvtp2qza8kb158773gz:carsxe","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17905cc5nn8xyvtp2qza8kb158773gz:carsxe` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/carsxe/carsxe before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T11:00:02.907Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-carsxe-carsxe/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":null},"readme":"Skill: CarsXE\n\nOwner: carsxe\n\nSummary: Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup, market value, vehicle history, safety recalls (VIN, year/make/model, or batch), lien/theft checks, OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, YMM options, ownership (Enterprise), and plate/VIN OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model, or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"any recalls on a 2023 Toyota Camry\", \"check recalls for this list of VINs\", \"what Toyota models were sold in 2023\", \"who is the registered owner\", \"vehicle history report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query. Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\n\nTags: latest:1.2.0\n\nVersion history:\n\nv1.2.0 | 2026-09-10T17:29:03.295Z | user\n\nAdd recalls-ymm, recalls-batch, ymm-options, and ownership.\n\nv1.1.7 | 2026-05-22T11:10:42.414Z | user\n\ncarsxe 1.1.7\n\n- No functional changes; documentation only update.\n- Example API requests in the SKILL.md have been refreshed with more realistic image URLs.\n- No code or interface updates were made to this version.\n\nv1.1.6 | 2026-05-21T15:57:13.977Z | user\n\ncarsxe v1.1.6\n\n- No changes detected in this release.\n- Functionality, documentation, and configuration remain unchanged from the previous version.\n\nv1.1.5 | 2026-05-21T10:52:40.401Z | user\n\n- Changed environment variable for API key from CARSXE_API_KEY to CARSXE_KEY throughout the documentation.\n- Updated instructions and code examples to use the new CARSXE_KEY variable.\n- Adjusted the error handling message for missing API key to refer to CARSXE_KEY.\n- No functional or endpoint changes otherwise.\n\nv1.1.4 | 2026-05-20T19:50:18.492Z | user\n\ncarsxe 1.1.4 changelog\n\n- Clarified API key usage: explained access in Node.js, PowerShell, and bash/zsh.\n- Updated instructions for missing/invalid API key to use `openclaw config set` and restart guidance.\n- Removed YAML `env` section in favor of plain-text API key handling instructions.\n- Minor language improvements for request building and error handling.\n- Example API requests now use generic `$CARSXE_API_KEY` placeholders instead of templated variables.\n\nv1.1.3 | 2026-05-19T18:19:47.892Z | user\n\n- API key usage in all documentation updated from CARSXE_API_KEY to {{env.CARSXE_API_KEY}}, reflecting a template variable format.\n- All sample API URLs and authentication instructions now use the new {{env.CARSXE_API_KEY}} syntax.\n- No changes to skill functionality or endpoints; update is documentation-only.\n\nv1.1.2 | 2026-05-19T17:59:12.577Z | user\n\n- Minor formatting and Markdown improvements to SKILL.md for consistency and readability.\n- No changes to functionality, endpoints, or environment variable requirements.\n\nv1.1.1 | 2026-05-19T17:55:45.723Z | auto\n\n**carsxe v1.1.1 Changelog**\n\n- Updated API endpoint paths and parameters for improved accuracy (e.g., new versions: `/v2/platedecoder`, `/v1/recalls`, `/v1/lien-theft`).\n- **All API requests now require appending `&source=openclaw`**.\n- Clarified authentication instructions and added a dedicated API key validation endpoint.\n- Expanded and detailed Quick API Map, including more optional parameters and all supported endpoints.\n- Updated examples and workflow to match the latest CarsXE API structure and best practices.\n\nv1.1.0 | 2026-05-19T13:04:41.605Z | user\n\n- Switched API key handling to use the CARSXE_API_KEY environment variable, referenced as {{env.CARSXE_API_KEY}} in requests.\n- Updated documentation to instruct users on setting the API key via environment variable, not manual input.\n- Changed the market value endpoint to /v2/marketvalue and clarified its optional parameters.\n- Improved error handling instructions to refer to the env var and updated authentication/help text throughout.\n- No code changes; documentation and workflow updates only.\n\nv1.0.3 | 2026-03-31T15:26:42.687Z | user\n\n- Initial release of CarsXE skill on Clawhub.\n- Added metadata file (.clawhub/origin.json) to support Clawhub integration.\n- No changes to user-facing functionality or documentation.\n\nv1.0.2 | 2026-03-31T15:24:04.769Z | auto\n\n- Added _meta.json file for skill metadata.  \n- No changes to existing functionality or workflow.  \n- All API docs and usage instructions remain the same.\n\nv1.0.1 | 2026-03-24T20:13:50.887Z | user\n\n- No code or documentation changes detected in this version.\n- Functionality and behavior remain the same as the previous release.\n\nv1.0.0 | 2026-03-24T20:12:50.480Z | user\n\nInitial release — all 11 CarsXE APIs\n\nArchive index:\n\nArchive v1.2.0: 10 files, 11945 bytes\n\nFiles: LICENSE (1084b), README.md (3112b), references/api-reference.md (2718b), references/ownership.md (1778b), references/recalls-batch.md (1660b), references/recalls-ymm.md (914b), references/ymm-options.md (1162b), skill-card.md (2685b), SKILL.md (11590b), _meta.json (125b)\n\nFile v1.2.0:SKILL.md\n\n---\r\nname: carsxe\r\ndescription: >\r\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\r\n  market value, vehicle history, safety recalls (VIN, year/make/model, or batch), lien/theft checks,\r\n  OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model\r\n  lookups, YMM options, ownership (Enterprise), and plate/VIN OCR from images. Use this skill any\r\n  time the user asks about a vehicle by VIN, plate, make/model, or OBD code. Also triggers for:\r\n  \"what's this car worth\", \"check for recalls\", \"any recalls on a 2023 Toyota Camry\", \"check recalls\r\n  for this list of VINs\", \"what Toyota models were sold in 2023\", \"who is the registered owner\",\r\n  \"vehicle history report\", \"decode this plate\", \"what does check engine code X mean\", or any\r\n  automotive data query. Always use this skill when working with CarsXE APIs — do not guess API\r\n  behavior without it.\r\nversion: 1.2.0\r\nhomepage: https://api.carsxe.com/docs\r\n---\r\n\r\n# CarsXE Skill\r\n\r\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\r\n\r\nDetailed parameter notes for newer endpoints live in `{baseDir}/references/`.\r\n\r\n## API Key\r\n\r\nThe API key is injected as the `CARSXE_KEY` environment variable. Read it before\r\nmaking any request:\r\n\r\n- Use `process.env.CARSXE_KEY` in Node.js\r\n- Use `$env:CARSXE_KEY` in PowerShell\r\n- Use `$CARSXE_KEY` in bash/zsh\r\n\r\nIf `CARSXE_KEY` is empty or missing, tell the user to run:\r\n\r\n```\r\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\r\n```\r\n\r\nThen restart the gateway.\r\n\r\nAlways append `&source=openclaw` to every request.\r\n\r\n---\r\n\r\n## Quick API Map\r\n\r\n| User intent                    | Endpoint                                      | Method | Key Parameters                                                                                             |\r\n| ------------------------------ | --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\r\n| Decode a VIN / get specs       | `GET /specs`                                  | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\r\n| Decode a license plate         | `GET /v2/platedecoder`                        | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\r\n| Market value                   | `GET /v2/marketvalue`                         | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\r\n| Vehicle history report         | `GET /history`                                | GET    | `vin`                                                                                                      |\r\n| Vehicle images                 | `GET /images`                                 | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\r\n| Safety recalls (VIN)           | `GET /v1/recalls`                             | GET    | `vin`                                                                                                      |\r\n| Safety recalls (YMM)           | `GET /v1/recalls-ymm`                         | GET    | `year`, `make`, `model`                                                                                    |\r\n| Safety recalls (batch)         | `POST /v1/recalls-batch/submit`               | POST   | JSON body: `vins` and/or `csv` / `csvUrl`; optional `webhookUrl`                                           |\r\n| Safety recalls (batch)         | `GET /v1/recalls-batch/status\\|results\\|download` | GET | `batchId`                                                                                               |\r\n| Lien & theft check             | `GET /v1/lien-theft`                          | GET    | `vin`                                                                                                      |\r\n| International VIN              | `GET /v1/international-vin-decoder`           | GET    | `vin`                                                                                                      |\r\n| Year/Make/Model lookup         | `GET /v1/ymm`                                 | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\r\n| YMM options (dropdowns)        | `GET /v1/ymm-options`                         | GET    | optional: `dimension`, `year`, `make`, `model`, `trim`                                                     |\r\n| Ownership (Enterprise)         | `GET /v1/ownership/vin\\|person\\|address\\|zip` | GET    | VIN / name+address+zip / address+zip / zip; optional `include`                                             |\r\n| OBD code diagnosis             | `GET /obdcodesdecoder`                        | GET    | `code`                                                                                                     |\r\n| VIN OCR from image             | `POST /v1/vinocr`                             | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\r\n| Plate OCR from image           | `POST /platerecognition`                      | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\r\n| Validate API key               | `GET /v1/auth/validate`                       | GET    | `key`                                                                                                      |\r\n\r\nDo **not** call `usPlateDecoder` or `/v1/ownership/phone`.\r\n\r\n---\r\n\r\n## Workflow\r\n\r\n### 1. Build the request URL\r\n\r\nReplace `$CARSXE_KEY` with the actual value of the `CARSXE_KEY` environment variable.\r\n\r\n### 2. Choose the right endpoint\r\n\r\n- VIN provided → `/specs` first, chain to other endpoints as needed\r\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\r\n- Make/Model/Year only → `/v1/ymm` for specs, `/v1/ymm-options` for dropdowns / \"what years was X sold\", `/images` for photos\r\n- Recalls by VIN → `/v1/recalls`; by year/make/model (no VIN) → `/v1/recalls-ymm`; many VINs / fleet / CSV → `/v1/recalls-batch/*`\r\n- Owner or resident lookup (Enterprise) → `/v1/ownership/vin`, `/person`, `/address`, or `/zip`\r\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\r\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\r\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\r\n\r\n### 3. Chain requests when helpful\r\n\r\nExample: *\"Is this plate stolen and does it have open recalls?\"*\r\n\r\n1. `GET /v2/platedecoder` → extract VIN\r\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\r\n\r\n### 4. Present results\r\n\r\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\r\n\r\n---\r\n\r\n## Error Handling\r\n\r\n| HTTP Status         | Meaning                | Action                                                                              |\r\n| ------------------- | ---------------------- | ----------------------------------------------------------------------------------- |\r\n| 401 / `invalid key` | Bad or missing API key | Tell user to set key via `openclaw config set skills.entries.carsxe.env.CARSXE_KEY` |\r\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking                                                |\r\n| 404 / `no_data`     | Ownership: no match    | Nothing was billed. Say so clearly.                                                 |\r\n| 409                 | Batch still processing | Wait and re-check `/v1/recalls-batch/status`                                        |\r\n| 429                 | Rate limit exceeded    | Wait and retry                                                                      |\r\n| 5xx                 | Server error           | Retry once, then report error                                                       |\r\n\r\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\r\n\r\n---\r\n\r\n## Examples (replace $CARSXE_KEY with actual env var value)\r\n\r\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\r\n→ `GET https://api.carsxe.com/specs?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\r\n\r\n**\"Decode California plate 7XER187\"**\r\n→ `GET https://api.carsxe.com/v2/platedecoder?key=$CARSXE_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\r\n\r\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\r\n→ `GET https://api.carsxe.com/v2/marketvalue?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\r\n\r\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\r\n→ `GET https://api.carsxe.com/v1/recalls?key=$CARSXE_KEY&vin=1C4JJXR64PW696340&source=openclaw`\r\n\r\n**\"Any recalls on a 2023 Toyota Camry?\"**\r\n→ `GET https://api.carsxe.com/v1/recalls-ymm?key=$CARSXE_KEY&year=2023&make=Toyota&model=Camry&source=openclaw`\r\n\r\n**\"Check recalls for this list of VINs\"**\r\n→ Submit: `POST https://api.carsxe.com/v1/recalls-batch/submit?key=$CARSXE_KEY&source=openclaw` with `Content-Type: application/json` and body `{\"vins\":[\"1HGBH41JXMN109186\",\"5YJSA1E26HF000001\"]}`\r\n→ Status: `GET https://api.carsxe.com/v1/recalls-batch/status?key=$CARSXE_KEY&batchId=brb_mnablbn7_wvbaqv&source=openclaw`\r\n→ Results: `GET https://api.carsxe.com/v1/recalls-batch/results?key=$CARSXE_KEY&batchId=brb_mnablbn7_wvbaqv&source=openclaw`\r\n→ Download CSV: `GET https://api.carsxe.com/v1/recalls-batch/download?key=$CARSXE_KEY&batchId=brb_mnablbn7_wvbaqv&source=openclaw`\r\n\r\n**\"What Toyota models were sold in 2023?\"**\r\n→ `GET https://api.carsxe.com/v1/ymm-options?key=$CARSXE_KEY&year=2023&make=Toyota&source=openclaw`\r\n\r\n**\"Who is the registered owner of VIN 1FT8X3BT0BEA61538?\"**\r\n→ `GET https://api.carsxe.com/v1/ownership/vin?key=$CARSXE_KEY&vin=1FT8X3BT0BEA61538&source=openclaw`\r\n\r\n**\"Check liens and theft for WBAFR7C57CC811956\"**\r\n→ `GET https://api.carsxe.com/v1/lien-theft?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\r\n\r\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\r\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=$CARSXE_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\r\n\r\n**\"Look up 2020 Toyota Camry LE\"**\r\n→ `GET https://api.carsxe.com/v1/ymm?key=$CARSXE_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\r\n\r\n**\"My check engine light shows P0300\"**\r\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=$CARSXE_KEY&code=P0300&source=openclaw`\r\n\r\n**\"Extract the VIN from this photo: https://user-images.githubusercontent.com/5663423/30922082-64edb4fa-a3a8-11e7-873e-3fbcdce8ea3a.png\"**\r\n→ `POST https://api.carsxe.com/v1/vinocr?key=$CARSXE_KEY&source=openclaw`\r\n→ Body: `{\"image\": \"https://user-images.githubusercontent.com/5663423/30922082-64edb4fa-a3a8-11e7-873e-3fbcdce8ea3a.png\"}`\r\n\r\n**\"Extract the plate from this photo: https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public\"**\r\n→ `POST https://api.carsxe.com/platerecognition?key=$CARSXE_KEY&source=openclaw`\r\n→ Body: `{\"image\": \"https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public\"}`\r\n\r\n**\"Get vehicle images for BMW X5 2019\"**\r\n→ `GET https://api.carsxe.com/images?key=$CARSXE_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.2.0:README.md\n\n# CarsXE Skill for OpenClaw\r\n\r\nAccess the full suite of [CarsXE](https://api.carsxe.com) vehicle data APIs from [OpenClaw](https://openclaw.ai) — decode VINs, look up license plates, get market values, check history, recalls (VIN, YMM, or batch), YMM options, ownership, liens, OBD codes, and more.\r\n\r\nPublished on ClawHub as [@carsxe/carsxe](https://clawhub.ai/carsxe/carsxe).\r\n\r\n## Features\r\n\r\n| Intent | Endpoint |\r\n| --- | --- |\r\n| Decode a VIN / specs | `GET /specs` |\r\n| License plate lookup | `GET /v2/platedecoder` |\r\n| Market value | `GET /v2/marketvalue` |\r\n| Vehicle history | `GET /history` |\r\n| Vehicle images | `GET /images` |\r\n| Safety recalls (VIN) | `GET /v1/recalls` |\r\n| Safety recalls (year/make/model) | `GET /v1/recalls-ymm` |\r\n| Safety recalls (batch) | `POST/GET /v1/recalls-batch/*` |\r\n| Lien & theft | `GET /v1/lien-theft` |\r\n| International VIN | `GET /v1/international-vin-decoder` |\r\n| Year/Make/Model specs | `GET /v1/ymm` |\r\n| YMM options (dropdowns) | `GET /v1/ymm-options` |\r\n| Ownership (Enterprise) | `GET /v1/ownership/vin\\|person\\|address\\|zip` |\r\n| OBD-II decoder | `GET /obdcodesdecoder` |\r\n| VIN OCR | `POST /v1/vinocr` |\r\n| Plate OCR | `POST /platerecognition` |\r\n\r\nThe skill is auto-invoked from natural language. Agents call `https://api.carsxe.com` with `key=$CARSXE_KEY` and `source=openclaw` on every request.\r\n\r\n## Installation\r\n\r\n```bash\r\nopenclaw skills install carsxe\r\n```\r\n\r\nOr from ClawHub:\r\n\r\n```bash\r\nopenclaw skills install @carsxe/carsxe\r\n```\r\n\r\n## Setup\r\n\r\nGet an API key from the [CarsXE developer dashboard](https://api.carsxe.com/dashboard/developer), then:\r\n\r\n```bash\r\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\r\n```\r\n\r\nRestart the OpenClaw gateway after setting the key.\r\n\r\n## Usage examples\r\n\r\nJust describe what you need — OpenClaw selects the endpoint and chains calls when required.\r\n\r\n- *\"What are the specs for VIN WBAFR7C57CC811956?\"* → `/specs`\r\n- *\"Decode California plate 7XER187\"* → `/v2/platedecoder`\r\n- *\"What's this car worth?\"* → `/v2/marketvalue`\r\n- *\"Does this VIN have any recalls?\"* → `/v1/recalls`\r\n- *\"Any recalls on a 2023 Toyota Camry?\"* → `/v1/recalls-ymm`\r\n- *\"Check recalls for this list of VINs\"* → `/v1/recalls-batch/*`\r\n- *\"What Toyota models were sold in 2023?\"* → `/v1/ymm-options`\r\n- *\"Who is the registered owner of this VIN?\"* → `/v1/ownership/vin`\r\n- *\"Check liens and theft for this VIN\"* → `/v1/lien-theft`\r\n- *\"My check engine light shows P0300\"* → `/obdcodesdecoder`\r\n\r\n## Skill layout\r\n\r\n```\r\nSKILL.md                      # Agent instructions + API map\r\nreferences/api-reference.md   # Full endpoint table\r\nreferences/recalls-ymm.md\r\nreferences/recalls-batch.md\r\nreferences/ymm-options.md\r\nreferences/ownership.md\r\n```\r\n\r\n## Docs\r\n\r\n- Skill listing: [clawhub.ai/carsxe/carsxe](https://clawhub.ai/carsxe/carsxe)\r\n- API docs: [api.carsxe.com/docs](https://api.carsxe.com/docs)\r\n- OpenClaw install guide: [api.carsxe.com/docs/integrations/openclaw-quickstart](https://api.carsxe.com/docs/integrations/openclaw-quickstart)\r\n\r\n## License\r\n\r\nMIT © CarsXE\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1789061343295\n}\n\nFile v1.2.0:references/api-reference.md\n\n# CarsXE API reference (OpenClaw)\r\n\r\n**Base URL:** `https://api.carsxe.com`\r\n\r\nAppend `key=$CARSXE_KEY` and `source=openclaw` on **every** request.\r\n\r\nDo **not** call `usPlateDecoder` or `/v1/ownership/phone`.\r\n\r\n| Intent | Endpoint | Method | Parameters |\r\n| --- | --- | --- | --- |\r\n| VIN specs | `/specs` | GET | `vin`; optional `deepdata`, `disableIntVINDecoding` |\r\n| Plate decoder | `/v2/platedecoder` | GET | `plate`, `country` (required); optional `state`, `district` |\r\n| Market value | `/v2/marketvalue` | GET | `vin`; optional `state`, `mileage`, `condition` |\r\n| History | `/history` | GET | `vin` |\r\n| Images | `/images` | GET | `make`, `model`; optional `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\r\n| Recalls (VIN) | `/v1/recalls` | GET | `vin` |\r\n| Recalls (YMM) | `/v1/recalls-ymm` | GET | `year`, `make`, `model` |\r\n| Recalls batch submit | `/v1/recalls-batch/submit` | POST | JSON `vins` and/or `csv` / `csvUrl`; optional `webhookUrl` |\r\n| Recalls batch status | `/v1/recalls-batch/status` | GET | `batchId` |\r\n| Recalls batch results | `/v1/recalls-batch/results` | GET | `batchId` |\r\n| Recalls batch download | `/v1/recalls-batch/download` | GET | `batchId` (returns `text/csv`) |\r\n| Lien & theft | `/v1/lien-theft` | GET | `vin` |\r\n| International VIN | `/v1/international-vin-decoder` | GET | `vin` |\r\n| YMM specs | `/v1/ymm` | GET | `year`, `make`, `model`; optional `trim` |\r\n| YMM options | `/v1/ymm-options` | GET | optional `dimension`, `year`, `make`, `model`, `trim` |\r\n| Ownership by VIN | `/v1/ownership/vin` | GET | `vin`; optional `include` |\r\n| Ownership by person | `/v1/ownership/person` | GET | `first_name`, `last_name`, `address`, `zip`; optional `include` |\r\n| Ownership by address | `/v1/ownership/address` | GET | `address`, `zip`; optional `include`, `variant` |\r\n| Ownership by ZIP | `/v1/ownership/zip` | GET | `zip`; optional `gender`, `min_age`, `max_age`, `income`, `page`, `limit`, `include`, `variant` |\r\n| OBD decoder | `/obdcodesdecoder` | GET | `code` |\r\n| VIN OCR | `/v1/vinocr` | POST | JSON `{\"image\": \"<URL>\"}` |\r\n| Plate OCR | `/platerecognition` | POST | JSON `{\"image\": \"<URL>\"}` |\r\n| Auth validate | `/v1/auth/validate` | GET | `key` |\r\n\r\n## Routing\r\n\r\n- Recalls: VIN → `/v1/recalls`; year/make/model → `/v1/recalls-ymm`; many VINs → `/v1/recalls-batch/*`\r\n- YMM: dropdowns / \"what years was X sold\" → `/v1/ymm-options`; full specs → `/v1/ymm`\r\n- Ownership is Enterprise-only and billed per returned record. Street `address` is street only (no city/state).\r\n\r\n## Details\r\n\r\n- [Recalls by YMM](recalls-ymm.md)\r\n- [Recalls Batch](recalls-batch.md)\r\n- [YMM Options](ymm-options.md)\r\n- [Ownership](ownership.md)\n\nFile v1.2.0:references/ownership.md\n\n# Ownership (Enterprise)\r\n\r\nRegistered owners and residents. Requires an Enterprise `ownership` entitlement. Billed per returned record (`owners` / `matches` / `records`), not per request.\r\n\r\nDo **not** call `/v1/ownership/phone`.\r\n\r\n`include` is optional: comma-separated `demographics,emails,phones,vehicle_history`. Omit it to get everything. `include` only shapes which sections are shown; it does not change billing.\r\n\r\nStreet `address` is street only — no city or state (max 100). ZIP is 5-digit US (person/address may be ZIP+4; zip lookup is exactly 5 digits).\r\n\r\nHTTP 404 / `error: \"no_data\"` means no match and is **not** billed. HTTP 401 / entitlement error means the key is not entitled.\r\n\r\n## VIN\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/vin?key=$CARSXE_KEY&vin={VIN}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: 17-character VIN.\r\n\r\n## Person\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/person?key=$CARSXE_KEY&first_name={FIRST}&last_name={LAST}&address={ADDRESS}&zip={ZIP}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: `first_name`, `last_name`, street `address`, `zip`.\r\n\r\n## Address\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/address?key=$CARSXE_KEY&address={ADDRESS}&zip={ZIP}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: street `address`, `zip`.\r\n\r\n## ZIP\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/zip?key=$CARSXE_KEY&zip={ZIP}&source=openclaw[&gender={GENDER}][&min_age={MIN}][&max_age={MAX}][&income={INCOME}][&page={PAGE}][&limit={LIMIT}][&include={INCLUDE}]\r\n```\r\n\r\nRequired: 5-digit `zip`. Optional: `gender` (`M` or `F`), `min_age`, `max_age`, `income` (code or label), `page` (default 1), `limit` (default 15, max 100).\r\n\r\nWarn before a ZIP search with a high `limit` — one page can bill many units.\n\nFile v1.2.0:references/recalls-batch.md\n\n# Recalls Batch\r\n\r\nBulk recall checks for up to 10,000 unique VINs. Async: submit → poll status → results or CSV download.\r\n\r\n## Submit\r\n\r\n```\r\nPOST https://api.carsxe.com/v1/recalls-batch/submit?key=$CARSXE_KEY&source=openclaw\r\nContent-Type: application/json\r\n{\"vins\":[\"...\"],\"csv\":\"...\",\"csvUrl\":\"...\",\"webhookUrl\":\"...\"}\r\n```\r\n\r\nProvide at least one of `vins`, `csv`, or `csvUrl`. Include only fields the user provided. Combined unique VIN count must not exceed 10,000.\r\n\r\n`csvUrl` must be HTTPS on an allowed host (Google Sheets, GCS, S3, Dropbox, Azure Blob, DigitalOcean Spaces, Box). Max file size: 5 MB.\r\n\r\nReturn `batchId` and `status`. Cached batches can already be `completed`.\r\n\r\n## Status\r\n\r\n```\r\nGET https://api.carsxe.com/v1/recalls-batch/status?key=$CARSXE_KEY&batchId={BATCH_ID}&source=openclaw\r\n```\r\n\r\nPoll every 30–60 seconds until `completed`, `partial`, or `failed`. Full processing often takes 30–60 minutes unless all VINs are cached.\r\n\r\nStatuses: `uploading` | `processing` | `completed` | `partial` | `failed`.\r\n\r\n## Results (JSON)\r\n\r\n```\r\nGET https://api.carsxe.com/v1/recalls-batch/results?key=$CARSXE_KEY&batchId={BATCH_ID}&source=openclaw\r\n```\r\n\r\nUse after `completed` or `partial`. HTTP 409 means still processing.\r\n\r\nPresent job summary, then each VIN: `hasRecalls`, `recallCount`, titles / NHTSA numbers / remedy status.\r\n\r\n## Download (CSV)\r\n\r\n```\r\nGET https://api.carsxe.com/v1/recalls-batch/download?key=$CARSXE_KEY&batchId={BATCH_ID}&source=openclaw\r\n```\r\n\r\nReturns `text/csv`, not JSON. HTTP 409 means still processing.\r\n\r\nFor a single VIN use `/v1/recalls`. For year/make/model with no VIN use `/v1/recalls-ymm`.\n\nFile v1.2.0:references/recalls-ymm.md\n\n# Recalls by YMM\r\n\r\nModel-line safety recalls by year, make, and model. No VIN required.\r\n\r\n```\r\nGET https://api.carsxe.com/v1/recalls-ymm?key=$CARSXE_KEY&year={YEAR}&make={MAKE}&model={MODEL}&source=openclaw\r\n```\r\n\r\n## Parameters\r\n\r\n| Name | Required | Notes |\r\n| --- | --- | --- |\r\n| `year` | yes | 4-digit model year, 1900 through current model year plus one |\r\n| `make` | yes | Manufacturer (case-insensitive) |\r\n| `model` | yes | Model name (case-insensitive) |\r\n\r\n## Present\r\n\r\n- `data.recall_count` and `data.has_recalls`\r\n- For each recall: NHTSA campaign number, manufacturer, component, summary, consequence, remedy, report date\r\n- Highlight `park_it`, `park_outside`, or `over_the_air_update` when true\r\n- If none exist, say the **model line** has no safety recalls\r\n\r\nThis is not a specific-vehicle result. If the user later provides a VIN, use `/v1/recalls`. For many VINs use `/v1/recalls-batch/*`.\n\nFile v1.2.0:references/ymm-options.md\n\n# YMM Options\r\n\r\nCascading year / make / model / trim / variant lists. One list per request. Not full specs — use `/v1/ymm` for specs.\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ymm-options?key=$CARSXE_KEY&source=openclaw[&dimension={DIMENSION}][&year={YEAR}][&make={MAKE}][&model={MODEL}][&trim={TRIM}]\r\n```\r\n\r\nInclude only filters the user provided.\r\n\r\n`dimension` is optional: `years` | `makes` | `models` | `trims` | `variants`.\r\n\r\n## Inferred list (no `dimension`)\r\n\r\n| make | model | year | Returns |\r\n| --- | --- | --- | --- |\r\n| — | — | — | `years` |\r\n| — | — | ✓ | `makes` |\r\n| ✓ | — | * | `models` |\r\n| ✓ | ✓ | * | `variants` |\r\n\r\nTypical flow: no filters → years → add year → makes → add make → models → add model → variants.\r\n\r\n## Notes\r\n\r\n- Present the single returned list. Show `message` if present.\r\n- Bulk variants (`dimension=variants` + `year` + `make`, no `model`) bills 1 unit per model. `modelCount` is the billed unit count — warn before that call.\r\n- `trim` is a substring filter on trim/variant names only (ignored for years/makes/models).\r\n- After the user picks a YMM, offer `/v1/ymm` for full specs.\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nAccess the CarsXE vehicle data APIs for VIN decoding, license plate lookup, market value, vehicle history, safety recalls, lien and theft checks, OBD-II code decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, ownership workflows, and plate or VIN OCR from images.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[carsxe](https://clawhub.ai/user/carsxe)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and agents use this skill to route vehicle-data requests to CarsXE APIs and present structured results for VINs, plates, recalls, market value, ownership, liens, diagnostics, images, and OCR workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can access sensitive owner and resident lookup workflows when the API key has Enterprise ownership access.\n\nMitigation: Use a separate least-privilege CarsXE key for ordinary vehicle lookups and require explicit user approval before ownership, person, address, or ZIP searches.\n\nRisk: VIN, plate, OCR image, bulk VIN, lien, theft, and ownership queries may expose sensitive vehicle or personal data.\n\nMitigation: Treat expanded request URLs and returned owner data as sensitive, and avoid ownership ZIP, person, or address searches unless the user has a legitimate authorized purpose.\n\nRisk: Bulk recalls and ownership ZIP searches can create large or billable requests.\n\nMitigation: Confirm the intended scope before high-volume batch recalls or ZIP ownership lookups, especially when a request could bill many units.\n\n## Reference(s):\n\n- [CarsXE API Docs](https://api.carsxe.com/docs)\n- [CarsXE Skill Listing](https://clawhub.ai/carsxe/skills/carsxe)\n- [API Reference](references/api-reference.md)\n- [Ownership](references/ownership.md)\n- [Recalls Batch](references/recalls-batch.md)\n- [Recalls by YMM](references/recalls-ymm.md)\n- [YMM Options](references/ymm-options.md)\n\n## Skill Output:\n\n**Output Type(s):** [API Calls, Shell commands, Configuration instructions, Markdown, Guidance]\n\n**Output Format:** [Markdown with inline API requests, shell commands, and summarized JSON or CSV results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CARSXE_KEY and may process sensitive vehicle, plate, image, owner, or resident data.]\n\n## Skill Version(s):\n\n1.2.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.2.0:LICENSE\n\nMIT License\r\n\r\nCopyright (c) 2026 CarsXE\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\n\nArchive v1.1.7: 4 files, 7660 bytes\n\nFiles: refernces/api-refernce.md (11688b), skill-card.md (2415b), SKILL.md (8086b), _meta.json (125b)\n\nFile v1.1.7:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\n\n## API Key\n\nThe API key is injected as the `CARSXE_KEY` environment variable. Read it before\nmaking any request:\n\n- Use `process.env.CARSXE_KEY` in Node.js\n- Use `$env:CARSXE_KEY` in PowerShell\n- Use `$CARSXE_KEY` in bash/zsh\n\nIf `CARSXE_KEY` is empty or missing, tell the user to run:\n\n```\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\n```\n\nThen restart the gateway.\n\nAlways append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Build the request URL\n\nReplace `$CARSXE_KEY` with the actual value of the `CARSXE_KEY` environment variable.\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                                                              |\n| ------------------- | ---------------------- | ----------------------------------------------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Tell user to set key via `openclaw config set skills.entries.carsxe.env.CARSXE_KEY` |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking                                                |\n| 429                 | Rate limit exceeded    | Wait and retry                                                                      |\n| 5xx                 | Server error           | Retry once, then report error                                                       |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples (replace $CARSXE_KEY with actual env var value)\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key=$CARSXE_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key=$CARSXE_KEY&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=$CARSXE_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key=$CARSXE_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=$CARSXE_KEY&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://user-images.githubusercontent.com/5663423/30922082-64edb4fa-a3a8-11e7-873e-3fbcdce8ea3a.png\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://user-images.githubusercontent.com/5663423/30922082-64edb4fa-a3a8-11e7-873e-3fbcdce8ea3a.png\"}`\n\n**\"Extract the plate from this photo: https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public\"**\n→ `POST https://api.carsxe.com/platerecognition?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key=$CARSXE_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.7:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.7\",\n  \"publishedAt\": 1779448242414\n}\n\nFile v1.1.7:refernces/api-refernce.md\n\n# CarsXE API Reference\n\nBase URL: `https://api.carsxe.com`\nAuth: append `?key=YOUR_API_KEY` to every request.\nAlways append `&source=openclaw` to every request.\nDocs: https://api.carsxe.com/docs\n\n---\n\n## 1. Vehicle Specs (VIN Decode)\n\n**Endpoint:** `GET /specs`\n\n**Parameters:**\n\n| Param                   | Required | Description                                  |\n| ----------------------- | -------- | -------------------------------------------- |\n| `key`                   | Yes      | Your CarsXE API key                          |\n| `vin`                   | Yes      | 17-character VIN                             |\n| `deepdata`              | No       | `true` to get extended data                  |\n| `disableIntVINDecoding` | No       | `true` to disable international VIN fallback |\n\n**Response fields (key ones):**\n\n- `input.vin` — validated VIN\n- `attributes.year`, `attributes.make`, `attributes.model`, `attributes.trim`\n- `attributes.engine` — displacement, cylinders, fuel type, horsepower, torque\n- `attributes.transmission` — type, speeds\n- `attributes.drivetrain` — AWD/FWD/RWD/4WD\n- `attributes.doors`, `attributes.body_type`\n- `attributes.dimensions` — wheelbase, length, width, height, weight\n- `attributes.fuel` — tank capacity, city/hwy MPG\n- `attributes.colors` — interior/exterior options\n- `attributes.equipment` — standard and optional features list\n\n**Example:**\n\n```\nGET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 2. License Plate Decoder\n\n**Endpoint:** `GET /v2/platedecoder`\n\n**Parameters:**\n\n| Param      | Required | Description                                                                      |\n| ---------- | -------- | -------------------------------------------------------------------------------- |\n| `key`      | Yes      | Your CarsXE API key                                                              |\n| `plate`    | Yes      | License plate number                                                             |\n| `country`  | Yes      | Country code (e.g., `US`, `CA`, `GB`)                                            |\n| `state`    | No       | State/province abbreviation (e.g., `CA`, `NY`) — improves accuracy for US plates |\n| `district` | No       | District or region within the country                                            |\n\n**Response fields:**\n\n- `vin` — resolved VIN\n- `make`, `model`, `year`\n- `state`, `country`\n- Basic vehicle attributes\n\n**Tip:** After decoding a plate, chain to `/specs`, `/history`, or `/v1/recalls` using the returned VIN.\n\n**Example:**\n\n```\nGET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw\n```\n\n---\n\n## 3. Market Value\n\n**Endpoint:** `GET /v2/marketvalue`\n\n**Parameters:**\n\n| Param       | Required | Description                                                       |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| `key`       | Yes      | Your CarsXE API key                                               |\n| `vin`       | Yes      | 17-character VIN                                                  |\n| `state`     | No       | US state abbreviation (affects regional pricing, e.g. `CA`, `TX`) |\n| `mileage`   | No       | Current mileage of the vehicle                                    |\n| `condition` | No       | `excellent`, `clean`, `average`, or `rough`                       |\n\n**Response fields:**\n\n- `retail` — estimated retail price\n- `trade_in` — trade-in value\n- `msrp` — original MSRP\n- `mileage_adjustment` — adjustment based on recorded mileage\n- `condition` — assumed condition\n- `currency` — USD by default\n\n**Example:**\n\n```\nGET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\nGET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw\n```\n\n---\n\n## 4. Vehicle History\n\n**Endpoint:** `GET /history`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `junk` — junk/salvage title records\n- `insurance` — insurance loss records\n- `brands` — title brands (rebuilt, flood, fire, etc.)\n- `titles` — title history by state\n- `odometer` — odometer readings over time\n- `theft` — theft/recovery records\n- `accidents` — accident/damage records (where available)\n- `exports` — export records\n\n**Example:**\n\n```\nGET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 5. Vehicle Images\n\n**Endpoint:** `GET /images`\n\n**Parameters:**\n\n| Param         | Required | Description                                                               |\n| ------------- | -------- | ------------------------------------------------------------------------- |\n| `key`         | Yes      | Your CarsXE API key                                                       |\n| `make`        | Yes      | Vehicle make (e.g., `BMW`)                                                |\n| `model`       | Yes      | Vehicle model (e.g., `X5`)                                                |\n| `year`        | No       | Year (e.g., `2019`)                                                       |\n| `trim`        | No       | Trim level                                                                |\n| `color`       | No       | Color name (e.g., `blue`, `white`)                                        |\n| `transparent` | No       | `true` for transparent background                                         |\n| `angle`       | No       | `front`, `rear`, `side`, `interior`                                       |\n| `photoType`   | No       | `interior`, `exterior`, or `engine`                                       |\n| `size`        | No       | `Small`, `Medium`, `Large`, `Wallpaper`, or `All`                         |\n| `license`     | No       | `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |\n\n**Response fields:**\n\n- Array of image objects with `url`, `width`, `height`, `color`, `angle`, `year`\n\n**Example:**\n\n```\nGET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw\n```\n\n---\n\n## 6. Safety Recalls\n\n**Endpoint:** `GET /v1/recalls`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `total` — number of recalls found\n- `recalls[]` — array of recall objects:\n  - `date` — recall date\n  - `description` — what's being recalled\n  - `risk` — safety risk description\n  - `remedy` — fix/remedy description\n  - `status` — open/closed\n  - `nhtsa_id` — NHTSA campaign number\n\n**Important:** Always highlight open recalls prominently for the user.\n\n**Example:**\n\n```\nGET /v1/recalls?key=KEY&vin=1C4JJXR64PW696340&source=openclaw\n```\n\n---\n\n## 7. Lien & Theft\n\n**Endpoint:** `GET /v1/lien-theft`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `lien` — lien records (active loans/encumbrances)\n- `theft` — theft/stolen vehicle records\n- `recovery` — recovery records if stolen\n\n**Important:** Flag any active liens or unresolved theft records prominently — critical for buyers.\n\n**Example:**\n\n```\nGET /v1/lien-theft?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 8. International VIN Decoder\n\n**Endpoint:** `GET /v1/international-vin-decoder`\n\n**Parameters:**\n\n| Param | Required | Description                        |\n| ----- | -------- | ---------------------------------- |\n| `key` | Yes      | Your CarsXE API key                |\n| `vin` | Yes      | 17-character VIN (non-US vehicles) |\n\n**Response fields:** Similar to `/specs` but includes international-specific fields:\n\n- `manufacturer_country`\n- `emissions_standard` — Euro NCAP ratings where applicable\n- `regional_specs`\n\nUse for VINs that don't start with 1, 2, 3, 4, or 5 (those are North American).\n\n**Example:**\n\n```\nGET /v1/international-vin-decoder?key=KEY&vin=WF0MXXGBWM8R43240&source=openclaw\n```\n\n---\n\n## 9. Year/Make/Model (YMM)\n\n**Endpoint:** `GET /v1/ymm`\n\n**Parameters:**\n\n| Param   | Required | Description                    |\n| ------- | -------- | ------------------------------ |\n| `key`   | Yes      | Your CarsXE API key            |\n| `year`  | Yes      | Model year (e.g., `2020`)      |\n| `make`  | Yes      | Make (e.g., `Toyota`)          |\n| `model` | Yes      | Model (e.g., `Camry`)          |\n| `trim`  | No       | Trim level (e.g., `LE`, `XSE`) |\n\n**Response fields:**\n\n- Vehicle specs similar to `/specs`\n- `colors` — available colors for that year/trim\n- `features` — standard features list\n- `options` — available option packages\n- `configurations` — all available trims if no trim specified\n\nUse when the user doesn't have a VIN but knows the year, make, and model.\n\n**Example:**\n\n```\nGET /v1/ymm?key=KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw\n```\n\n---\n\n## 10. OBD Code Decoder\n\n**Endpoint:** `GET /obdcodesdecoder`\n\n**Parameters:**\n\n| Param  | Required | Description                                            |\n| ------ | -------- | ------------------------------------------------------ |\n| `key`  | Yes      | Your CarsXE API key                                    |\n| `code` | Yes      | OBD-II code (e.g., `P0300`, `C0035`, `B1234`, `U0100`) |\n\n**Code prefixes:**\n\n- `P` — Powertrain (engine, transmission)\n- `C` — Chassis (brakes, suspension)\n- `B` — Body (airbags, comfort systems)\n- `U` — Network/Communication\n\n**Response fields:**\n\n- `code` — the code\n- `description` — plain-language description of the fault\n- `diagnosis` — likely causes\n- `date` — when the code was last updated in the database\n\n**Example:**\n\n```\nGET /obdcodesdecoder?key=KEY&code=P0300&source=openclaw\n```\n\n---\n\n## 11. VIN OCR\n\n**Endpoint:** `POST /v1/vinocr`\n\n**Method:** POST\n**Content-Type:** `application/json`\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n\n```json\n{\n  \"image\": \"https://example.com/vin-sticker.jpg\"\n}\n```\n\n**Response fields:**\n\n- `vin` — detected VIN string\n- `confidence` — confidence score (0–1)\n- `bounding_box` — pixel coordinates of VIN in image\n- `candidates` — alternative VIN readings if confidence is low\n\n**Example:**\n\n```\nPOST /v1/vinocr?key=KEY&source=openclaw\nBody: {\"image\":\"https://example.com/vin-sticker.jpg\"}\n```\n\n---\n\n## 12. Plate Image Recognition\n\n**Endpoint:** `POST /platerecognition`\n\n**Method:** POST\n**Content-Type:** `application/json`\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n\n```json\n{\n  \"image\": \"https://example.com/car-photo.jpg\"\n}\n```\n\n**Response fields:**\n\n- `plates[]` — array of detected plates:\n  - `plate` — plate text\n  - `confidence` — confidence score\n  - `bounding_box` — pixel coordinates in image\n  - `vehicle_type` — car, truck, motorcycle, etc.\n  - `country` / `state` — inferred location (where detectable)\n\n**Example:**\n\n```\nPOST /platerecognition?key=KEY&source=openclaw\nBody: {\"image\":\"https://example.com/car-photo.jpg\"}\n```\n\n---\n\n## 13. Auth Validate\n\n**Endpoint:** `GET /v1/auth/validate`\n\n**Parameters:**\n\n| Param | Required | Description                    |\n| ----- | -------- | ------------------------------ |\n| `key` | Yes      | The CarsXE API key to validate |\n\n**Response fields:**\n\n- `valid` — `true` if the key is active\n- Error message if invalid\n\n**Example:**\n\n```\nGET /v1/auth/validate?key=YOUR_API_KEY&source=openclaw\n```\n\nFile v1.1.7:skill-card.md\n\n## Description: <br>\nAccess CarsXE vehicle data APIs for VIN decoding, license plate lookup, market value, vehicle history, recalls, lien and theft checks, OBD-II decoding, vehicle images, Year/Make/Model lookups, and plate or VIN OCR. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[carsxe](https://clawhub.ai/user/carsxe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to select CarsXE REST endpoints, prepare authenticated vehicle-data requests, and present vehicle lookup results for users who provide VINs, license plates, make/model details, OBD codes, or image URLs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Vehicle identifiers, license plates, mileage, condition details, and image URLs may be sent to CarsXE during lookups. <br>\nMitigation: Use the skill only when the user intends to send that vehicle data to CarsXE, and confirm before history, lien, theft, plate, VIN, or OCR requests. <br>\nRisk: The CarsXE API key and full request URLs are sensitive. <br>\nMitigation: Read the key from CARSXE_KEY, avoid exposing it in responses or logs, and treat keyed request URLs as sensitive. <br>\nRisk: Vehicle history, lien, theft, recall, and market-value results can influence buying, safety, or ownership decisions. <br>\nMitigation: Present results as CarsXE API output, highlight important findings clearly, and encourage verification with authoritative records when decisions depend on the result. <br>\n\n\n## Reference(s): <br>\n- [CarsXE API Reference](refernces/api-refernce.md) <br>\n- [CarsXE API Documentation](https://api.carsxe.com/docs) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, API calls, shell commands, configuration] <br>\n**Output Format:** [Markdown with API request examples and configuration commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses CARSXE_KEY for authenticated CarsXE requests and may summarize JSON responses.] <br>\n\n## Skill Version(s): <br>\n1.1.7 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.6: 3 files, 6251 bytes\n\nFiles: refernces/api-refernce.md (11688b), SKILL.md (7816b), _meta.json (125b)\n\nFile v1.1.6:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\n\n## API Key\n\nThe API key is injected as the `CARSXE_KEY` environment variable. Read it before\nmaking any request:\n\n- Use `process.env.CARSXE_KEY` in Node.js\n- Use `$env:CARSXE_KEY` in PowerShell\n- Use `$CARSXE_KEY` in bash/zsh\n\nIf `CARSXE_KEY` is empty or missing, tell the user to run:\n\n```\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\n```\n\nThen restart the gateway.\n\nAlways append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Build the request URL\n\nReplace `$CARSXE_KEY` with the actual value of the `CARSXE_KEY` environment variable.\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                                                              |\n| ------------------- | ---------------------- | ----------------------------------------------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Tell user to set key via `openclaw config set skills.entries.carsxe.env.CARSXE_KEY` |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking                                                |\n| 429                 | Rate limit exceeded    | Wait and retry                                                                      |\n| 5xx                 | Server error           | Retry once, then report error                                                       |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples (replace $CARSXE_KEY with actual env var value)\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key=$CARSXE_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key=$CARSXE_KEY&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=$CARSXE_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key=$CARSXE_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=$CARSXE_KEY&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://example.com/vin.jpg\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/vin.jpg\"}`\n\n**\"Extract the plate from this photo: https://example.com/plate.jpg\"**\n→ `POST https://api.carsxe.com/platerecognition?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/plate.jpg\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key=$CARSXE_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.6:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.6\",\n  \"publishedAt\": 1779379033977\n}\n\nFile v1.1.6:refernces/api-refernce.md\n\n# CarsXE API Reference\n\nBase URL: `https://api.carsxe.com`\nAuth: append `?key=YOUR_API_KEY` to every request.\nAlways append `&source=openclaw` to every request.\nDocs: https://api.carsxe.com/docs\n\n---\n\n## 1. Vehicle Specs (VIN Decode)\n\n**Endpoint:** `GET /specs`\n\n**Parameters:**\n\n| Param                   | Required | Description                                  |\n| ----------------------- | -------- | -------------------------------------------- |\n| `key`                   | Yes      | Your CarsXE API key                          |\n| `vin`                   | Yes      | 17-character VIN                             |\n| `deepdata`              | No       | `true` to get extended data                  |\n| `disableIntVINDecoding` | No       | `true` to disable international VIN fallback |\n\n**Response fields (key ones):**\n\n- `input.vin` — validated VIN\n- `attributes.year`, `attributes.make`, `attributes.model`, `attributes.trim`\n- `attributes.engine` — displacement, cylinders, fuel type, horsepower, torque\n- `attributes.transmission` — type, speeds\n- `attributes.drivetrain` — AWD/FWD/RWD/4WD\n- `attributes.doors`, `attributes.body_type`\n- `attributes.dimensions` — wheelbase, length, width, height, weight\n- `attributes.fuel` — tank capacity, city/hwy MPG\n- `attributes.colors` — interior/exterior options\n- `attributes.equipment` — standard and optional features list\n\n**Example:**\n\n```\nGET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 2. License Plate Decoder\n\n**Endpoint:** `GET /v2/platedecoder`\n\n**Parameters:**\n\n| Param      | Required | Description                                                                      |\n| ---------- | -------- | -------------------------------------------------------------------------------- |\n| `key`      | Yes      | Your CarsXE API key                                                              |\n| `plate`    | Yes      | License plate number                                                             |\n| `country`  | Yes      | Country code (e.g., `US`, `CA`, `GB`)                                            |\n| `state`    | No       | State/province abbreviation (e.g., `CA`, `NY`) — improves accuracy for US plates |\n| `district` | No       | District or region within the country                                            |\n\n**Response fields:**\n\n- `vin` — resolved VIN\n- `make`, `model`, `year`\n- `state`, `country`\n- Basic vehicle attributes\n\n**Tip:** After decoding a plate, chain to `/specs`, `/history`, or `/v1/recalls` using the returned VIN.\n\n**Example:**\n\n```\nGET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw\n```\n\n---\n\n## 3. Market Value\n\n**Endpoint:** `GET /v2/marketvalue`\n\n**Parameters:**\n\n| Param       | Required | Description                                                       |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| `key`       | Yes      | Your CarsXE API key                                               |\n| `vin`       | Yes      | 17-character VIN                                                  |\n| `state`     | No       | US state abbreviation (affects regional pricing, e.g. `CA`, `TX`) |\n| `mileage`   | No       | Current mileage of the vehicle                                    |\n| `condition` | No       | `excellent`, `clean`, `average`, or `rough`                       |\n\n**Response fields:**\n\n- `retail` — estimated retail price\n- `trade_in` — trade-in value\n- `msrp` — original MSRP\n- `mileage_adjustment` — adjustment based on recorded mileage\n- `condition` — assumed condition\n- `currency` — USD by default\n\n**Example:**\n\n```\nGET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\nGET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw\n```\n\n---\n\n## 4. Vehicle History\n\n**Endpoint:** `GET /history`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `junk` — junk/salvage title records\n- `insurance` — insurance loss records\n- `brands` — title brands (rebuilt, flood, fire, etc.)\n- `titles` — title history by state\n- `odometer` — odometer readings over time\n- `theft` — theft/recovery records\n- `accidents` — accident/damage records (where available)\n- `exports` — export records\n\n**Example:**\n\n```\nGET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 5. Vehicle Images\n\n**Endpoint:** `GET /images`\n\n**Parameters:**\n\n| Param         | Required | Description                                                               |\n| ------------- | -------- | ------------------------------------------------------------------------- |\n| `key`         | Yes      | Your CarsXE API key                                                       |\n| `make`        | Yes      | Vehicle make (e.g., `BMW`)                                                |\n| `model`       | Yes      | Vehicle model (e.g., `X5`)                                                |\n| `year`        | No       | Year (e.g., `2019`)                                                       |\n| `trim`        | No       | Trim level                                                                |\n| `color`       | No       | Color name (e.g., `blue`, `white`)                                        |\n| `transparent` | No       | `true` for transparent background                                         |\n| `angle`       | No       | `front`, `rear`, `side`, `interior`                                       |\n| `photoType`   | No       | `interior`, `exterior`, or `engine`                                       |\n| `size`        | No       | `Small`, `Medium`, `Large`, `Wallpaper`, or `All`                         |\n| `license`     | No       | `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |\n\n**Response fields:**\n\n- Array of image objects with `url`, `width`, `height`, `color`, `angle`, `year`\n\n**Example:**\n\n```\nGET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw\n```\n\n---\n\n## 6. Safety Recalls\n\n**Endpoint:** `GET /v1/recalls`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `total` — number of recalls found\n- `recalls[]` — array of recall objects:\n  - `date` — recall date\n  - `description` — what's being recalled\n  - `risk` — safety risk description\n  - `remedy` — fix/remedy description\n  - `status` — open/closed\n  - `nhtsa_id` — NHTSA campaign number\n\n**Important:** Always highlight open recalls prominently for the user.\n\n**Example:**\n\n```\nGET /v1/recalls?key=KEY&vin=1C4JJXR64PW696340&source=openclaw\n```\n\n---\n\n## 7. Lien & Theft\n\n**Endpoint:** `GET /v1/lien-theft`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n- `lien` — lien records (active loans/encumbrances)\n- `theft` — theft/stolen vehicle records\n- `recovery` — recovery records if stolen\n\n**Important:** Flag any active liens or unresolved theft records prominently — critical for buyers.\n\n**Example:**\n\n```\nGET /v1/lien-theft?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n---\n\n## 8. International VIN Decoder\n\n**Endpoint:** `GET /v1/international-vin-decoder`\n\n**Parameters:**\n\n| Param | Required | Description                        |\n| ----- | -------- | ---------------------------------- |\n| `key` | Yes      | Your CarsXE API key                |\n| `vin` | Yes      | 17-character VIN (non-US vehicles) |\n\n**Response fields:** Similar to `/specs` but includes international-specific fields:\n\n- `manufacturer_country`\n- `emissions_standard` — Euro NCAP ratings where applicable\n- `regional_specs`\n\nUse for VINs that don't start with 1, 2, 3, 4, or 5 (those are North American).\n\n**Example:**\n\n```\nGET /v1/international-vin-decoder?key=KEY&vin=WF0MXXGBWM8R43240&source=openclaw\n```\n\n---\n\n## 9. Year/Make/Model (YMM)\n\n**Endpoint:** `GET /v1/ymm`\n\n**Parameters:**\n\n| Param   | Required | Description                    |\n| ------- | -------- | ------------------------------ |\n| `key`   | Yes      | Your CarsXE API key            |\n| `year`  | Yes      | Model year (e.g., `2020`)      |\n| `make`  | Yes      | Make (e.g., `Toyota`)          |\n| `model` | Yes      | Model (e.g., `Camry`)          |\n| `trim`  | No       | Trim level (e.g., `LE`, `XSE`) |\n\n**Response fields:**\n\n- Vehicle specs similar to `/specs`\n- `colors` — available colors for that year/trim\n- `features` — standard features list\n- `options` — available option packages\n- `configurations` — all available trims if no trim specified\n\nUse when the user doesn't have a VIN but knows the year, make, and model.\n\n**Example:**\n\n```\nGET /v1/ymm?key=KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw\n```\n\n---\n\n## 10. OBD Code Decoder\n\n**Endpoint:** `GET /obdcodesdecoder`\n\n**Parameters:**\n\n| Param  | Required | Description                                            |\n| ------ | -------- | ------------------------------------------------------ |\n| `key`  | Yes      | Your CarsXE API key                                    |\n| `code` | Yes      | OBD-II code (e.g., `P0300`, `C0035`, `B1234`, `U0100`) |\n\n**Code prefixes:**\n\n- `P` — Powertrain (engine, transmission)\n- `C` — Chassis (brakes, suspension)\n- `B` — Body (airbags, comfort systems)\n- `U` — Network/Communication\n\n**Response fields:**\n\n- `code` — the code\n- `description` — plain-language description of the fault\n- `diagnosis` — likely causes\n- `date` — when the code was last updated in the database\n\n**Example:**\n\n```\nGET /obdcodesdecoder?key=KEY&code=P0300&source=openclaw\n```\n\n---\n\n## 11. VIN OCR\n\n**Endpoint:** `POST /v1/vinocr`\n\n**Method:** POST\n**Content-Type:** `application/json`\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n\n```json\n{\n  \"image\": \"https://example.com/vin-sticker.jpg\"\n}\n```\n\n**Response fields:**\n\n- `vin` — detected VIN string\n- `confidence` — confidence score (0–1)\n- `bounding_box` — pixel coordinates of VIN in image\n- `candidates` — alternative VIN readings if confidence is low\n\n**Example:**\n\n```\nPOST /v1/vinocr?key=KEY&source=openclaw\nBody: {\"image\":\"https://example.com/vin-sticker.jpg\"}\n```\n\n---\n\n## 12. Plate Image Recognition\n\n**Endpoint:** `POST /platerecognition`\n\n**Method:** POST\n**Content-Type:** `application/json`\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n\n```json\n{\n  \"image\": \"https://example.com/car-photo.jpg\"\n}\n```\n\n**Response fields:**\n\n- `plates[]` — array of detected plates:\n  - `plate` — plate text\n  - `confidence` — confidence score\n  - `bounding_box` — pixel coordinates in image\n  - `vehicle_type` — car, truck, motorcycle, etc.\n  - `country` / `state` — inferred location (where detectable)\n\n**Example:**\n\n```\nPOST /platerecognition?key=KEY&source=openclaw\nBody: {\"image\":\"https://example.com/car-photo.jpg\"}\n```\n\n---\n\n## 13. Auth Validate\n\n**Endpoint:** `GET /v1/auth/validate`\n\n**Parameters:**\n\n| Param | Required | Description                    |\n| ----- | -------- | ------------------------------ |\n| `key` | Yes      | The CarsXE API key to validate |\n\n**Response fields:**\n\n- `valid` — `true` if the key is active\n- Error message if invalid\n\n**Example:**\n\n```\nGET /v1/auth/validate?key=YOUR_API_KEY&source=openclaw\n```\n\nArchive v1.1.5: 3 files, 6618 bytes\n\nFiles: refernces/api-refernce.md (13463b), SKILL.md (7816b), _meta.json (125b)\n\nFile v1.1.5:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\n\n## API Key\n\nThe API key is injected as the `CARSXE_KEY` environment variable. Read it before\nmaking any request:\n\n- Use `process.env.CARSXE_KEY` in Node.js\n- Use `$env:CARSXE_KEY` in PowerShell\n- Use `$CARSXE_KEY` in bash/zsh\n\nIf `CARSXE_KEY` is empty or missing, tell the user to run:\n\n```\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\n```\n\nThen restart the gateway.\n\nAlways append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Build the request URL\n\nReplace `$CARSXE_KEY` with the actual value of the `CARSXE_KEY` environment variable.\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                                                              |\n| ------------------- | ---------------------- | ----------------------------------------------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Tell user to set key via `openclaw config set skills.entries.carsxe.env.CARSXE_KEY` |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking                                                |\n| 429                 | Rate limit exceeded    | Wait and retry                                                                      |\n| 5xx                 | Server error           | Retry once, then report error                                                       |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples (replace $CARSXE_KEY with actual env var value)\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key=$CARSXE_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key=$CARSXE_KEY&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key=$CARSXE_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=$CARSXE_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key=$CARSXE_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=$CARSXE_KEY&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://example.com/vin.jpg\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/vin.jpg\"}`\n\n**\"Extract the plate from this photo: https://example.com/plate.jpg\"**\n→ `POST https://api.carsxe.com/platerecognition?key=$CARSXE_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/plate.jpg\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key=$CARSXE_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.5\",\n  \"publishedAt\": 1779360760401\n}\n\nFile v1.1.5:refernces/api-refernce.md\n\nCarsXE API Reference\n====================\n\nBase URL: `https://api.carsxe.com` Auth: append `?key=YOUR_API_KEY` to every request.Always append `&source=openclaw` to every request.Docs: https://api.carsxe.com/docs\n\n* * *\n\nTable of Contents\n-----------------\n\n1. [Vehicle Specs (VIN Decode)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#1-vehicle-specs-vin-decode)\n2. [License Plate Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#2-license-plate-decoder)\n3. [Market Value](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#3-market-value)\n4. [Vehicle History](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#4-vehicle-history)\n5. [Vehicle Images](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#5-vehicle-images)\n6. [Safety Recalls](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#6-safety-recalls)\n7. [Lien & Theft](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#7-lien--theft)\n8. [International VIN Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#8-international-vin-decoder)\n9. [Year/Make/Model (YMM)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#9-yearmakemodel-ymm)\n10. [OBD Code Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#10-obd-code-decoder)\n11. [VIN OCR](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#11-vin-ocr)\n12. [Plate Image Recognition](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#12-plate-image-recognition)\n13. [Auth Validate](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#13-auth-validate)\n\n* * *\n\n1. Vehicle Specs (VIN Decode)\n\n-----------------------------\n\n**Endpoint:** `GET /specs`\n\n**Parameters:**\n\n| Param                   | Required | Description                                  |\n| ----------------------- | -------- | -------------------------------------------- |\n| `key`                   | Yes      | Your CarsXE API key                          |\n| `vin`                   | Yes      | 17-character VIN                             |\n| `deepdata`              | No       | `true` to get extended data                  |\n| `disableIntVINDecoding` | No       | `true` to disable international VIN fallback |\n\n**Response fields (key ones):**\n\n* `input.vin` — validated VIN\n* `attributes.year`, `attributes.make`, `attributes.model`, `attributes.trim`\n* `attributes.engine` — displacement, cylinders, fuel type, horsepower, torque\n* `attributes.transmission` — type, speeds\n* `attributes.drivetrain` — AWD/FWD/RWD/4WD\n* `attributes.doors`, `attributes.body_type`\n* `attributes.dimensions` — wheelbase, length, width, height, weight\n* `attributes.fuel` — tank capacity, city/hwy MPG\n* `attributes.colors` — interior/exterior options\n* `attributes.equipment` — standard and optional features list\n\n**Example:**\n    GET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n2. License Plate Decoder\n\n------------------------\n\n**Endpoint:** `GET /v2/platedecoder`\n\n**Parameters:**\n\n| Param      | Required | Description                                                                      |\n| ---------- | -------- | -------------------------------------------------------------------------------- |\n| `key`      | Yes      | Your CarsXE API key                                                              |\n| `plate`    | Yes      | License plate number                                                             |\n| `country`  | Yes      | Country code (e.g., `US`, `CA`, `GB`)                                            |\n| `state`    | No       | State/province abbreviation (e.g., `CA`, `NY`) — improves accuracy for US plates |\n| `district` | No       | District or region within the country                                            |\n\n**Response fields:**\n\n* `vin` — resolved VIN\n* `make`, `model`, `year`\n* `state`, `country`\n* Basic vehicle attributes\n\n**Tip:** After decoding a plate, chain to `/specs`, `/history`, or `/v1/recalls` using the returned VIN.\n\n**Example:**\n    GET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw\n\n* * *\n\n3. Market Value\n\n---------------\n\n**Endpoint:** `GET /v2/marketvalue`\n\n**Parameters:**\n\n| Param       | Required | Description                                                       |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| `key`       | Yes      | Your CarsXE API key                                               |\n| `vin`       | Yes      | 17-character VIN                                                  |\n| `state`     | No       | US state abbreviation (affects regional pricing, e.g. `CA`, `TX`) |\n| `mileage`   | No       | Current mileage of the vehicle                                    |\n| `condition` | No       | `excellent`, `clean`, `average`, or `rough`                       |\n\n**Response fields:**\n\n* `retail` — estimated retail price\n* `trade_in` — trade-in value\n* `msrp` — original MSRP\n* `mileage_adjustment` — adjustment based on recorded mileage\n* `condition` — assumed condition\n* `currency` — USD by default\n\n**Example:**\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw\n\n* * *\n\n4. Vehicle History\n\n------------------\n\n**Endpoint:** `GET /history`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `junk` — junk/salvage title records\n* `insurance` — insurance loss records\n* `brands` — title brands (rebuilt, flood, fire, etc.)\n* `titles` — title history by state\n* `odometer` — odometer readings over time\n* `theft` — theft/recovery records\n* `accidents` — accident/damage records (where available)\n* `exports` — export records\n\n**Example:**\n    GET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n5. Vehicle Images\n\n-----------------\n\n**Endpoint:** `GET /images`\n\n**Parameters:**\n\n| Param         | Required | Description                                                               |\n| ------------- | -------- | ------------------------------------------------------------------------- |\n| `key`         | Yes      | Your CarsXE API key                                                       |\n| `make`        | Yes      | Vehicle make (e.g., `BMW`)                                                |\n| `model`       | Yes      | Vehicle model (e.g., `X5`)                                                |\n| `year`        | No       | Year (e.g., `2019`)                                                       |\n| `trim`        | No       | Trim level                                                                |\n| `color`       | No       | Color name (e.g., `blue`, `white`)                                        |\n| `transparent` | No       | `true` for transparent background                                         |\n| `angle`       | No       | `front`, `rear`, `side`, `interior`                                       |\n| `photoType`   | No       | `interior`, `exterior`, or `engine`                                       |\n| `size`        | No       | `Small`, `Medium`, `Large`, `Wallpaper`, or `All`                         |\n| `license`     | No       | `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |\n\n**Response fields:**\n\n* Array of image objects with `url`, `width`, `height`, `color`, `angle`, `year`\n\n**Example:**\n    GET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw\n\n* * *\n\n6. Safety Recalls\n\n-----------------\n\n**Endpoint:** `GET /v1/recalls`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `total` — number of recalls found\n* `recalls[]` — array of recall objects:\n  * `date` — recall date\n  * `description` — what's being recalled\n  * `risk` — safety risk description\n  * `remedy` — fix/remedy description\n  * `status` — open/closed\n  * `nhtsa_id` — NHTSA campaign number\n\n**Important:** Always highlight open recalls prominently for the user.\n\n**Example:**\n    GET /v1/recalls?key=KEY&vin=1C4JJXR64PW696340&source=openclaw\n\n* * *\n\n7. Lien & Theft\n\n---------------\n\n**Endpoint:** `GET /v1/lien-theft`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `lien` — lien records (active loans/encumbrances)\n* `theft` — theft/stolen vehicle records\n* `recovery` — recovery records if stolen\n\n**Important:** Flag any active liens or unresolved theft records prominently — critical for buyers.\n\n**Example:**\n    GET /v1/lien-theft?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n8. International VIN Decoder\n\n----------------------------\n\n**Endpoint:** `GET /v1/international-vin-decoder`\n\n**Parameters:**\n\n| Param | Required | Description                        |\n| ----- | -------- | ---------------------------------- |\n| `key` | Yes      | Your CarsXE API key                |\n| `vin` | Yes      | 17-character VIN (non-US vehicles) |\n\n**Response fields:** Similar to `/specs` but includes international-specific fields:\n\n* `manufacturer_country`\n* `emissions_standard` — Euro NCAP ratings where applicable\n* `regional_specs`\n\nUse for VINs that don't start with 1, 2, 3, 4, or 5 (those are North American).\n\n**Example:**\n    GET /v1/international-vin-decoder?key=KEY&vin=WF0MXXGBWM8R43240&source=openclaw\n\n* * *\n\n9. Year/Make/Model (YMM)\n\n------------------------\n\n**Endpoint:** `GET /v1/ymm`\n\n**Parameters:**\n\n| Param   | Required | Description                    |\n| ------- | -------- | ------------------------------ |\n| `key`   | Yes      | Your CarsXE API key            |\n| `year`  | Yes      | Model year (e.g., `2020`)      |\n| `make`  | Yes      | Make (e.g., `Toyota`)          |\n| `model` | Yes      | Model (e.g., `Camry`)          |\n| `trim`  | No       | Trim level (e.g., `LE`, `XSE`) |\n\n**Response fields:**\n\n* Vehicle specs similar to `/specs`\n* `colors` — available colors for that year/trim\n* `features` — standard features list\n* `options` — available option packages\n* `configurations` — all available trims if no trim specified\n\nUse when the user doesn't have a VIN but knows the year, make, and model.\n\n**Example:**\n    GET /v1/ymm?key=KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw\n\n* * *\n\n10. OBD Code Decoder\n\n--------------------\n\n**Endpoint:** `GET /obdcodesdecoder`\n\n**Parameters:**\n\n| Param  | Required | Description                                            |\n| ------ | -------- | ------------------------------------------------------ |\n| `key`  | Yes      | Your CarsXE API key                                    |\n| `code` | Yes      | OBD-II code (e.g., `P0300`, `C0035`, `B1234`, `U0100`) |\n\n**Code prefixes:**\n\n* `P` — Powertrain (engine, transmission)\n* `C` — Chassis (brakes, suspension)\n* `B` — Body (airbags, comfort systems)\n* `U` — Network/Communication\n\n**Response fields:**\n\n* `code` — the code\n* `description` — plain-language description of the fault\n* `diagnosis` — likely causes\n* `date` — when the code was last updated in the database\n\n**Example:**\n    GET /obdcodesdecoder?key=KEY&code=P0300&source=openclaw\n\n* * *\n\n11. VIN OCR\n\n-----------\n\n**Endpoint:** `POST /v1/vinocr`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/vin-sticker.jpg\"\n    }\n\n**Response fields:**\n\n* `vin` — detected VIN string\n* `confidence` — confidence score (0–1)\n* `bounding_box` — pixel coordinates of VIN in image\n* `candidates` — alternative VIN readings if confidence is low\n\nUse for images of VIN stickers, door jambs, or dashboard VIN plates.\n\n**Example:**\n    POST /v1/vinocr?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/vin-sticker.jpg\"}\n\n* * *\n\n12. Plate Image Recognition\n\n---------------------------\n\n**Endpoint:** `POST /platerecognition`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/car-photo.jpg\"\n    }\n\n**Response fields:**\n\n* `plates[]` — array of detected plates:\n  * `plate` — plate text\n  * `confidence` — confidence score\n  * `bounding_box` — pixel coordinates in image\n  * `vehicle_type` — car, truck, motorcycle, etc.\n  * `country` / `state` — inferred location (where detectable)\n\nUse for photos of vehicles where you want to extract the plate number.\n\n**Example:**\n    POST /platerecognition?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/car-photo.jpg\"}\n\n* * *\n\n13. Auth Validate\n\n-----------------\n\n**Endpoint:** `GET /v1/auth/validate`\n\n**Parameters:**\n\n| Param | Required | Description                    |\n| ----- | -------- | ------------------------------ |\n| `key` | Yes      | The CarsXE API key to validate |\n\n**Response fields:**\n\n* `valid` — `true` if the key is active\n* Error message if invalid\n\n**Example:**\n    GET /v1/auth/validate?key=YOUR_API_KEY&source=openclaw\n\nArchive v1.1.4: 3 files, 6623 bytes\n\nFiles: refernces/api-refernce.md (13463b), SKILL.md (7920b), _meta.json (125b)\n\nFile v1.1.4:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\n\n## API Key\n\nThe API key is injected as the `CARSXE_API_KEY` environment variable. Read it before\nmaking any request:\n\n- Use `process.env.CARSXE_API_KEY` in Node.js\n- Use `$env:CARSXE_API_KEY` in PowerShell\n- Use `$CARSXE_API_KEY` in bash/zsh\n\nIf `CARSXE_API_KEY` is empty or missing, tell the user to run:\n\n```\nopenclaw config set skills.entries.carsxe.env.CARSXE_API_KEY \"cxe_live_YOUR_KEY\"\n```\n\nThen restart the gateway.\n\nAlways append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Build the request URL\n\nReplace `$CARSXE_API_KEY` with the actual value of the `CARSXE_API_KEY` environment variable.\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                                                                  |\n| ------------------- | ---------------------- | --------------------------------------------------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Tell user to set key via `openclaw config set skills.entries.carsxe.env.CARSXE_API_KEY` |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking                                                    |\n| 429                 | Rate limit exceeded    | Wait and retry                                                                          |\n| 5xx                 | Server error           | Retry once, then report error                                                           |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples (replace $CARSXE_API_KEY with actual env var value)\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key=$CARSXE_API_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key=$CARSXE_API_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key=$CARSXE_API_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key=$CARSXE_API_KEY&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key=$CARSXE_API_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=$CARSXE_API_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key=$CARSXE_API_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=$CARSXE_API_KEY&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://example.com/vin.jpg\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key=$CARSXE_API_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/vin.jpg\"}`\n\n**\"Extract the plate from this photo: https://example.com/plate.jpg\"**\n→ `POST https://api.carsxe.com/platerecognition?key=$CARSXE_API_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/plate.jpg\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key=$CARSXE_API_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.4\",\n  \"publishedAt\": 1779306618492\n}\n\nFile v1.1.4:refernces/api-refernce.md\n\nCarsXE API Reference\n====================\n\nBase URL: `https://api.carsxe.com` Auth: append `?key=YOUR_API_KEY` to every request.Always append `&source=openclaw` to every request.Docs: https://api.carsxe.com/docs\n\n* * *\n\nTable of Contents\n-----------------\n\n1. [Vehicle Specs (VIN Decode)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#1-vehicle-specs-vin-decode)\n2. [License Plate Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#2-license-plate-decoder)\n3. [Market Value](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#3-market-value)\n4. [Vehicle History](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#4-vehicle-history)\n5. [Vehicle Images](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#5-vehicle-images)\n6. [Safety Recalls](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#6-safety-recalls)\n7. [Lien & Theft](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#7-lien--theft)\n8. [International VIN Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#8-international-vin-decoder)\n9. [Year/Make/Model (YMM)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#9-yearmakemodel-ymm)\n10. [OBD Code Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#10-obd-code-decoder)\n11. [VIN OCR](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#11-vin-ocr)\n12. [Plate Image Recognition](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#12-plate-image-recognition)\n13. [Auth Validate](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#13-auth-validate)\n\n* * *\n\n1. Vehicle Specs (VIN Decode)\n\n-----------------------------\n\n**Endpoint:** `GET /specs`\n\n**Parameters:**\n\n| Param                   | Required | Description                                  |\n| ----------------------- | -------- | -------------------------------------------- |\n| `key`                   | Yes      | Your CarsXE API key                          |\n| `vin`                   | Yes      | 17-character VIN                             |\n| `deepdata`              | No       | `true` to get extended data                  |\n| `disableIntVINDecoding` | No       | `true` to disable international VIN fallback |\n\n**Response fields (key ones):**\n\n* `input.vin` — validated VIN\n* `attributes.year`, `attributes.make`, `attributes.model`, `attributes.trim`\n* `attributes.engine` — displacement, cylinders, fuel type, horsepower, torque\n* `attributes.transmission` — type, speeds\n* `attributes.drivetrain` — AWD/FWD/RWD/4WD\n* `attributes.doors`, `attributes.body_type`\n* `attributes.dimensions` — wheelbase, length, width, height, weight\n* `attributes.fuel` — tank capacity, city/hwy MPG\n* `attributes.colors` — interior/exterior options\n* `attributes.equipment` — standard and optional features list\n\n**Example:**\n    GET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n2. License Plate Decoder\n\n------------------------\n\n**Endpoint:** `GET /v2/platedecoder`\n\n**Parameters:**\n\n| Param      | Required | Description                                                                      |\n| ---------- | -------- | -------------------------------------------------------------------------------- |\n| `key`      | Yes      | Your CarsXE API key                                                              |\n| `plate`    | Yes      | License plate number                                                             |\n| `country`  | Yes      | Country code (e.g., `US`, `CA`, `GB`)                                            |\n| `state`    | No       | State/province abbreviation (e.g., `CA`, `NY`) — improves accuracy for US plates |\n| `district` | No       | District or region within the country                                            |\n\n**Response fields:**\n\n* `vin` — resolved VIN\n* `make`, `model`, `year`\n* `state`, `country`\n* Basic vehicle attributes\n\n**Tip:** After decoding a plate, chain to `/specs`, `/history`, or `/v1/recalls` using the returned VIN.\n\n**Example:**\n    GET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw\n\n* * *\n\n3. Market Value\n\n---------------\n\n**Endpoint:** `GET /v2/marketvalue`\n\n**Parameters:**\n\n| Param       | Required | Description                                                       |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| `key`       | Yes      | Your CarsXE API key                                               |\n| `vin`       | Yes      | 17-character VIN                                                  |\n| `state`     | No       | US state abbreviation (affects regional pricing, e.g. `CA`, `TX`) |\n| `mileage`   | No       | Current mileage of the vehicle                                    |\n| `condition` | No       | `excellent`, `clean`, `average`, or `rough`                       |\n\n**Response fields:**\n\n* `retail` — estimated retail price\n* `trade_in` — trade-in value\n* `msrp` — original MSRP\n* `mileage_adjustment` — adjustment based on recorded mileage\n* `condition` — assumed condition\n* `currency` — USD by default\n\n**Example:**\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw\n\n* * *\n\n4. Vehicle History\n\n------------------\n\n**Endpoint:** `GET /history`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `junk` — junk/salvage title records\n* `insurance` — insurance loss records\n* `brands` — title brands (rebuilt, flood, fire, etc.)\n* `titles` — title history by state\n* `odometer` — odometer readings over time\n* `theft` — theft/recovery records\n* `accidents` — accident/damage records (where available)\n* `exports` — export records\n\n**Example:**\n    GET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n5. Vehicle Images\n\n-----------------\n\n**Endpoint:** `GET /images`\n\n**Parameters:**\n\n| Param         | Required | Description                                                               |\n| ------------- | -------- | ------------------------------------------------------------------------- |\n| `key`         | Yes      | Your CarsXE API key                                                       |\n| `make`        | Yes      | Vehicle make (e.g., `BMW`)                                                |\n| `model`       | Yes      | Vehicle model (e.g., `X5`)                                                |\n| `year`        | No       | Year (e.g., `2019`)                                                       |\n| `trim`        | No       | Trim level                                                                |\n| `color`       | No       | Color name (e.g., `blue`, `white`)                                        |\n| `transparent` | No       | `true` for transparent background                                         |\n| `angle`       | No       | `front`, `rear`, `side`, `interior`                                       |\n| `photoType`   | No       | `interior`, `exterior`, or `engine`                                       |\n| `size`        | No       | `Small`, `Medium`, `Large`, `Wallpaper`, or `All`                         |\n| `license`     | No       | `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |\n\n**Response fields:**\n\n* Array of image objects with `url`, `width`, `height`, `color`, `angle`, `year`\n\n**Example:**\n    GET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw\n\n* * *\n\n6. Safety Recalls\n\n-----------------\n\n**Endpoint:** `GET /v1/recalls`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `total` — number of recalls found\n* `recalls[]` — array of recall objects:\n  * `date` — recall date\n  * `description` — what's being recalled\n  * `risk` — safety risk description\n  * `remedy` — fix/remedy description\n  * `status` — open/closed\n  * `nhtsa_id` — NHTSA campaign number\n\n**Important:** Always highlight open recalls prominently for the user.\n\n**Example:**\n    GET /v1/recalls?key=KEY&vin=1C4JJXR64PW696340&source=openclaw\n\n* * *\n\n7. Lien & Theft\n\n---------------\n\n**Endpoint:** `GET /v1/lien-theft`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `lien` — lien records (active loans/encumbrances)\n* `theft` — theft/stolen vehicle records\n* `recovery` — recovery records if stolen\n\n**Important:** Flag any active liens or unresolved theft records prominently — critical for buyers.\n\n**Example:**\n    GET /v1/lien-theft?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n8. International VIN Decoder\n\n----------------------------\n\n**Endpoint:** `GET /v1/international-vin-decoder`\n\n**Parameters:**\n\n| Param | Required | Description                        |\n| ----- | -------- | ---------------------------------- |\n| `key` | Yes      | Your CarsXE API key                |\n| `vin` | Yes      | 17-character VIN (non-US vehicles) |\n\n**Response fields:** Similar to `/specs` but includes international-specific fields:\n\n* `manufacturer_country`\n* `emissions_standard` — Euro NCAP ratings where applicable\n* `regional_specs`\n\nUse for VINs that don't start with 1, 2, 3, 4, or 5 (those are North American).\n\n**Example:**\n    GET /v1/international-vin-decoder?key=KEY&vin=WF0MXXGBWM8R43240&source=openclaw\n\n* * *\n\n9. Year/Make/Model (YMM)\n\n------------------------\n\n**Endpoint:** `GET /v1/ymm`\n\n**Parameters:**\n\n| Param   | Required | Description                    |\n| ------- | -------- | ------------------------------ |\n| `key`   | Yes      | Your CarsXE API key            |\n| `year`  | Yes      | Model year (e.g., `2020`)      |\n| `make`  | Yes      | Make (e.g., `Toyota`)          |\n| `model` | Yes      | Model (e.g., `Camry`)          |\n| `trim`  | No       | Trim level (e.g., `LE`, `XSE`) |\n\n**Response fields:**\n\n* Vehicle specs similar to `/specs`\n* `colors` — available colors for that year/trim\n* `features` — standard features list\n* `options` — available option packages\n* `configurations` — all available trims if no trim specified\n\nUse when the user doesn't have a VIN but knows the year, make, and model.\n\n**Example:**\n    GET /v1/ymm?key=KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw\n\n* * *\n\n10. OBD Code Decoder\n\n--------------------\n\n**Endpoint:** `GET /obdcodesdecoder`\n\n**Parameters:**\n\n| Param  | Required | Description                                            |\n| ------ | -------- | ------------------------------------------------------ |\n| `key`  | Yes      | Your CarsXE API key                                    |\n| `code` | Yes      | OBD-II code (e.g., `P0300`, `C0035`, `B1234`, `U0100`) |\n\n**Code prefixes:**\n\n* `P` — Powertrain (engine, transmission)\n* `C` — Chassis (brakes, suspension)\n* `B` — Body (airbags, comfort systems)\n* `U` — Network/Communication\n\n**Response fields:**\n\n* `code` — the code\n* `description` — plain-language description of the fault\n* `diagnosis` — likely causes\n* `date` — when the code was last updated in the database\n\n**Example:**\n    GET /obdcodesdecoder?key=KEY&code=P0300&source=openclaw\n\n* * *\n\n11. VIN OCR\n\n-----------\n\n**Endpoint:** `POST /v1/vinocr`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/vin-sticker.jpg\"\n    }\n\n**Response fields:**\n\n* `vin` — detected VIN string\n* `confidence` — confidence score (0–1)\n* `bounding_box` — pixel coordinates of VIN in image\n* `candidates` — alternative VIN readings if confidence is low\n\nUse for images of VIN stickers, door jambs, or dashboard VIN plates.\n\n**Example:**\n    POST /v1/vinocr?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/vin-sticker.jpg\"}\n\n* * *\n\n12. Plate Image Recognition\n\n---------------------------\n\n**Endpoint:** `POST /platerecognition`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/car-photo.jpg\"\n    }\n\n**Response fields:**\n\n* `plates[]` — array of detected plates:\n  * `plate` — plate text\n  * `confidence` — confidence score\n  * `bounding_box` — pixel coordinates in image\n  * `vehicle_type` — car, truck, motorcycle, etc.\n  * `country` / `state` — inferred location (where detectable)\n\nUse for photos of vehicles where you want to extract the plate number.\n\n**Example:**\n    POST /platerecognition?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/car-photo.jpg\"}\n\n* * *\n\n13. Auth Validate\n\n-----------------\n\n**Endpoint:** `GET /v1/auth/validate`\n\n**Parameters:**\n\n| Param | Required | Description                    |\n| ----- | -------- | ------------------------------ |\n| `key` | Yes      | The CarsXE API key to validate |\n\n**Response fields:**\n\n* `valid` — `true` if the key is active\n* Error message if invalid\n\n**Example:**\n    GET /v1/auth/validate?key=YOUR_API_KEY&source=openclaw\n\nArchive v1.1.3: 3 files, 6540 bytes\n\nFiles: refernces/api-refernce.md (13463b), SKILL.md (7639b), _meta.json (125b)\n\nFile v1.1.3:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\nenv:\n  - name: CARSXE_API_KEY\n    description: Your CarsXE API key. Get it at https://api.carsxe.com/dashboard/developer\n    required: true\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data. All endpoints are at\n`https://api.carsxe.com` and require an API key passed as `?key={{env.CARSXE_API_KEY}}`.\n\n> **API Key**: Use the `CARSXE_API_KEY` environment variable in all requests.\n> Always append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Authenticate\n\nUse `{{env.CARSXE_API_KEY}}` in all requests. Always include `source=openclaw`:\n\n```\nhttps://api.carsxe.com/specs?key={{env.CARSXE_API_KEY}}&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                      |\n| ------------------- | ---------------------- | ------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Ask user to verify `CARSXE_API_KEY` env var |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking        |\n| 429                 | Rate limit exceeded    | Wait and retry                              |\n| 5xx                 | Server error           | Retry once, then report error               |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key={{env.CARSXE_API_KEY}}&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key={{env.CARSXE_API_KEY}}&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key={{env.CARSXE_API_KEY}}&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key={{env.CARSXE_API_KEY}}&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key={{env.CARSXE_API_KEY}}&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key={{env.CARSXE_API_KEY}}&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key={{env.CARSXE_API_KEY}}&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key={{env.CARSXE_API_KEY}}&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://example.com/vin.jpg\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key={{env.CARSXE_API_KEY}}&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/vin.jpg\"}`\n\n**\"Extract the plate from this photo: https://example.com/plate.jpg\"**\n→ `POST https://api.carsxe.com/platerecognition?key={{env.CARSXE_API_KEY}}&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/plate.jpg\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key={{env.CARSXE_API_KEY}}&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.3\",\n  \"publishedAt\": 1779214787892\n}\n\nFile v1.1.3:refernces/api-refernce.md\n\nCarsXE API Reference\n====================\n\nBase URL: `https://api.carsxe.com` Auth: append `?key=YOUR_API_KEY` to every request.Always append `&source=openclaw` to every request.Docs: https://api.carsxe.com/docs\n\n* * *\n\nTable of Contents\n-----------------\n\n1. [Vehicle Specs (VIN Decode)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#1-vehicle-specs-vin-decode)\n2. [License Plate Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#2-license-plate-decoder)\n3. [Market Value](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#3-market-value)\n4. [Vehicle History](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#4-vehicle-history)\n5. [Vehicle Images](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#5-vehicle-images)\n6. [Safety Recalls](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#6-safety-recalls)\n7. [Lien & Theft](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#7-lien--theft)\n8. [International VIN Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#8-international-vin-decoder)\n9. [Year/Make/Model (YMM)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#9-yearmakemodel-ymm)\n10. [OBD Code Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#10-obd-code-decoder)\n11. [VIN OCR](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#11-vin-ocr)\n12. [Plate Image Recognition](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#12-plate-image-recognition)\n13. [Auth Validate](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#13-auth-validate)\n\n* * *\n\n1. Vehicle Specs (VIN Decode)\n\n-----------------------------\n\n**Endpoint:** `GET /specs`\n\n**Parameters:**\n\n| Param                   | Required | Description                                  |\n| ----------------------- | -------- | -------------------------------------------- |\n| `key`                   | Yes      | Your CarsXE API key                          |\n| `vin`                   | Yes      | 17-character VIN                             |\n| `deepdata`              | No       | `true` to get extended data                  |\n| `disableIntVINDecoding` | No       | `true` to disable international VIN fallback |\n\n**Response fields (key ones):**\n\n* `input.vin` — validated VIN\n* `attributes.year`, `attributes.make`, `attributes.model`, `attributes.trim`\n* `attributes.engine` — displacement, cylinders, fuel type, horsepower, torque\n* `attributes.transmission` — type, speeds\n* `attributes.drivetrain` — AWD/FWD/RWD/4WD\n* `attributes.doors`, `attributes.body_type`\n* `attributes.dimensions` — wheelbase, length, width, height, weight\n* `attributes.fuel` — tank capacity, city/hwy MPG\n* `attributes.colors` — interior/exterior options\n* `attributes.equipment` — standard and optional features list\n\n**Example:**\n    GET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n2. License Plate Decoder\n\n------------------------\n\n**Endpoint:** `GET /v2/platedecoder`\n\n**Parameters:**\n\n| Param      | Required | Description                                                                      |\n| ---------- | -------- | -------------------------------------------------------------------------------- |\n| `key`      | Yes      | Your CarsXE API key                                                              |\n| `plate`    | Yes      | License plate number                                                             |\n| `country`  | Yes      | Country code (e.g., `US`, `CA`, `GB`)                                            |\n| `state`    | No       | State/province abbreviation (e.g., `CA`, `NY`) — improves accuracy for US plates |\n| `district` | No       | District or region within the country                                            |\n\n**Response fields:**\n\n* `vin` — resolved VIN\n* `make`, `model`, `year`\n* `state`, `country`\n* Basic vehicle attributes\n\n**Tip:** After decoding a plate, chain to `/specs`, `/history`, or `/v1/recalls` using the returned VIN.\n\n**Example:**\n    GET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw\n\n* * *\n\n3. Market Value\n\n---------------\n\n**Endpoint:** `GET /v2/marketvalue`\n\n**Parameters:**\n\n| Param       | Required | Description                                                       |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| `key`       | Yes      | Your CarsXE API key                                               |\n| `vin`       | Yes      | 17-character VIN                                                  |\n| `state`     | No       | US state abbreviation (affects regional pricing, e.g. `CA`, `TX`) |\n| `mileage`   | No       | Current mileage of the vehicle                                    |\n| `condition` | No       | `excellent`, `clean`, `average`, or `rough`                       |\n\n**Response fields:**\n\n* `retail` — estimated retail price\n* `trade_in` — trade-in value\n* `msrp` — original MSRP\n* `mileage_adjustment` — adjustment based on recorded mileage\n* `condition` — assumed condition\n* `currency` — USD by default\n\n**Example:**\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n    GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw\n\n* * *\n\n4. Vehicle History\n\n------------------\n\n**Endpoint:** `GET /history`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `junk` — junk/salvage title records\n* `insurance` — insurance loss records\n* `brands` — title brands (rebuilt, flood, fire, etc.)\n* `titles` — title history by state\n* `odometer` — odometer readings over time\n* `theft` — theft/recovery records\n* `accidents` — accident/damage records (where available)\n* `exports` — export records\n\n**Example:**\n    GET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n5. Vehicle Images\n\n-----------------\n\n**Endpoint:** `GET /images`\n\n**Parameters:**\n\n| Param         | Required | Description                                                               |\n| ------------- | -------- | ------------------------------------------------------------------------- |\n| `key`         | Yes      | Your CarsXE API key                                                       |\n| `make`        | Yes      | Vehicle make (e.g., `BMW`)                                                |\n| `model`       | Yes      | Vehicle model (e.g., `X5`)                                                |\n| `year`        | No       | Year (e.g., `2019`)                                                       |\n| `trim`        | No       | Trim level                                                                |\n| `color`       | No       | Color name (e.g., `blue`, `white`)                                        |\n| `transparent` | No       | `true` for transparent background                                         |\n| `angle`       | No       | `front`, `rear`, `side`, `interior`                                       |\n| `photoType`   | No       | `interior`, `exterior`, or `engine`                                       |\n| `size`        | No       | `Small`, `Medium`, `Large`, `Wallpaper`, or `All`                         |\n| `license`     | No       | `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |\n\n**Response fields:**\n\n* Array of image objects with `url`, `width`, `height`, `color`, `angle`, `year`\n\n**Example:**\n    GET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw\n\n* * *\n\n6. Safety Recalls\n\n-----------------\n\n**Endpoint:** `GET /v1/recalls`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `total` — number of recalls found\n* `recalls[]` — array of recall objects:\n  * `date` — recall date\n  * `description` — what's being recalled\n  * `risk` — safety risk description\n  * `remedy` — fix/remedy description\n  * `status` — open/closed\n  * `nhtsa_id` — NHTSA campaign number\n\n**Important:** Always highlight open recalls prominently for the user.\n\n**Example:**\n    GET /v1/recalls?key=KEY&vin=1C4JJXR64PW696340&source=openclaw\n\n* * *\n\n7. Lien & Theft\n\n---------------\n\n**Endpoint:** `GET /v1/lien-theft`\n\n**Parameters:**\n\n| Param | Required | Description         |\n| ----- | -------- | ------------------- |\n| `key` | Yes      | Your CarsXE API key |\n| `vin` | Yes      | 17-character VIN    |\n\n**Response fields:**\n\n* `lien` — lien records (active loans/encumbrances)\n* `theft` — theft/stolen vehicle records\n* `recovery` — recovery records if stolen\n\n**Important:** Flag any active liens or unresolved theft records prominently — critical for buyers.\n\n**Example:**\n    GET /v1/lien-theft?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\n\n* * *\n\n8. International VIN Decoder\n\n----------------------------\n\n**Endpoint:** `GET /v1/international-vin-decoder`\n\n**Parameters:**\n\n| Param | Required | Description                        |\n| ----- | -------- | ---------------------------------- |\n| `key` | Yes      | Your CarsXE API key                |\n| `vin` | Yes      | 17-character VIN (non-US vehicles) |\n\n**Response fields:** Similar to `/specs` but includes international-specific fields:\n\n* `manufacturer_country`\n* `emissions_standard` — Euro NCAP ratings where applicable\n* `regional_specs`\n\nUse for VINs that don't start with 1, 2, 3, 4, or 5 (those are North American).\n\n**Example:**\n    GET /v1/international-vin-decoder?key=KEY&vin=WF0MXXGBWM8R43240&source=openclaw\n\n* * *\n\n9. Year/Make/Model (YMM)\n\n------------------------\n\n**Endpoint:** `GET /v1/ymm`\n\n**Parameters:**\n\n| Param   | Required | Description                    |\n| ------- | -------- | ------------------------------ |\n| `key`   | Yes      | Your CarsXE API key            |\n| `year`  | Yes      | Model year (e.g., `2020`)      |\n| `make`  | Yes      | Make (e.g., `Toyota`)          |\n| `model` | Yes      | Model (e.g., `Camry`)          |\n| `trim`  | No       | Trim level (e.g., `LE`, `XSE`) |\n\n**Response fields:**\n\n* Vehicle specs similar to `/specs`\n* `colors` — available colors for that year/trim\n* `features` — standard features list\n* `options` — available option packages\n* `configurations` — all available trims if no trim specified\n\nUse when the user doesn't have a VIN but knows the year, make, and model.\n\n**Example:**\n    GET /v1/ymm?key=KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw\n\n* * *\n\n10. OBD Code Decoder\n\n--------------------\n\n**Endpoint:** `GET /obdcodesdecoder`\n\n**Parameters:**\n\n| Param  | Required | Description                                            |\n| ------ | -------- | ------------------------------------------------------ |\n| `key`  | Yes      | Your CarsXE API key                                    |\n| `code` | Yes      | OBD-II code (e.g., `P0300`, `C0035`, `B1234`, `U0100`) |\n\n**Code prefixes:**\n\n* `P` — Powertrain (engine, transmission)\n* `C` — Chassis (brakes, suspension)\n* `B` — Body (airbags, comfort systems)\n* `U` — Network/Communication\n\n**Response fields:**\n\n* `code` — the code\n* `description` — plain-language description of the fault\n* `diagnosis` — likely causes\n* `date` — when the code was last updated in the database\n\n**Example:**\n    GET /obdcodesdecoder?key=KEY&code=P0300&source=openclaw\n\n* * *\n\n11. VIN OCR\n\n-----------\n\n**Endpoint:** `POST /v1/vinocr`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/vin-sticker.jpg\"\n    }\n\n**Response fields:**\n\n* `vin` — detected VIN string\n* `confidence` — confidence score (0–1)\n* `bounding_box` — pixel coordinates of VIN in image\n* `candidates` — alternative VIN readings if confidence is low\n\nUse for images of VIN stickers, door jambs, or dashboard VIN plates.\n\n**Example:**\n    POST /v1/vinocr?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/vin-sticker.jpg\"}\n\n* * *\n\n12. Plate Image Recognition\n\n---------------------------\n\n**Endpoint:** `POST /platerecognition`\n\n**Method:** POST **Content-Type:** `application/json`\n\n**Query params:** `?key=YOUR_API_KEY&source=openclaw`\n\n**Request body:**\n    {\n      \"image\": \"https://example.com/car-photo.jpg\"\n    }\n\n**Response fields:**\n\n* `plates[]` — array of detected plates:\n  * `plate` — plate text\n  * `confidence` — confidence score\n  * `bounding_box` — pixel coordinates in image\n  * `vehicle_type` — car, truck, motorcycle, etc.\n  * `country` / `state` — inferred location (where detectable)\n\nUse for photos of vehicles where you want to extract the plate number.\n\n**Example:**\n    POST /platerecognition?key=KEY&source=openclaw\n    Body: {\"image\":\"https://example.com/car-photo.jpg\"}\n\n* * *\n\n13. Auth Validate\n\n-----------------\n\n**Endpoint:** `GET /v1/auth/validate`\n\n**Parameters:**\n\n| Param | Required | Description                    |\n| ----- | -------- | ------------------------------ |\n| `key` | Yes      | The CarsXE API key to validate |\n\n**Response fields:**\n\n* `valid` — `true` if the key is active\n* Error message if invalid\n\n**Example:**\n    GET /v1/auth/validate?key=YOUR_API_KEY&source=openclaw\n\nArchive v1.1.2: 3 files, 6527 bytes\n\nFiles: refernces/api-refernce.md (13463b), SKILL.md (7535b), _meta.json (125b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: carsxe\ndescription: >\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\n  market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code\n  decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN\n  OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model,\n  or OBD code. Also triggers for: \"what's this car worth\", \"check for recalls\", \"vehicle history\n  report\", \"decode this plate\", \"what does check engine code X mean\", or any automotive data query.\n  Always use this skill when working with CarsXE APIs — do not guess API behavior without it.\nenv:\n  - name: CARSXE_API_KEY\n    description: Your CarsXE API key. Get it at https://api.carsxe.com/dashboard/developer\n    required: true\n---\n\n# CarsXE Skill\n\nCarsXE provides a REST API for comprehensive vehicle data. All endpoints are at\n`https://api.carsxe.com` and require an API key passed as `?key=CARSXE_API_KEY`.\n\n> **API Key**: Use the `CARSXE_API_KEY` environment variable in all requests.\n> Always append `&source=openclaw` to every request.\n\n---\n\n## Quick API Map\n\n| User intent              | Endpoint                            | Method | Key Parameters                                                                                             |\n| ------------------------ | ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| Decode a VIN / get specs | `GET /specs`                        | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\n| Decode a license plate   | `GET /v2/platedecoder`              | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\n| Market value             | `GET /v2/marketvalue`               | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\n| Vehicle history report   | `GET /history`                      | GET    | `vin`                                                                                                      |\n| Vehicle images           | `GET /images`                       | GET    | `make`, `model`, optional: `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\n| Safety recalls           | `GET /v1/recalls`                   | GET    | `vin`                                                                                                      |\n| Lien & theft check       | `GET /v1/lien-theft`                | GET    | `vin`                                                                                                      |\n| International VIN        | `GET /v1/international-vin-decoder` | GET    | `vin`                                                                                                      |\n| Year/Make/Model lookup   | `GET /v1/ymm`                       | GET    | `year`, `make`, `model`, optional: `trim`                                                                  |\n| OBD code diagnosis       | `GET /obdcodesdecoder`              | GET    | `code`                                                                                                     |\n| VIN OCR from image       | `POST /v1/vinocr`                   | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Plate OCR from image     | `POST /platerecognition`            | POST   | JSON body: `{\"image\": \"<URL>\"}`                                                                            |\n| Validate API key         | `GET /v1/auth/validate`             | GET    | `key`                                                                                                      |\n\n---\n\n## Workflow\n\n### 1. Authenticate\n\nUse `CARSXE_API_KEY` env var in all requests. Always include `source=openclaw`:\n\n```\nhttps://api.carsxe.com/specs?key=CARSXE_API_KEY&vin=WBAFR7C57CC811956&source=openclaw\n```\n\n### 2. Choose the right endpoint\n\n- VIN provided → `/specs` first, chain to other endpoints as needed\n- Plate provided → `/v2/platedecoder` to resolve VIN, then chain if needed\n- Make/Model/Year only → `/v1/ymm` or `/images`\n- OBD code (P/C/B/U + digits) → `/obdcodesdecoder`\n- Image URL for VIN → `POST /v1/vinocr` with `{\"image\": \"<URL>\"}`\n- Image URL for plate → `POST /platerecognition` with `{\"image\": \"<URL>\"}`\n\n### 3. Chain requests when helpful\n\nExample: *\"Is this plate stolen and does it have open recalls?\"*\n\n1. `GET /v2/platedecoder` → extract VIN\n2. In parallel: `GET /v1/lien-theft` + `GET /v1/recalls`\n\n### 4. Present results\n\nFormat output clearly. Highlight important findings (open recalls, theft records, salvage titles) prominently.\n\n---\n\n## Error Handling\n\n| HTTP Status         | Meaning                | Action                                      |\n| ------------------- | ---------------------- | ------------------------------------------- |\n| 401 / `invalid key` | Bad or missing API key | Ask user to verify `CARSXE_API_KEY` env var |\n| 404 / `no results`  | VIN/plate not found    | Inform user, suggest double-checking        |\n| 429                 | Rate limit exceeded    | Wait and retry                              |\n| 5xx                 | Server error           | Retry once, then report error               |\n\nAlways check the `error` field in JSON responses — CarsXE sometimes returns HTTP 200 with an error body.\n\n---\n\n## Examples\n\n**\"What are the specs for VIN WBAFR7C57CC811956?\"**\n→ `GET https://api.carsxe.com/specs?key=CARSXE_API_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode California plate 7XER187\"**\n→ `GET https://api.carsxe.com/v2/platedecoder?key=CARSXE_API_KEY&plate=7XER187&country=US&state=CA&source=openclaw`\n\n**\"What's my car worth? VIN WBAFR7C57CC811956, 45k miles, clean condition, California\"**\n→ `GET https://api.carsxe.com/v2/marketvalue?key=CARSXE_API_KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw`\n\n**\"Does this car have any recalls? 1C4JJXR64PW696340\"**\n→ `GET https://api.carsxe.com/v1/recalls?key=CARSXE_API_KEY&vin=1C4JJXR64PW696340&source=openclaw`\n\n**\"Check liens and theft for WBAFR7C57CC811956\"**\n→ `GET https://api.carsxe.com/v1/lien-theft?key=CARSXE_API_KEY&vin=WBAFR7C57CC811956&source=openclaw`\n\n**\"Decode this international VIN: WF0MXXGBWM8R43240\"**\n→ `GET https://api.carsxe.com/v1/international-vin-decoder?key=CARSXE_API_KEY&vin=WF0MXXGBWM8R43240&source=openclaw`\n\n**\"Look up 2020 Toyota Camry LE\"**\n→ `GET https://api.carsxe.com/v1/ymm?key=CARSXE_API_KEY&year=2020&make=Toyota&model=Camry&trim=LE&source=openclaw`\n\n**\"My check engine light shows P0300\"**\n→ `GET https://api.carsxe.com/obdcodesdecoder?key=CARSXE_API_KEY&code=P0300&source=openclaw`\n\n**\"Extract the VIN from this photo: https://example.com/vin.jpg\"**\n→ `POST https://api.carsxe.com/v1/vinocr?key=CARSXE_API_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/vin.jpg\"}`\n\n**\"Extract the plate from this photo: https://example.com/plate.jpg\"**\n→ `POST https://api.carsxe.com/platerecognition?key=CARSXE_API_KEY&source=openclaw`\n→ Body: `{\"image\": \"https://example.com/plate.jpg\"}`\n\n**\"Get vehicle images for BMW X5 2019\"**\n→ `GET https://api.carsxe.com/images?key=CARSXE_API_KEY&make=BMW&model=X5&year=2019&source=openclaw`\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1779213552577\n}\n\nFile v1.1.2:refernces/api-refernce.md\n\nCarsXE API Reference\n====================\n\nBase URL: `https://api.carsxe.com` Auth: append `?key=YOUR_API_KEY` to every request.Always append `&source=openclaw` to every request.Docs: https://api.carsxe.com/docs\n\n* * *\n\nTable of Contents\n-----------------\n\n1. [Vehicle Specs (VIN Decode)](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#1-vehicle-specs-vin-decode)\n2. [License Plate Decoder](https://claude.ai/chat/9acb51c3-1649-43b4-946f-58aa2e348c32#2-license-plate-decoder)\n3. [Marke\n\nArchive v1.1.1: 3 files, 6525 bytes\n\nFiles: refernces/api-refernce.md (13463b), SKILL.md (7553b), _meta.json (125b)\n\nArchive v1.1.0: 3 files, 6326 bytes\n\nFiles: refernces/api-refernce.md (10955b), SKILL.md (5537b), _meta.json (125b)\n\nArchive v1.0.3: 3 files, 6129 bytes\n\nFiles: refernces/api-refernce.md (11163b), SKILL.md (4701b), _meta.json (125b)","readmeExcerpt":"Skill: CarsXE Owner: carsxe Summary: Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup, market value, vehicle history, safety recalls (VIN, year/make/model, or batch), lien/theft checks, OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, YMM options, ownership (Enterprise), and plate/VIN OCR from images. Use this skill any time th","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"openclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\""},{"language":"text","snippet":"GET /specs?key=KEY&vin=WBAFR7C57CC811956&source=openclaw"},{"language":"text","snippet":"GET /v2/platedecoder?key=KEY&plate=7XER187&country=US&state=CA&source=openclaw"},{"language":"text","snippet":"GET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&source=openclaw\nGET /v2/marketvalue?key=KEY&vin=WBAFR7C57CC811956&state=CA&mileage=45000&condition=clean&source=openclaw"},{"language":"text","snippet":"GET /history?key=KEY&vin=WBAFR7C57CC811956&source=openclaw"},{"language":"text","snippet":"GET /images?key=KEY&make=BMW&model=X5&year=2019&source=openclaw"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: carsxe\r\ndescription: >\r\n  Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup,\r\n  market value, vehicle history, safety recalls (VIN, year/make/model, or batch), lien/theft checks,\r\n  OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model\r\n  lookups, YMM options, ownership (Enterprise), and plate/VIN OCR from images. Use this skill any\r\n  time the user asks about a vehicle by VIN, plate, make/model, or OBD code. Also triggers for:\r\n  \"what's this car worth\", \"check for recalls\", \"any recalls on a 2023 Toyota Camry\", \"check recalls\r\n  for this list of VINs\", \"what Toyota models were sold in 2023\", \"who is the registered owner\",\r\n  \"vehicle history report\", \"decode this plate\", \"what does check engine code X mean\", or any\r\n  automotive data query. Always use this skill when working with CarsXE APIs — do not guess API\r\n  behavior without it.\r\nversion: 1.2.0\r\nhomepage: https://api.carsxe.com/docs\r\n---\r\n\r\n# CarsXE Skill\r\n\r\nCarsXE provides a REST API for comprehensive vehicle data at `https://api.carsxe.com`.\r\n\r\nDetailed parameter notes for newer endpoints live in `{baseDir}/references/`.\r\n\r\n## API Key\r\n\r\nThe API key is injected as the `CARSXE_KEY` environment variable. Read it before\r\nmaking any request:\r\n\r\n- Use `process.env.CARSXE_KEY` in Node.js\r\n- Use `$env:CARSXE_KEY` in PowerShell\r\n- Use `$CARSXE_KEY` in bash/zsh\r\n\r\nIf `CARSXE_KEY` is empty or missing, tell the user to run:\r\n\r\n```\r\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\r\n```\r\n\r\nThen restart the gateway.\r\n\r\nAlways append `&source=openclaw` to every request.\r\n\r\n---\r\n\r\n## Quick API Map\r\n\r\n| User intent                    | Endpoint                                      | Method | Key Parameters                                                                                             |\r\n| ------------------------------ | --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\r\n| Decode a VIN / get specs       | `GET /specs`                                  | GET    | `vin`, optional: `deepdata`, `disableIntVINDecoding`                                                       |\r\n| Decode a license plate         | `GET /v2/platedecoder`                        | GET    | `plate`, `country` (required), `state`, `district` (optional)                                              |\r\n| Market value                   | `GET /v2/marketvalue`                         | GET    | `vin`, optional: `state`, `mileage`, `condition`                                                           |\r\n| Vehicle history report         | `GET /history`                                | GET    | `vin`                                                                                                      |\r\n| Vehicle images                 | `GET /images`                                 | GET    | `make`, `mo"},{"path":"README.md","content":"# CarsXE Skill for OpenClaw\r\n\r\nAccess the full suite of [CarsXE](https://api.carsxe.com) vehicle data APIs from [OpenClaw](https://openclaw.ai) — decode VINs, look up license plates, get market values, check history, recalls (VIN, YMM, or batch), YMM options, ownership, liens, OBD codes, and more.\r\n\r\nPublished on ClawHub as [@carsxe/carsxe](https://clawhub.ai/carsxe/carsxe).\r\n\r\n## Features\r\n\r\n| Intent | Endpoint |\r\n| --- | --- |\r\n| Decode a VIN / specs | `GET /specs` |\r\n| License plate lookup | `GET /v2/platedecoder` |\r\n| Market value | `GET /v2/marketvalue` |\r\n| Vehicle history | `GET /history` |\r\n| Vehicle images | `GET /images` |\r\n| Safety recalls (VIN) | `GET /v1/recalls` |\r\n| Safety recalls (year/make/model) | `GET /v1/recalls-ymm` |\r\n| Safety recalls (batch) | `POST/GET /v1/recalls-batch/*` |\r\n| Lien & theft | `GET /v1/lien-theft` |\r\n| International VIN | `GET /v1/international-vin-decoder` |\r\n| Year/Make/Model specs | `GET /v1/ymm` |\r\n| YMM options (dropdowns) | `GET /v1/ymm-options` |\r\n| Ownership (Enterprise) | `GET /v1/ownership/vin\\|person\\|address\\|zip` |\r\n| OBD-II decoder | `GET /obdcodesdecoder` |\r\n| VIN OCR | `POST /v1/vinocr` |\r\n| Plate OCR | `POST /platerecognition` |\r\n\r\nThe skill is auto-invoked from natural language. Agents call `https://api.carsxe.com` with `key=$CARSXE_KEY` and `source=openclaw` on every request.\r\n\r\n## Installation\r\n\r\n```bash\r\nopenclaw skills install carsxe\r\n```\r\n\r\nOr from ClawHub:\r\n\r\n```bash\r\nopenclaw skills install @carsxe/carsxe\r\n```\r\n\r\n## Setup\r\n\r\nGet an API key from the [CarsXE developer dashboard](https://api.carsxe.com/dashboard/developer), then:\r\n\r\n```bash\r\nopenclaw config set skills.entries.carsxe.env.CARSXE_KEY \"cxe_live_YOUR_KEY\"\r\n```\r\n\r\nRestart the OpenClaw gateway after setting the key.\r\n\r\n## Usage examples\r\n\r\nJust describe what you need — OpenClaw selects the endpoint and chains calls when required.\r\n\r\n- *\"What are the specs for VIN WBAFR7C57CC811956?\"* → `/specs`\r\n- *\"Decode California plate 7XER187\"* → `/v2/platedecoder`\r\n- *\"What's this car worth?\"* → `/v2/marketvalue`\r\n- *\"Does this VIN have any recalls?\"* → `/v1/recalls`\r\n- *\"Any recalls on a 2023 Toyota Camry?\"* → `/v1/recalls-ymm`\r\n- *\"Check recalls for this list of VINs\"* → `/v1/recalls-batch/*`\r\n- *\"What Toyota models were sold in 2023?\"* → `/v1/ymm-options`\r\n- *\"Who is the registered owner of this VIN?\"* → `/v1/ownership/vin`\r\n- *\"Check liens and theft for this VIN\"* → `/v1/lien-theft`\r\n- *\"My check engine light shows P0300\"* → `/obdcodesdecoder`\r\n\r\n## Skill layout\r\n\r\n```\r\nSKILL.md                      # Agent instructions + API map\r\nreferences/api-reference.md   # Full endpoint table\r\nreferences/recalls-ymm.md\r\nreferences/recalls-batch.md\r\nreferences/ymm-options.md\r\nreferences/ownership.md\r\n```\r\n\r\n## Docs\r\n\r\n- Skill listing: [clawhub.ai/carsxe/carsxe](https://clawhub.ai/carsxe/carsxe)\r\n- API docs: [api.carsxe.com/docs](https://api.carsxe.com/docs)\r\n- OpenClaw install guide: [api.carsxe.com/docs/integrations/openclaw-quickstart](https:"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ddzxwc7mqp73zn7yfrbxa0d83fr09\",\n  \"slug\": \"carsxe\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1789061343295\n}"},{"path":"references/api-reference.md","content":"# CarsXE API reference (OpenClaw)\r\n\r\n**Base URL:** `https://api.carsxe.com`\r\n\r\nAppend `key=$CARSXE_KEY` and `source=openclaw` on **every** request.\r\n\r\nDo **not** call `usPlateDecoder` or `/v1/ownership/phone`.\r\n\r\n| Intent | Endpoint | Method | Parameters |\r\n| --- | --- | --- | --- |\r\n| VIN specs | `/specs` | GET | `vin`; optional `deepdata`, `disableIntVINDecoding` |\r\n| Plate decoder | `/v2/platedecoder` | GET | `plate`, `country` (required); optional `state`, `district` |\r\n| Market value | `/v2/marketvalue` | GET | `vin`; optional `state`, `mileage`, `condition` |\r\n| History | `/history` | GET | `vin` |\r\n| Images | `/images` | GET | `make`, `model`; optional `year`, `trim`, `color`, `angle`, `photoType`, `size`, `license`, `transparent` |\r\n| Recalls (VIN) | `/v1/recalls` | GET | `vin` |\r\n| Recalls (YMM) | `/v1/recalls-ymm` | GET | `year`, `make`, `model` |\r\n| Recalls batch submit | `/v1/recalls-batch/submit` | POST | JSON `vins` and/or `csv` / `csvUrl`; optional `webhookUrl` |\r\n| Recalls batch status | `/v1/recalls-batch/status` | GET | `batchId` |\r\n| Recalls batch results | `/v1/recalls-batch/results` | GET | `batchId` |\r\n| Recalls batch download | `/v1/recalls-batch/download` | GET | `batchId` (returns `text/csv`) |\r\n| Lien & theft | `/v1/lien-theft` | GET | `vin` |\r\n| International VIN | `/v1/international-vin-decoder` | GET | `vin` |\r\n| YMM specs | `/v1/ymm` | GET | `year`, `make`, `model`; optional `trim` |\r\n| YMM options | `/v1/ymm-options` | GET | optional `dimension`, `year`, `make`, `model`, `trim` |\r\n| Ownership by VIN | `/v1/ownership/vin` | GET | `vin`; optional `include` |\r\n| Ownership by person | `/v1/ownership/person` | GET | `first_name`, `last_name`, `address`, `zip`; optional `include` |\r\n| Ownership by address | `/v1/ownership/address` | GET | `address`, `zip`; optional `include`, `variant` |\r\n| Ownership by ZIP | `/v1/ownership/zip` | GET | `zip`; optional `gender`, `min_age`, `max_age`, `income`, `page`, `limit`, `include`, `variant` |\r\n| OBD decoder | `/obdcodesdecoder` | GET | `code` |\r\n| VIN OCR | `/v1/vinocr` | POST | JSON `{\"image\": \"<URL>\"}` |\r\n| Plate OCR | `/platerecognition` | POST | JSON `{\"image\": \"<URL>\"}` |\r\n| Auth validate | `/v1/auth/validate` | GET | `key` |\r\n\r\n## Routing\r\n\r\n- Recalls: VIN → `/v1/recalls`; year/make/model → `/v1/recalls-ymm`; many VINs → `/v1/recalls-batch/*`\r\n- YMM: dropdowns / \"what years was X sold\" → `/v1/ymm-options`; full specs → `/v1/ymm`\r\n- Ownership is Enterprise-only and billed per returned record. Street `address` is street only (no city/state).\r\n\r\n## Details\r\n\r\n- [Recalls by YMM](recalls-ymm.md)\r\n- [Recalls Batch](recalls-batch.md)\r\n- [YMM Options](ymm-options.md)\r\n- [Ownership](ownership.md)"},{"path":"references/ownership.md","content":"# Ownership (Enterprise)\r\n\r\nRegistered owners and residents. Requires an Enterprise `ownership` entitlement. Billed per returned record (`owners` / `matches` / `records`), not per request.\r\n\r\nDo **not** call `/v1/ownership/phone`.\r\n\r\n`include` is optional: comma-separated `demographics,emails,phones,vehicle_history`. Omit it to get everything. `include` only shapes which sections are shown; it does not change billing.\r\n\r\nStreet `address` is street only — no city or state (max 100). ZIP is 5-digit US (person/address may be ZIP+4; zip lookup is exactly 5 digits).\r\n\r\nHTTP 404 / `error: \"no_data\"` means no match and is **not** billed. HTTP 401 / entitlement error means the key is not entitled.\r\n\r\n## VIN\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/vin?key=$CARSXE_KEY&vin={VIN}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: 17-character VIN.\r\n\r\n## Person\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/person?key=$CARSXE_KEY&first_name={FIRST}&last_name={LAST}&address={ADDRESS}&zip={ZIP}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: `first_name`, `last_name`, street `address`, `zip`.\r\n\r\n## Address\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/address?key=$CARSXE_KEY&address={ADDRESS}&zip={ZIP}&source=openclaw[&include={INCLUDE}]\r\n```\r\n\r\nRequired: street `address`, `zip`.\r\n\r\n## ZIP\r\n\r\n```\r\nGET https://api.carsxe.com/v1/ownership/zip?key=$CARSXE_KEY&zip={ZIP}&source=openclaw[&gender={GENDER}][&min_age={MIN}][&max_age={MAX}][&income={INCOME}][&page={PAGE}][&limit={LIMIT}][&include={INCLUDE}]\r\n```\r\n\r\nRequired: 5-digit `zip`. Optional: `gender` (`M` or `F`), `min_age`, `max_age`, `income` (code or label), `page` (default 1), `limit` (default 15, max 100).\r\n\r\nWarn before a ZIP search with a high `limit` — one page can bill many units."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1890,"uniquenessScore":33,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:20:25.703Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:00:02.911Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}