> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.gomry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch a page and return its raw HTML and metadata, without LLM extraction. A quarter the price.

> Fetch a page and return its raw HTML and metadata, without LLM extraction. A quarter the price.

Requires the `scrape:fetch` scope, and the project must have Scrape enabled.

Billed on success. The response reports `fetches` — the quantity metered for this call. Rates: https://docs.cloud.gomry.com/pricing.

Full reference: https://docs.cloud.gomry.com/services/scrape



## OpenAPI

````yaml /openapi.json post /v1/fetch
openapi: 3.1.0
info:
  title: Gomry Cloud API
  summary: >-
    Developer APIs from Gomry. Metered per request, priced per unit, billed
    monthly — no plans, no seats, no free tier to outgrow.
  description: >-
    Gomry Cloud sells the technical services Gomry built to run its own event
    platform as metered HTTP APIs.


    Authentication is an API key sent as a bearer token. Billing is postpaid and
    metered: you are charged per unit consumed, invoiced monthly, and only for
    work that produced a result. There is no free tier — an active payment
    method is required before any API will serve.


    Rate limits are applied per API key, not per IP. Guides, errors and rates:
    https://docs.cloud.gomry.com
  version: 1.0.0
  termsOfService: https://gomry.com/terms
  contact:
    name: Gomry Cloud support
    url: https://docs.cloud.gomry.com
servers:
  - url: https://api.cloud.gomry.com
    description: Production data plane
security:
  - bearerAuth: []
tags:
  - name: Scrape
    description: Fetch a page and extract structured data from it against a JSON schema.
    externalDocs:
      url: https://docs.cloud.gomry.com/services/scrape
  - name: ToolsAPI
    description: >-
      Find a tool that can do a task and run it — 1,700+ across 55+ vendors, on
      your Gomry key.
    externalDocs:
      url: https://docs.cloud.gomry.com/services/toolsapi
  - name: Superagent
    description: >-
      Give it a research question and a JSON schema. It plans, searches, reads,
      notices what is missing, searches again — and cites every field.
    externalDocs:
      url: https://docs.cloud.gomry.com/services/tasks
  - name: Ember
    description: >-
      One model call, priced per token, at three grades — with the routing,
      compression and caching that make the cheap grade cheap.
    externalDocs:
      url: https://docs.cloud.gomry.com/services/inference
externalDocs:
  description: Gomry Cloud documentation
  url: https://docs.cloud.gomry.com
paths:
  /v1/fetch:
    post:
      tags:
        - Scrape
      summary: >-
        Fetch a page and return its raw HTML and metadata, without LLM
        extraction. A quarter the price.
      description: >-
        Fetch a page and return its raw HTML and metadata, without LLM
        extraction. A quarter the price.


        Requires the `scrape:fetch` scope, and the project must have Scrape
        enabled.


        Billed on success. The response reports `fetches` — the quantity metered
        for this call. Rates: https://docs.cloud.gomry.com/pricing.


        Full reference: https://docs.cloud.gomry.com/services/scrape
      operationId: scrape_post_v1_fetch
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                url:
                  description: >-
                    Required. The page to scrape. Max 2048 characters. Private
                    addresses and internal hostnames are refused.
                schema:
                  description: >-
                    Required for /v1/scrape. A JSON Schema object describing the
                    shape you want back. Returned in `data`.
                prompt:
                  description: >-
                    Required for /v1/scrape. 1–2000 characters of instruction
                    for the extraction, e.g. "Extract the event".
                waitFor:
                  description: >-
                    Milliseconds to wait after load before reading the page, for
                    content that arrives late. 0–15000.
                timeout:
                  description: >-
                    Milliseconds before the vendor call is abandoned.
                    1000–90000. The whole request is capped at 120s server-side,
                    so budget for two calls if you use `retry`.
                onlyMainContent:
                  description: >-
                    Strip navigation, footers and boilerplate before extraction.
                    Defaults to true; set false when the data you want lives in
                    the chrome.
                includeRawHtml:
                  description: >-
                    Also return the page's raw HTML in `rawHtml`. Use when you
                    parse JSON-LD or embedded blobs yourself.
                retry:
                  description: >-
                    { requiredField, waitFor }. If the first pass returns
                    without that field, the page is fetched once more with the
                    longer wait. Bills both calls, and only when each returned a
                    page.
            example:
              url: https://example.com/events/summer-fest
      responses:
        '200':
          description: Success. `fetches` reports what was metered.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: '`validation_error` — the body failed schema validation.'
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            `unauthorized` — key missing, malformed, unknown, revoked or
            expired.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: >-
            `billing_required`, `billing_past_due`, `billing_suspended` or
            `insufficient_credit` — spending is blocked until a human adds a
            card, fixes one, or raises the project budget. Do not retry in a
            loop.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            `forbidden` (the key lacks the scope) or `api_not_enabled` (the
            project has not enabled this API).
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            `not_found` — the addressed resource does not exist, or is not yours
            to see.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: '`rate_limited` — back off until `x-ratelimit-reset`, with jitter.'
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: >-
            `internal_error` — a fault on our side. Retry, and send us the
            `x-request-id`.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: >-
            `upstream_error` — a provider we depend on failed. Retryable, and
            not billed.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            `provider_unavailable` — the service is not currently configured to
            serve. Retryable.
          headers:
            x-request-id:
              schema:
                type: string
              description: >-
                Echoed or generated per request. Capture it — an intermittent
                failure cannot be traced without it.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests left in the current window for this key.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Unix timestamp in milliseconds at which the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Stable machine-readable code. Branch on this, never on `message`.
        message:
          type: string
          description: Human-readable detail. Written for a person and may be reworded.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key minted in the console, sent as `Authorization: Bearer <key>`.
        Keys are project-scoped and carry per-operation scopes. A `gck_test_…`
        key runs the full request path — including the real upstream call — and
        bills nothing.


        Every scope is enumerated in `x-scopes` below and in the RFC 9728
        protected-resource metadata at
        https://cloud.gomry.com/.well-known/oauth-protected-resource, which is
        also what a `401` points at through its `WWW-Authenticate: Bearer
        resource_metadata="…"` header.
      x-scopes:
        scrape:run: 'Grants: POST /v1/scrape.'
        scrape:fetch: 'Grants: POST /v1/fetch.'
        toolsapi:run: 'Grants: POST /v1/toolsapi/run.'
        toolsapi:read: >-
          Grants: POST /v1/toolsapi/discover, POST /v1/toolsapi/inspect, GET
          /v1/toolsapi/runs/{runId}.
        tasks:run: 'Grants: POST /v1/superagent.'
        tasks:read: 'Grants: GET /v1/superagent/{taskId}, DELETE /v1/superagent/{taskId}.'
        inference:run: 'Grants: POST /v1/inference.'
      x-protected-resource-metadata: https://cloud.gomry.com/.well-known/oauth-protected-resource
      x-credential-issuance-endpoint: https://cloud.gomry.com/sign-in
      x-agent-instructions: https://cloud.gomry.com/auth.md

````