# PatchDesk Mobile Layout Analyzer

> PatchDesk Mobile Layout Analyzer is a paid API for AI agents from patchdesk.5-161-90-111.sslip.io, paid per call via x402, $0.25/call, status down (last checked 2026-09-15).

Captures screenshots and measures horizontal overflow/geometry at three mobile viewport widths (320, 375, 768px) to produce mobile layout evidence for a given URL

## Facts

- Endpoint: POST https://patchdesk.5-161-90-111.sslip.io/reports
- Price: $0.25/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/patchdesk-mobile-layout-analyzer-e8927cd4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DxGWPy0G5Fh1PuPRqAl35

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 patchdesk-mobile-layout-analyzer-e8927cd4 -d '<json body>'
```

Example prompt: Can you run a mobile layout audit on https://mysite.com and show me screenshots plus any horizontal overflow findings at the 320, 375, and 768 pixel widths?

## When to prefer this

Choose this endpoint when you need concrete, evidence-based mobile layout analysis — specifically screenshots plus geometric measurements at the three most common mobile breakpoints (320, 375, 768px). It is ideal for automated QA pipelines, responsive design audits, or generating client-facing evidence of mobile compatibility. Prefer it over general-purpose screenshot tools when horizontal overflow detection and DOM-level findings at multiple widths are required in a single call.

## Known failure modes

- URL is not publicly reachable — report may fail or return empty results
- URL does not use HTTPS — rejected by input schema pattern
- Invalid UUID format for requestId — schema validation error
- Page load timeout if the target URL is slow to respond
- Findings truncated if more than 100 overflow elements are detected
- Screenshot height capped at 3000px — very long pages may be truncated
- Payment failure via x402 protocol — call not executed

## How this service works

Three mobile-width screenshots, horizontal overflow measurements and CSS selectors for one public page. Automated reports for 0.25 USDC on Base.

## Output

A JSON report containing: a status, a requestId, a human-readable summary, an array of three results (one per width: 320, 375, 768px), each containing a screenshot filename (e.g. 320.png), viewport and document geometry measurements, horizontal overflow flag and overflow pixel count, a list of DOM element findings (elements outside viewport or clipped), and settlement/artifact metadata. Screenshots are returned as artifacts alongside the report.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "pattern": "^https://"
  },
  "requestId": {
   "type": "string",
   "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "required": [
   "status",
   "requestId",
   "report",
   "artifacts",
   "settlement"
  ],
  "properties": {
   "report": {
    "type": "object",
    "required": [
     "schemaVersion",
     "requestId",
     "url",
     "generatedAt",
     "mode",
     "status",
     "browser",
     "publicFetchEnabled",
     "summary",
     "limitations",
     "results"
    ],
    "properties": {
     "url": {
      "type": "string",
      "format": "uri"
     },
     "mode": {
      "const": "public-isolated-worker"
     },
     "status": {
      "const": "complete"
     },
     "browser": {
      "type": "string"
     },
     "results": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "width",
        "measurements",
        "screenshot",
        "capture"
       ],
       "properties": {
        "width": {
         "enum": [
          320,
          375,
          768
         ]
        },
        "capture": {
         "type": "object",
         "required": [
          "width",
          "height",
          "truncated"
         ],
         "properties": {
          "width": {
           "enum": [
            320,
            375,
            768
           ]
          },
          "height": {
           "type": "integer",
           "maximum": 3000,
           "minimum": 1
          },
          "truncated": {
           "type": "boolean"
          }
         }
        },
        "screenshot": {
         "enum": [
          "320.png",
          "375.png",
          "768.png"
         ]
        },
        "measurements": {
         "type": "object",
         "required": [
          "viewport",
          "document",
          "horizontalOverflow",
          "overflowPx",
          "checkedElements",
          "findingsTruncated",
          "findings"
         ],
         "properties": {
          "scope": {
           "type": "string"
          },
          "document": {
           "type": "object"
          },
          "findings": {
           "type": "array",
           "items": {
            "type": "object",
            "description": "outside_viewport or clipped_horizontal_content finding, with selector and measured bounds. A finding may be intentional."
           },
           "maxItems": 100
          },
          "viewport": {
           "type": "object"
          },
          "overflowPx": {
           "type": "number",
           "minimum": 0
          },
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/patchdesk-mobile-layout-analyzer-e8927cd4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from patchdesk.5-161-90-111.sslip.io](https://www.zero.xyz/host/patchdesk.5-161-90-111.sslip.io/llms.txt)
