Refcat

REST API · v1

API voor ontwikkelaars

Lees en doorzoek de Refcat-catalogus: apps, flows, schermen en e-mails. Alle endpoints gebruiken GET en retourneren JSON.

Eerste verzoek

Gebruik je bestaande refcat_sk_-sleutel via Account → API-sleutels met catalog:read. Verstuur deze vanuit je server in de Authorization Bearer-header. Cookies worden niet geaccepteerd. Houd de sleutel geheim.

refcat_sk_ →
export REFCAT_API_KEY='refcat_sk_…'
curl --get 'https://api.refcat.app/api/v1/screens/search' \
  -H "Authorization: Bearer $REFCAT_API_KEY" \
  --data-urlencode 'query=onboarding' \
  --data-urlencode 'platform=ios,android' \
  --data-urlencode 'limit=12'
JavaScript · Node.js / Bun
const params = new URLSearchParams({ query: "onboarding", platform: "ios", limit: "12" });
const response = await fetch(`https://api.refcat.app/api/v1/screens/search?${params}`, {
  headers: { Authorization: `Bearer ${process.env.REFCAT_API_KEY}` }
});
if (!response.ok) {
  const error = await response.json();
  throw new Error(JSON.stringify({ status: response.status, ...error }));
}
const { data, requestId } = await response.json();

Verzoeken per minuut per account, gedeeld door alle sleutels: Free 120, Pro 600, Studio 1.800. Toegangsregels van het abonnement blijven gelden. Wacht bij HTTP 429 de Retry-After-tijd af. Daglimiet voor teruggegeven catalogusitems (schermen, flows, flowstappen, apps, e-mails), gedeeld met MCP: Free 2.000, Pro 20.000, Studio 60.000; reset om 00:00 UTC en antwoordt 429 daily_quota_exceeded.

X-RateLimit-Limit: 600
X-RateLimit-Window: 60
X-Request-Id: 00000000-0000-4000-8000-000000000001

Gebruik limit en offset waar beschikbaar; offset is maximaal 200. Scheid lijstfilters met komma’s. Geldige waarden staan in /facets en /categories. Codeer IDs in URLs. Antwoorden bevatten data en requestId; vermeld requestId bij foutmeldingen. Afbeeldings- en media-URL's verlopen 24 tot 48 uur na uitgifte; vraag ze opnieuw op in plaats van ze op te slaan.

Endpointreferentie

https://api.refcat.app/api/v1

Categorieën

GET/categories

Parameters

platform (query)
{
  "type": "string",
  "enum": [
    "ios",
    "android",
    "web",
    "email",
    "game",
    "reference",
    "store",
    "ad"
  ]
}

Antwoord · 200

