# USB Configuration Alternate Interface Endpoint Topology Decoder

> USB Configuration Alternate Interface Endpoint Topology Decoder is a paid API for AI agents from detect.halowerk.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-11-04).

Decodes USB configuration/interface/endpoint descriptors from base64, resolves selected alternates per interface, and identifies endpoint collisions — without requiring physical device access.

## Facts

- Endpoint: POST https://detect.halowerk.com/v1/F-TD2000-DATASTRUCTURES-01/usb2-configuration-alternate-interface-endpoint-topology?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/usb-configuration-alternate-interface-endpoint-topology-decoder-0141f776
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ffjwwu0PtBL1Y2KCPtMqm

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability usb-configuration-alternate-interface-endpoint-topology-decoder-0141f776 -d '<json body>'
```

Example prompt: Parse this base64-encoded USB configuration descriptor and resolve interface 0 to alternate 1, interface 1 to alternate 0 — tell me the active endpoint topology and flag any endpoint address collisions.

## When to prefer this

Use this endpoint when you need to statically analyze a USB configuration descriptor — resolving interface alternate settings and detecting endpoint collisions — without access to a physical device or OS USB stack. It is ideal for firmware development, driver QA, USB spec compliance checking, and offline descriptor auditing. Prefer it over raw binary parsers when you need structured topology output with collision detection in a single API call.

## Known failure modes

- Malformed or truncated base64 input returns a parse error
- Selected alternate index out of range for a given interface returns a validation error
- Descriptor violates USB spec structure (e.g. wrong bLength) causes decode failure
- Empty configuration_base64 with no claim returns empty topology
- Conflicting or duplicate interface/alternate entries in selected_alternates may cause undefined resolution

## How this service works

Decode complete USB configuration/interface/endpoint descriptors and resolve one selected alternate per interface, endpoint counts and active endpoint collisions; no device access.

## Output

Returns the fully decoded USB configuration topology: for each active interface (resolved to the selected alternate), a list of endpoints with address, direction, transfer type, max packet bytes, interval, and additional transactions. Also returns a conflicts list identifying any endpoint address collisions across active interfaces, plus summary counts.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "artifact": {
   "type": "object",
   "required": [
    "usbConfig"
   ],
   "properties": {
    "usbConfig": {
     "type": "object",
     "required": [
      "data",
      "claim"
     ],
     "properties": {
      "data": {
       "type": "object",
       "required": [
        "configuration_base64",
        "selected_alternates"
       ],
       "properties": {
        "selected_alternates": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "interface",
           "alternate"
          ],
          "properties": {
           "alternate": {
            "type": "integer",
            "maximum": 255,
            "minimum": 0
           },
           "interface": {
            "type": "integer",
            "maximum": 255,
            "minimum": 0
           }
          },
          "additionalProperties": false
         },
         "maxItems": 64,
         "minItems": 0
        },
        "configuration_base64": {
         "type": "string",
         "maxLength": 16000,
         "minLength": 0
        }
       },
       "additionalProperties": false
      },
      "claim": {
       "anyOf": [
        {
         "type": "null"
        },
        {
         "type": "object",
         "required": [
          "active",
          "alternates",
          "configuration_value",
          "conflicts",
          "interfaces"
         ],
         "properties": {
          "active": {
           "type": "array",
           "items": {
            "type": "object",
            "required": [
             "alternate",
             "endpoints",
             "interface"
            ],
            "properties": {
             "alternate": {
              "type": "number",
              "maximum": 1000000000000000,
              "minimum": -1000000000000000
             },
             "endpoints": {
              "type": "array",
              "items": {
               "type": "object",
               "required": [
                "additional_transactions",
                "address",
                "direction",
                "interval",
                "max_packet_bytes",
                "number",
                "transfer_type"
               ],
               "properties": {
                "number": {
                 "type": "number",
                 "maximum": 1000000000000000,
                 "minimum": -1000000000000000
                },
                "address
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/usb-configuration-alternate-interface-endpoint-topology-decoder-0141f776/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from detect.halowerk.com](https://www.zero.xyz/host/detect.halowerk.com/llms.txt)
