{
  "id": "contextdev.utility.prefetch",
  "object": "tool",
  "name": "Prefetch Brand Data",
  "summary": "Warm the brand or styleguide cache for a domain before a lookup.",
  "description": "Queue a free background extraction for a domain so a later brand or styleguide lookup returns from a warm cache instead of failing fast or timing out on a never-crawled domain. Accepts a domain or a work email (its domain is extracted and validated), warms either the brand-data or the styleguide cache, and returns immediately with a queued acknowledgment — there is nothing to poll; retry the real lookup after a short wait. Suited as the first step of signup enrichment and onboarding flows.\n\nRaw contextdev#utility/prefetch endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.context.dev/api-reference/utility/prefetch).",
  "category": "lookup",
  "hosted_by": "Context.dev",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": "$0.0000",
  "providers": [
    {
      "id": "contextdev",
      "name": "Context.dev",
      "price": "$0.0000"
    }
  ],
  "mcp_name": "contextdev_utility_prefetch",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "brand",
              "styleguide"
            ],
            "description": "What to warm: 'brand' queues a brand-data fetch, 'styleguide' queues a styleguide extraction."
          },
          "identifier": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 3,
                    "description": "Domain name, e.g. 'example.com' (no scheme required)."
                  }
                },
                "required": [
                  "domain"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                    "description": "WORK email whose domain is extracted and validated. Free-provider and disposable addresses are rejected upstream."
                  }
                },
                "required": [
                  "email"
                ],
                "additionalProperties": false
              }
            ],
            "description": "The lookup target — exactly one of domain or email."
          },
          "timeoutOpts": {
            "type": "object",
            "properties": {
              "milliseconds": {
                "type": "integer",
                "minimum": 1000,
                "maximum": 300000,
                "description": "Request deadline in milliseconds (1000-300000)."
              },
              "behavior": {
                "type": "string",
                "const": "fail",
                "description": "This endpoint supports only 'fail': 408 at the deadline, no charge."
              }
            },
            "required": [
              "milliseconds"
            ],
            "additionalProperties": false,
            "description": "Request deadline."
          }
        },
        "required": [
          "type",
          "identifier"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "body"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}