V2JSON (SkyV2X) Decode API

The decode API from V2JSON (SkyV2X) — 6 operation(s) for decode.

Operations 6

POST /api/v1/decode Decode #
POST /api/v1/encode Encode #
POST /api/v1/verify Verify #
GET /api/v1/types Types #
GET /api/v1/samples/{type_id} Sample #
GET /api/v1/health Health #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/v2json:v2json-decode-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

v2json-decode-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: V2JSON — V2X message codec Decode API
  description: Decode V2X UPER hex streams into enriched JSON, edit the JSON, and encode it back to UPER — with a byte-exact round-trip check. Supports CAM, DENM, CPM, VAM, MAPEM, SPATEM, SREM, SSEM, IVIM and RTCMEM (ETSI C-ITS message set). Free to use, no API key.
  contact:
    name: SkyV2X
    url: https://skyv2x.com/
  license:
    name: Proprietary (free to use)
  version: 1.1.0
tags:
- name: decode
paths:
  /api/v1/decode:
    post:
      tags:
      - decode
      summary: Decode
      description: 'Decode a hex UPER stream into structured JSON, with optional enrichment.


        The binary, invoked with --metadata, returns:

        { "metadata": {...}, # tool_version, decoded_bytes, cdd_version, etc.

        "message": {...} } # the actual decoded payload'
      operationId: decode_api_v1_decode_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecodeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecodeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/encode:
    post:
      tags:
      - decode
      summary: Encode
      description: 'Encode a decoded message back into UPER hex.


        `payload` is the bare `message` (raw, enrich=false). `type` is explicit

        (no auto; CAM needs cam_en/cam_ts). Returns the UPER hex.'
      operationId: encode_api_v1_encode_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncodeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncodeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/verify:
    post:
      tags:
      - decode
      summary: Verify
      description: Round-trip a hex through decode→encode and report byte-exactness.
      operationId: verify_api_v1_verify_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/types:
    get:
      tags:
      - decode
      summary: Types
      operationId: types_api_v1_types_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TypesResponse'
  /api/v1/samples/{type_id}:
    get:
      tags:
      - decode
      summary: Sample
      description: 'Return a random vendor reference hex sample for the given type.


        Each call returns a fresh pick from the pool loaded at startup

        (so UI chips can keep producing different traffic on repeated clicks).'
      operationId: sample_api_v1_samples__type_id__get
      parameters:
      - name: type_id
        in: path
        required: true
        schema:
          type: string
          title: Type Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  anyOf:
                  - type: string
                  - type: integer
                title: Response Sample Api V1 Samples  Type Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/health:
    get:
      tags:
      - decode
      summary: Health
      operationId: health_api_v1_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthResponse'
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    VerifyResponse:
      properties:
        success:
          type: boolean
          title: Success
        round_trip:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Round Trip
        message_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Message Type
        original_bytes:
          anyOf:
          - type: integer
          - type: 'null'
          title: Original Bytes
        reencoded_bytes:
          anyOf:
          - type: integer
          - type: 'null'
          title: Reencoded Bytes
      type: object
      required:
      - success
      title: VerifyResponse
    HealthResponse:
      properties:
        status:
          type: string
          enum:
          - ok
          - degraded
          title: Status
        binary:
          type: string
          title: Binary
        binary_version:
          type: string
          title: Binary Version
      type: object
      required:
      - status
      - binary
      - binary_version
      title: HealthResponse
    EncodeRequest:
      properties:
        payload:
          additionalProperties: true
          type: object
          title: Payload
          description: 'Bare decoded message: no wrapper, no _* keys.'
        type:
          type: string
          title: Type
          description: Explicit type; no 'auto'. CAM needs cam_en or cam_ts.
      type: object
      required:
      - payload
      - type
      title: EncodeRequest
    DecodeResponse:
      properties:
        success:
          type: boolean
          title: Success
        message_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Message Type
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
        payload:
          additionalProperties: true
          type: object
          title: Payload
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
      type: object
      required:
      - success
      title: DecodeResponse
    TypesResponse:
      properties:
        types:
          items:
            $ref: '#/components/schemas/TypeInfo'
          type: array
          title: Types
      type: object
      required:
      - types
      title: TypesResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    EncodeResponse:
      properties:
        success:
          type: boolean
          title: Success
        hex:
          anyOf:
          - type: string
          - type: 'null'
          title: Hex
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
      type: object
      required:
      - success
      title: EncodeResponse
    TypeInfo:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        standard:
          type: string
          title: Standard
        supported:
          type: boolean
          title: Supported
        note:
          anyOf:
          - type: string
          - type: 'null'
          title: Note
      type: object
      required:
      - id
      - name
      - standard
      - supported
      title: TypeInfo
    VerifyRequest:
      properties:
        hex:
          type: string
          maxLength: 20000
          minLength: 2
          title: Hex
          description: Hex-encoded UPER bytes to round-trip.
      type: object
      required:
      - hex
      title: VerifyRequest
    DecodeRequest:
      properties:
        hex:
          type: string
          maxLength: 20000
          minLength: 2
          title: Hex
          description: Hex-encoded UPER bytes (with or without 0x prefix).
        type:
          type: string
          enum:
          - auto
          - cam
          - cam_en
          - cam_ts
          - denm
          - denm_en
          - denm_ts
          - cpm
          - poim
          - saem
          - vam
          - mapem
          - spatem
          - srem
          - ssem
          - ivim
          - rtcmem
          title: Type
          description: Message type hint. 'auto' detects from messageID byte.
          default: auto
        enrich:
          type: boolean
          title: Enrich
          description: Add readable _* sibling fields.
          default: true
      type: object
      required:
      - hex
      title: DecodeRequest