{
  "data": [
    {
      "key": "onboarding",
      "label": "Onboarding",
      "intent": "onboarding"
    }
  ],
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Categories"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}

Facetten

GET/facets

Parameters

query (query)
{
  "default": "",
  "type": "string",
  "maxLength": 500
}
platform (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "ios",
      "android",
      "web",
      "email",
      "game",
      "reference",
      "store",
      "ad"
    ]
  }
}
flowIntents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
uiComponents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
screenPatterns (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
pageType (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
appId (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}

Antwoord · 200

{
  "data": {
    "platform": [
      {
        "value": "ios",
        "count": 100,
        "requiresPro": false
      }
    ],
    "flowIntents": [
      {
        "value": "onboarding",
        "count": 20
      }
    ],
    "uiComponents": [],
    "pageType": [],
    "screenPatterns": []
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Facets"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}

Apps

GET/apps

Parameters

platform (query)
{
  "type": "string",
  "enum": [
    "ios",
    "android",
    "web",
    "email",
    "game",
    "reference",
    "store",
    "ad"
  ]
}
category (query)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 120
}
limit (query)
{
  "default": 24,
  "type": "integer",
  "minimum": 1,
  "maximum": 48
}
offset (query)
{
  "default": 0,
  "description": "Number of results to skip, up to 200.",
  "type": "integer",
  "minimum": 0,
  "maximum": 200
}

Antwoord · 200

{
  "data": {
    "total": 1,
    "offset": 0,
    "apps": [
      {
        "appId": "app-id",
        "slug": "example",
        "name": "Example",
        "platform": "ios",
        "screenCount": 14,
        "flows": 2,
        "logoUrl": "https://cdn.refcat.app/m/v1.<opaque>.png",
        "thumbUrl": "https://cdn.refcat.app/m/v1.<opaque>.webp"
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AppList"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/apps/search

Parameters

query * (query)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 200
}
platform (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "ios",
      "android",
      "web",
      "email",
      "game",
      "reference",
      "store",
      "ad"
    ]
  }
}
limit (query)
{
  "default": 12,
  "type": "integer",
  "minimum": 1,
  "maximum": 48
}

Antwoord · 200

{
  "data": {
    "apps": [
      {
        "appId": "app-id",
        "name": "Example",
        "platform": "ios"
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AppResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/apps/{appId}

Parameters

appId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}

Antwoord · 200

{
  "data": {
    "appId": "app-id",
    "name": "Example",
    "platform": "ios",
    "screenCount": 14,
    "flows": 2
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/App"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/apps/{appId}/flows

Parameters

appId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}
limit (query)
{
  "default": 40,
  "type": "integer",
  "minimum": 1,
  "maximum": 100
}
offset (query)
{
  "default": 0,
  "description": "Number of results to skip, up to 200.",
  "type": "integer",
  "minimum": 0,
  "maximum": 200
}

Antwoord · 200

{
  "data": {
    "app": {
      "appId": "app-id",
      "name": "Example",
      "platform": "ios"
    },
    "total": 1,
    "offset": 0,
    "flows": [
      {
        "flowId": "flow-id",
        "name": "Onboarding",
        "intents": [
          "onboarding"
        ],
        "screenCount": 14
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AppFlows"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/apps/{appId}/similar

Parameters

appId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}

Antwoord · 200

{
  "data": {
    "apps": [
      {
        "appId": "similar-id",
        "name": "Similar app",
        "platform": "ios"
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AppResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}

Flows

GET/flows/search

Parameters

query (query)
{
  "default": "",
  "type": "string",
  "maxLength": 500
}
platform (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "ios",
      "android",
      "web",
      "email",
      "game",
      "reference",
      "store",
      "ad"
    ]
  }
}
flowIntents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
limit (query)
{
  "default": 8,
  "type": "integer",
  "minimum": 1,
  "maximum": 24
}
offset (query)
{
  "default": 0,
  "description": "Number of results to skip, up to 200.",
  "type": "integer",
  "minimum": 0,
  "maximum": 200
}

Antwoord · 200

{
  "data": {
    "offset": 0,
    "flows": [
      {
        "flowId": "flow-id",
        "app": "Example",
        "name": "Onboarding",
        "screenCount": 14,
        "platform": "ios"
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FlowResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/flows/{flowId}

Parameters

flowId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}
include (query)
{
  "default": [],
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "elements",
      "connections"
    ]
  }
}

Antwoord · 200

{
  "data": {
    "flowId": "flow-id",
    "app": "Example",
    "name": "Onboarding",
    "screenCount": 1,
    "lockedSteps": 0,
    "hasHtml": false,
    "steps": [
      {
        "screenDocId": "screen-id",
        "order": 1,
        "pageType": "Welcome",
        "imageUrl": "https://cdn.refcat.app/m/v1.<opaque>.webp"
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Flow"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/flows/{flowId}/history

Parameters

flowId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}

Antwoord · 200

{
  "data": {
    "captures": []
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FlowHistory"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}

Schermen en e-mails

GET/screens/search

Parameters

query * (query)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 500
}
platform (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "ios",
      "android",
      "web",
      "email",
      "game",
      "reference",
      "store",
      "ad"
    ]
  }
}
flowIntents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
uiComponents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
screenPatterns (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
pageType (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
appId (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
limit (query)
{
  "default": 12,
  "type": "integer",
  "minimum": 1,
  "maximum": 48
}
offset (query)
{
  "default": 0,
  "description": "Number of results to skip, up to 200.",
  "type": "integer",
  "minimum": 0,
  "maximum": 200
}

Antwoord · 200

{
  "data": {
    "offset": 0,
    "queryIntent": "semantic",
    "appliedFilters": {},
    "screens": [
      {
        "screenDocId": "screen-id",
        "flowDocId": "flow-id",
        "app": "Example",
        "platform": "ios",
        "imageUrl": "https://cdn.refcat.app/m/v1.<opaque>.webp",
        "score": 0.9
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ScreenResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/screens/{screenDocId}

Parameters

screenDocId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}
includeElements (query)
{
  "default": false,
  "type": "boolean"
}

Antwoord · 200

{
  "data": {
    "screenDocId": "screen-id",
    "flowDocId": "flow-id",
    "app": "Example",
    "platform": "ios",
    "locked": false,
    "imageUrl": "https://cdn.refcat.app/m/v1.<opaque>.webp",
    "dimensions": {
      "width": 390,
      "height": 844
    }
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Screen"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/screens/{screenDocId}/similar

Parameters

screenDocId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}
limit (query)
{
  "default": 12,
  "type": "integer",
  "minimum": 1,
  "maximum": 48
}

Antwoord · 200

{
  "data": {
    "screens": []
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ScreenResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/emails/search

Parameters

query (query)
{
  "default": "",
  "type": "string",
  "maxLength": 500
}
flowIntents (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
appId (query)
{
  "minItems": 1,
  "maxItems": 20,
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 120
  }
}
limit (query)
{
  "default": 8,
  "type": "integer",
  "minimum": 1,
  "maximum": 24
}
offset (query)
{
  "default": 0,
  "description": "Number of results to skip, up to 200.",
  "type": "integer",
  "minimum": 0,
  "maximum": 200
}

Antwoord · 200

{
  "data": {
    "offset": 0,
    "emails": [
      {
        "emailId": "email-id",
        "brand": "Example",
        "subject": "Welcome",
        "hasHtml": true,
        "images": []
      }
    ]
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmailResults"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
GET/emails/{emailId}/html

Parameters

emailId * (path)
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024
}

Antwoord · 200

{
  "data": {
    "emailId": "email-id",
    "bytes": 42,
    "html": "<html>...</html>"
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}
JSON Schema
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmailHtml"
    },
    "requestId": {
      "type": "string",
      "format": "uuid"
    }
  }
}
JSON Schema · components
{
  "App": {
    "type": "object",
    "properties": {
      "appId": {
        "type": "string"
      },
      "slug": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "category": {
        "type": "string"
      },
      "platform": {
        "type": "string"
      },
      "logoUrl": {
        "type": "string"
      },
      "thumbUrl": {
        "type": "string"
      },
      "screenCount": {
        "type": "integer",
        "minimum": 0
      },
      "flows": {
        "type": "integer",
        "minimum": 0
      }
    },
    "required": [
      "appId",
      "name",
      "platform"
    ]
  },
  "AppList": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer",
        "minimum": 0
      },
      "offset": {
        "type": "integer",
        "minimum": 0
      },
      "apps": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/App"
        }
      }
    },
    "required": [
      "total",
      "offset",
      "apps"
    ]
  },
  "AppResults": {
    "type": "object",
    "properties": {
      "apps": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/App"
        }
      }
    },
    "required": [
      "apps"
    ]
  },
  "Category": {
    "type": "object",
    "properties": {
      "key": {
        "type": "string"
      },
      "label": {
        "type": "string"
      },
      "intent": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "required": [
      "key",
      "label",
      "intent"
    ]
  },
  "Categories": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/Category"
    }
  },
  "FacetValue": {
    "type": "object",
    "properties": {
      "value": {
        "type": "string"
      },
      "count": {
        "type": "integer",
        "minimum": 0
      },
      "requiresPro": {
        "type": "boolean"
      }
    },
    "required": [
      "value",
      "count"
    ]
  },
  "Facets": {
    "type": "object",
    "properties": {
      "platform": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FacetValue"
        }
      },
      "flowIntents": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FacetValue"
        }
      },
      "uiComponents": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FacetValue"
        }
      },
      "pageType": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FacetValue"
        }
      },
      "screenPatterns": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FacetValue"
        }
      }
    },
    "required": [
      "platform",
      "flowIntents",
      "uiComponents",
      "pageType",
      "screenPatterns"
    ]
  },
  "FlowSummary": {
    "type": "object",
    "properties": {
      "flowId": {
        "type": "string"
      },
      "app": {
        "type": "string"
      },
      "appId": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "intents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "screenCount": {
        "type": "integer",
        "minimum": 0
      },
      "platform": {
        "type": "string"
      },
      "screenPatterns": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "capturedAt": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "required": [
      "flowId",
      "name",
      "screenCount"
    ]
  },
  "FlowResults": {
    "type": "object",
    "properties": {
      "offset": {
        "type": "integer",
        "minimum": 0
      },
      "flows": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FlowSummary"
        }
      }
    },
    "required": [
      "offset",
      "flows"
    ]
  },
  "AppFlows": {
    "type": "object",
    "properties": {
      "app": {
        "$ref": "#/components/schemas/App"
      },
      "total": {
        "type": "integer",
        "minimum": 0
      },
      "offset": {
        "type": "integer",
        "minimum": 0
      },
      "flows": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FlowSummary"
        }
      }
    },
    "required": [
      "app",
      "total",
      "offset",
      "flows"
    ]
  },
  "FlowStep": {
    "type": "object",
    "properties": {
      "screenDocId": {
        "type": "string"
      },
      "order": {
        "type": "integer",
        "minimum": 0
      },
      "pageType": {
        "type": [
          "string",
          "null"
        ]
      },
      "screenPatterns": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "uiComponents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "keyTexts": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "dimensions": {
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "minimum": 0
          },
          "height": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "imageUrl": {
        "type": "string"
      },
      "elements": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "screenDocId",
      "order",
      "imageUrl"
    ]
  },
  "Flow": {
    "type": "object",
    "properties": {
      "flowId": {
        "type": "string"
      },
      "app": {
        "type": "string"
      },
      "appId": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "platform": {
        "type": "string"
      },
      "intents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "capturedAt": {
        "type": [
          "string",
          "null"
        ]
      },
      "screenCount": {
        "type": "integer",
        "minimum": 0
      },
      "lockedSteps": {
        "type": "integer",
        "minimum": 0
      },
      "hasHtml": {
        "type": "boolean"
      },
      "steps": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/FlowStep"
        }
      },
      "connections": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "flowId",
      "name",
      "steps",
      "screenCount",
      "lockedSteps",
      "hasHtml"
    ]
  },
  "FlowHistory": {
    "type": "object",
    "properties": {
      "captures": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "archivedAt": {
              "type": "string"
            },
            "capturedAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "screenCount": {
              "type": "integer",
              "minimum": 0
            },
            "previewScreens": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "screenUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "screenUrl"
                ]
              }
            }
          },
          "required": [
            "archivedAt",
            "screenCount",
            "previewScreens"
          ]
        }
      }
    },
    "required": [
      "captures"
    ]
  },
  "ScreenSummary": {
    "type": "object",
    "properties": {
      "screenDocId": {
        "type": "string"
      },
      "flowDocId": {
        "type": "string"
      },
      "app": {
        "type": "string"
      },
      "appId": {
        "type": "string"
      },
      "flow": {
        "type": "string"
      },
      "platform": {
        "type": "string"
      },
      "pageType": {
        "type": [
          "string",
          "null"
        ]
      },
      "screenPatterns": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "components": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "keyTexts": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "capturedAt": {
        "type": [
          "string",
          "null"
        ]
      },
      "locked": {
        "type": "boolean"
      },
      "imageUrl": {
        "type": [
          "string",
          "null"
        ]
      },
      "score": {
        "type": "number"
      }
    },
    "required": [
      "screenDocId",
      "flowDocId",
      "app",
      "platform",
      "imageUrl"
    ]
  },
  "ScreenResults": {
    "type": "object",
    "properties": {
      "offset": {
        "type": "integer",
        "minimum": 0
      },
      "queryIntent": {
        "type": "string"
      },
      "appliedFilters": {
        "type": "object",
        "additionalProperties": true
      },
      "screens": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ScreenSummary"
        }
      }
    },
    "required": [
      "screens"
    ]
  },
  "Screen": {
    "type": "object",
    "properties": {
      "screenDocId": {
        "type": "string"
      },
      "flowDocId": {
        "type": "string"
      },
      "app": {
        "type": "string"
      },
      "appId": {
        "type": "string"
      },
      "flow": {
        "type": "string"
      },
      "flowIntents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "platform": {
        "type": "string"
      },
      "order": {
        "type": "integer",
        "minimum": 0
      },
      "pageType": {
        "type": [
          "string",
          "null"
        ]
      },
      "screenPatterns": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "uiComponents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "keyTexts": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "dimensions": {
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "minimum": 0
          },
          "height": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "capturedAt": {
        "type": [
          "string",
          "null"
        ]
      },
      "locked": {
        "type": "boolean"
      },
      "lockedReason": {
        "type": "string"
      },
      "imageUrl": {
        "type": [
          "string",
          "null"
        ]
      },
      "elements": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "screenDocId",
      "flowDocId",
      "locked",
      "imageUrl"
    ]
  },
  "Email": {
    "type": "object",
    "properties": {
      "emailId": {
        "type": "string"
      },
      "brand": {
        "type": "string"
      },
      "appId": {
        "type": "string"
      },
      "subject": {
        "type": "string"
      },
      "intents": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "capturedAt": {
        "type": [
          "string",
          "null"
        ]
      },
      "images": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "device": {
              "type": "string",
              "enum": [
                "desktop",
                "mobile"
              ]
            },
            "url": {
              "type": "string"
            }
          },
          "required": [
            "device",
            "url"
          ]
        }
      },
      "hasHtml": {
        "type": "boolean"
      },
      "keyTexts": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "emailId",
      "brand",
      "subject",
      "images",
      "hasHtml"
    ]
  },
  "EmailResults": {
    "type": "object",
    "properties": {
      "offset": {
        "type": "integer",
        "minimum": 0
      },
      "emails": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Email"
        }
      }
    },
    "required": [
      "offset",
      "emails"
    ]
  },
  "EmailHtml": {
    "type": "object",
    "properties": {
      "emailId": {
        "type": "string"
      },
      "bytes": {
        "type": "integer",
        "minimum": 0
      },
      "html": {
        "type": "string"
      }
    },
    "required": [
      "emailId",
      "bytes",
      "html"
    ]
  }
}

Fouten

400 invalid_request
401 invalid_api_key
402 plan_required
403 insufficient_permissions
404 not_found
405 method_not_allowed
429 rate_limited · Retry-After: 60
429 daily_quota_exceeded · Retry-After: seconds until 00:00 UTC
503 authentication_unavailable / operation_unavailable / catalog_unavailable
{
  "error": {
    "code": "invalid_request",
    "message": "Invalid query parameters."
  },
  "requestId": "00000000-0000-4000-8000-000000000001"
}