{
  "openapi": "3.0.3",
  "info": {
    "title": "CrustAPI",
    "version": "2.1.0",
    "description": "People Refresh, public LinkedIn profiles, companies, posts, jobs and people search, plus Google Maps and Search. LinkedIn data uses public, logged-out sources. Returned fields vary by record. Wallet accounts use prepaid USD funds at each deposit’s saved endpoint rates. Eligible accounts receive $6 of free usage monthly; paid funds never expire. Empty and failed results are uncharged. Use explicit USD billing fields for accounting. See https://crustapi.com/docs and https://crustapi.com/pricing."
  },
  "servers": [
    {
      "url": "https://crustapi.com"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/linkedin": {
      "get": {
        "operationId": "linkedin",
        "summary": "Refresh a person or retrieve public LinkedIn data",
        "description": "Set type=refresh and provide a LinkedIn profile URL for current public details at the response root. Person/profile returns a profile object; company a company object; posts and people/search arrays; a job URL returns one record under jobs while job searches return an array. Field availability varies. Each successful operation uses its endpoint rate; enriched People is billed per full profile and Refresh per accessible profile. Empty and failed results are uncharged. Missing values or URL status do not prove a job change or permanent deletion.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "What to fetch. Singular gets the one you point at, plural finds many: person (one profile by URL) / people (find people by keywords) / company / job (one job by URL) / jobs (find jobs by keywords) / posts / refresh (fast freshness check). `profile` and `search` are the previous names for person and people and keep working unchanged.",
            "schema": {
              "type": "string",
              "default": "profile",
              "enum": [
                "refresh",
                "person",
                "profile",
                "company",
                "people",
                "search",
                "posts",
                "job",
                "jobs"
              ]
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Profile URL for Refresh/person, company URL for company, person/company URL for posts, or job URL for job.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member",
            "in": "query",
            "required": false,
            "description": "Refresh: `member=true` adds the numeric member ID when available.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "required": false,
            "description": "Search text for people or jobs. Supported filters can also be used without keywords.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "description": "People or job location. For jobs, separate up to three locations with semicolons.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "People: current employer. Jobs: company name, LinkedIn company URL or numeric ID."
          },
          {
            "name": "school",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "School filter for people search."
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "description": "Profession filter for people search. Combine with location; unsupported professions can return no results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profession",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Alias of the people-search `title` filter."
          },
          {
            "name": "industry",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Industry filter for people search."
          },
          {
            "name": "companySize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Employer size filter for people search."
          },
          {
            "name": "pastCompany",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Previous-employer filter for people search."
          },
          {
            "name": "followersMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Minimum follower count for people search."
          },
          {
            "name": "followersMax",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Maximum follower count for people search."
          },
          {
            "name": "connectionsMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Minimum connection count for people search."
          },
          {
            "name": "connectionsMax",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Maximum connection count for people search."
          },
          {
            "name": "expCountMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Minimum employment-row count for people search."
          },
          {
            "name": "expCountMax",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Maximum employment-row count for people search."
          },
          {
            "name": "titleExclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Exclude titles from people or job searches. Comma-separate multiple values."
          },
          {
            "name": "companyExclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Exclude employers from people search. Comma-separate multiple values."
          },
          {
            "name": "locationExclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Exclude locations from people or job searches. Semicolon-separate multiple locations."
          },
          {
            "name": "pastCompanyExclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Exclude previous employers from people search. Comma-separate multiple values."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: newest first by default; use `relevance` for relevance order."
          },
          {
            "name": "postedWithin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: `24h`, `week` or `month` publication window."
          },
          {
            "name": "daysSincePostedMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Jobs: minimum days since posting."
          },
          {
            "name": "daysSincePostedMax",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Jobs: maximum days since posting."
          },
          {
            "name": "employmentType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: comma-separated employment types, such as `Full-time,Contract`."
          },
          {
            "name": "seniority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: comma-separated seniority levels, such as `Director,Executive`."
          },
          {
            "name": "titleInclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: comma-separated terms to match in the title."
          },
          {
            "name": "descriptionKeywords",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: comma-separated terms to match in the title or description."
          },
          {
            "name": "hasRecruiter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Jobs: `true` requires a published job poster; `false` excludes those postings."
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "People/jobs: `count=true` returns a free count preview without rows. Counts can be unavailable or capped; check the returned metadata."
          },
          {
            "name": "num",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Requested result count. Jobs default to 25 (max 100); posts to 50 (max 100). People limits depend on search type."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Alternative result-count parameter. Jobs default to 25 (max 100); posts to 50 (max 100). People limits depend on search type.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Result offset for supported searches.",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Person/profile: `email=true` adds work-email fields when available."
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Known employer domain for the person/profile email lookup."
          },
          {
            "name": "companyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Person/profile: `true` requests the first returned company’s numeric ID. Other rows may already include IDs."
          },
          {
            "name": "schoolId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Person/profile: `true` requests the first returned school’s numeric ID. Other rows may already include IDs."
          },
          {
            "name": "headline",
            "in": "query",
            "required": false,
            "description": "Person/profile: `headline=true` requests the optional `publicHeadline` field.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "employees",
            "in": "query",
            "required": false,
            "description": "Company: `employees=true` adds matching-people results.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "comments",
            "in": "query",
            "required": false,
            "description": "Posts: `comments=true` adds available comments.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "enrich",
            "in": "query",
            "required": false,
            "description": "People/search: `enrich=true` adds available full profiles, billed per profile returned.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Response for the selected operation. Unavailable profiles/Refresh are uncharged; inspect accessible and profileState where returned.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LinkedInRefresh"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInResult"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid url or keywords."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Insufficient available balance or legacy credits. No successful result is charged when the operation cannot be funded."
          },
          "429": {
            "description": "Rate limited."
          },
          "503": {
            "description": "LinkedIn temporarily unavailable, retry shortly (uncharged)."
          }
        },
        "tags": [
          "LinkedIn"
        ]
      }
    },
    "/v1/linkedin/batch": {
      "post": {
        "operationId": "linkedinBatch",
        "summary": "Process a list of LinkedIn URLs",
        "description": "Up to 100 URLs synchronously, or 10,000 with a public HTTPS webhook. Supported types: refresh, person/profile, company, posts. Results remain in input order. Each row carries its own data or error and successful rows use the chosen endpoint rate. Large webhook payloads may be replaced by a temporary resultsUrl; download before resultsExpireAt. Status requests return counts and delivery state, not result rows. Webhooks cannot contain embedded credentials; redirects are not followed and failed delivery is retried once.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "urls"
                ],
                "properties": {
                  "urls": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 10000,
                    "description": "URL list. Maximum 100 without webhook; maximum 10,000 with webhook. Use the URL type required by the operation.",
                    "minItems": 1
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "refresh",
                      "person",
                      "profile",
                      "company",
                      "posts"
                    ],
                    "default": "refresh"
                  },
                  "member": {
                    "type": "boolean",
                    "default": false,
                    "description": "refresh only: also return memberIdentifier."
                  },
                  "webhook": {
                    "type": "string",
                    "format": "uri",
                    "description": "Public HTTPS URL for asynchronous delivery. Required for more than 100 URLs."
                  },
                  "comments": {
                    "type": "boolean",
                    "default": false,
                    "description": "Posts only: include available comments."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Per-URL results in input order.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "succeeded": {
                      "type": "integer"
                    },
                    "charged": {
                      "type": "integer",
                      "description": "Successful billing-unit count. Use billing.chargedUsd for the USD charge."
                    },
                    "tookMs": {
                      "type": "integer"
                    },
                    "creditsRemaining": {
                      "type": "integer",
                      "description": "Numeric compatibility count of remaining affordable billing units for wallet accounts; legacy accounts return remaining credits. This is not a dollar amount. Use billing.remainingUsd or wallet.availableUsd for USD accounting."
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "ok": {
                            "type": "boolean"
                          },
                          "data": {
                            "nullable": true,
                            "description": "Operation payload without the single-request timing/billing envelope. Refresh is a flat object; person/company are objects; posts is an array. May be null for unavailable data.",
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              }
                            ]
                          },
                          "error": {
                            "type": "string"
                          },
                          "retryable": {
                            "type": "boolean"
                          },
                          "notAccessible": {
                            "type": "boolean",
                            "description": "Present when the row represents unavailable data; uncharged."
                          }
                        }
                      }
                    },
                    "billing": {
                      "$ref": "#/components/schemas/WalletBilling"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid body, unsupported type, invalid webhook, or more than 100 sync / 10,000 async URLs."
          },
          "401": {
            "description": "Invalid or missing API key."
          },
          "402": {
            "description": "Insufficient available balance or legacy credits. No successful result is charged when the operation cannot be funded."
          },
          "202": {
            "description": "Accepted for asynchronous processing and webhook delivery.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "accepted"
                      ]
                    },
                    "count": {
                      "type": "integer"
                    },
                    "note": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry according to response headers."
          }
        },
        "tags": [
          "LinkedIn"
        ]
      },
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinBatchStatus",
        "summary": "Read batch status and delivery counts",
        "description": "Uses the same account’s API key. Does not return result rows.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Batch state and counts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobId": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string",
                      "nullable": true
                    },
                    "count": {
                      "type": "integer",
                      "nullable": true
                    },
                    "status": {
                      "type": "string",
                      "nullable": true
                    },
                    "succeeded": {
                      "type": "integer",
                      "nullable": true
                    },
                    "charged": {
                      "type": "integer",
                      "nullable": true
                    },
                    "error": {
                      "type": "string",
                      "nullable": true
                    },
                    "webhookDelivered": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "createdAt": {
                      "type": "string",
                      "nullable": true
                    },
                    "finishedAt": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing job ID."
          },
          "401": {
            "description": "Invalid or missing API key."
          },
          "404": {
            "description": "No matching job for this account."
          }
        }
      }
    },
    "/v1/search": {
      "get": {
        "operationId": "search",
        "summary": "Query any Google surface",
        "description": "Set `type` to choose a supported Google surface. Omitted types return HTTP 410 because the former default was retired. Each type returns a JSON response under its own key: scholar/patents/lens -> `organic`; news -> `news`; shopping -> `shopping`; images -> `images`; maps/places -> `places`; reviews -> `reviews`; autocomplete -> `suggestions`; webpage -> `text` + `metadata` + `jsonld`. Google surfaces are billed per successful request at the Google Search rate, except type=maps, which bills per business returned at the Maps rate. Wallet prices depend on the available funds and their saved rates. Failed and empty results are free. Legacy credit accounts retain their existing billing model.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": true,
            "description": "Which Google surface to query.",
            "schema": {
              "type": "string",
              "enum": [
                "maps",
                "places",
                "news",
                "shopping",
                "images",
                "reviews",
                "scholar",
                "patents",
                "autocomplete",
                "webpage",
                "lens"
              ]
            },
            "example": "maps"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "The search query. Required for every type EXCEPT webpage and lens (use `url`) and reviews (use `placeId` / `cid` / `fid`).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "type=webpage: the page URL to scrape. type=lens: the image URL for reverse image search.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gl",
            "in": "query",
            "required": false,
            "description": "Country code (us, gb, de, ...). Not used by maps, patents, or webpage.",
            "schema": {
              "type": "string",
              "default": "us"
            }
          },
          {
            "name": "hl",
            "in": "query",
            "required": false,
            "description": "Language code (en, es, ...). Not used by patents or webpage.",
            "schema": {
              "type": "string",
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Result page. Not used by reviews, autocomplete, webpage, or lens.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "required": false,
            "description": "Time filter for web/news/images/videos (e.g. qdr:h past hour, qdr:d past day, qdr:w past week, qdr:m past month, qdr:y past year).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "num",
            "in": "query",
            "required": false,
            "description": "type=reviews: reviews per page (default 20, max 50).",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "ll",
            "in": "query",
            "required": false,
            "description": "type=maps: GPS position and zoom as @latitude,longitude,zoom.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "placeId",
            "in": "query",
            "required": false,
            "description": "Google place id (ChIJ...). Optional for maps; identifies the place for reviews.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cid",
            "in": "query",
            "required": false,
            "description": "Google customer id. Optional for maps; identifies the place for reviews.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": false,
            "description": "Google feature id (0x..:0x..). Identifies the place for reviews.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "type=reviews: review sort order.",
            "schema": {
              "type": "string",
              "enum": [
                "mostRelevant",
                "newest",
                "highest",
                "lowest"
              ],
              "default": "mostRelevant"
            }
          },
          {
            "name": "nextPageToken",
            "in": "query",
            "required": false,
            "description": "type=reviews: cursor from the previous response to fetch the next page of reviews.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeMarkdown",
            "in": "query",
            "required": false,
            "description": "type=webpage: also return the page rendered as Markdown.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "description": "City/region hint for web and places.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "type=maps only: how many businesses to return (1-100). Each returned business is one Maps billing unit.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "stars",
            "in": "query",
            "required": false,
            "description": "Maps: request available 1–5-star review counts in reviewsDistribution. Can increase response time. Alias: details=true.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fresh",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "description": "Set fresh=1 to request a new Google result. Reused identical searches are marked cached and cacheAgeSeconds."
          },
          {
            "name": "details",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Alias for stars=true on Maps. Requests available 1–5-star review counts and can increase response time."
          }
        ],
        "responses": {
          "200": {
            "description": "Results for the chosen surface. The populated array key depends on `type`.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/GoogleMapsResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleWebResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GooglePlacesResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleNewsResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleShoppingResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleImagesResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleVideosResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleReviewsResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleScholarResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GooglePatentsResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleAutocompleteResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleWebpageResponse"
                    },
                    {
                      "$ref": "#/components/schemas/GoogleLensResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid parameter."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Insufficient available balance or legacy credits. No successful result is charged when the operation cannot be funded."
          },
          "429": {
            "description": "Rate limited."
          },
          "502": {
            "description": "Upstream fetch failed (uncharged)."
          },
          "503": {
            "description": "Surface temporarily unavailable, retry shortly (uncharged)."
          },
          "410": {
            "description": "The requested search type was retired."
          }
        },
        "tags": [
          "Google"
        ]
      }
    },
    "/v1/balance": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "getBalance",
        "summary": "Read available funds and saved prices",
        "description": "Non-billable. Wallet accounts return explicit USD values under wallet. Numeric credits is a compatibility count, not dollars. Legacy accounts retain their credit response.",
        "responses": {
          "200": {
            "description": "Account balance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "credits": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string",
                      "enum": [
                        "USD",
                        "credits"
                      ]
                    },
                    "wallet": {
                      "type": "object",
                      "properties": {
                        "availableUsd": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": true
                    },
                    "note": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API key."
          }
        }
      }
    },
    "/v1/demo": {
      "get": {
        "operationId": "demoSearch",
        "summary": "Public demo (no key, rate-limited)",
        "description": "Run a small public Google Maps example.",
        "security": [],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "maps",
              "enum": [
                "maps"
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A small sample of results.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "429": {
            "description": "Demo rate limit reached."
          },
          "410": {
            "description": "The requested search type was retired."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "SearchResult": {
        "type": "object",
        "description": "Polymorphic result. `searchParameters` echoes your request; the populated array key depends on `type`.",
        "properties": {
          "searchParameters": {
            "type": "object",
            "additionalProperties": true
          },
          "organic": {
            "type": "array",
            "description": "web, scholar, patents, lens",
            "items": {
              "$ref": "#/components/schemas/OrganicResult"
            }
          },
          "places": {
            "type": "array",
            "description": "maps, places",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/MapsPlace"
                },
                {
                  "$ref": "#/components/schemas/Place"
                }
              ]
            }
          },
          "news": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NewsItem"
            }
          },
          "shopping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShoppingItem"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageItem"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VideoItem"
            }
          },
          "reviews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Review"
            }
          },
          "suggestions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Suggestion"
            }
          },
          "text": {
            "type": "string",
            "description": "type=webpage: the page's readable text."
          },
          "markdown": {
            "type": "string",
            "description": "type=webpage with includeMarkdown=true."
          },
          "metadata": {
            "type": "object",
            "description": "type=webpage: title + og/twitter/article meta.",
            "additionalProperties": true
          },
          "jsonld": {
            "description": "type=webpage: parsed JSON-LD."
          },
          "nextPageToken": {
            "type": "string",
            "description": "type=reviews: cursor for the next page."
          },
          "creditsRemaining": {
            "type": "integer",
            "nullable": true,
            "description": "Numeric compatibility count of remaining affordable billing units for wallet accounts; legacy accounts return remaining credits. This is not a dollar amount. Use billing.remainingUsd or wallet.availableUsd for USD accounting."
          },
          "tookMs": {
            "type": "integer"
          },
          "billing": {
            "$ref": "#/components/schemas/WalletBilling"
          },
          "query": {
            "type": "string",
            "nullable": true,
            "description": "Maps search query."
          },
          "count": {
            "type": "integer",
            "nullable": true,
            "description": "Number of returned Maps records."
          },
          "ll": {
            "type": "string",
            "nullable": true,
            "description": "Maps location parameter when returned."
          },
          "cached": {
            "type": "boolean",
            "nullable": true,
            "description": "True when an identical Google search result is reused."
          },
          "cacheAgeSeconds": {
            "type": "number",
            "nullable": true,
            "description": "Age in seconds of a reused Google result."
          }
        }
      },
      "OrganicResult": {
        "type": "object",
        "description": "Web / Scholar / Patents / Lens result.",
        "properties": {
          "title": {
            "type": "string"
          },
          "link": {
            "type": "string"
          },
          "snippet": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "integer"
          },
          "source": {
            "type": "string",
            "nullable": true,
            "description": "Scholar publication info / Lens source site."
          },
          "citedBy": {
            "type": "integer",
            "nullable": true,
            "description": "Scholar."
          },
          "assignee": {
            "type": "string",
            "nullable": true,
            "description": "Patents."
          },
          "filingDate": {
            "type": "string",
            "nullable": true,
            "description": "Patents."
          },
          "imageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Lens."
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "Lens: thumbnail of the matched image."
          },
          "publicationInfo": {
            "type": "string",
            "nullable": true,
            "description": "Scholar: authors, journal and year as one line."
          },
          "year": {
            "type": "integer",
            "nullable": true,
            "description": "Scholar: publication year parsed from publicationInfo."
          },
          "pdfUrl": {
            "type": "string",
            "nullable": true,
            "description": "Scholar: link to the PDF copy when one is offered."
          },
          "id": {
            "type": "string",
            "nullable": true,
            "description": "Scholar: Google Scholar cluster id for the result."
          },
          "htmlUrl": {
            "type": "string",
            "nullable": true,
            "description": "Scholar: full-text link when the side resource is an HTML copy (pdfUrl is null then)."
          }
        }
      },
      "Place": {
        "type": "object",
        "description": "A place. type=places returns the lean serper-parity subset; type=maps returns this full shape (contact details, categories, opening hours, attributes and photos on top).",
        "properties": {
          "position": {
            "type": "integer"
          },
          "title": {
            "type": "string",
            "description": "Business name."
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "nullable": true,
            "description": "Star rating out of 5."
          },
          "ratingCount": {
            "type": "integer",
            "nullable": true
          },
          "reviewsCount": {
            "type": "integer",
            "nullable": true,
            "description": "Maps: exact review count."
          },
          "reviewsDistribution": {
            "type": "object",
            "nullable": true,
            "description": "Maps with stars=true: 1-5 star histogram."
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "cid": {
            "type": "string",
            "nullable": true
          },
          "placeId": {
            "type": "string",
            "nullable": true
          },
          "priceLevel": {
            "type": "string",
            "nullable": true,
            "description": "Google's price band token, e.g. \"$1–10\". Null when Google shows none."
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "A real place photo URL (maps only)."
          },
          "bookingLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Reservation/booking URLs when the place is bookable (maps only, sparse)."
          },
          "url": {
            "type": "string",
            "description": "Google Maps place URL. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "fid": {
            "type": "string",
            "description": "Google feature id (0x…:0x…), usable as an input to type=reviews. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "street": {
            "type": "string",
            "nullable": true,
            "description": "Street line of the address. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "postalCode": {
            "type": "string",
            "nullable": true,
            "description": "type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "countryCode": {
            "type": "string",
            "nullable": true,
            "description": "ISO country code. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "location": {
            "type": "object",
            "description": "{lat,lng}. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set).",
            "properties": {
              "lat": {
                "type": "number"
              },
              "lng": {
                "type": "number"
              }
            }
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Formatted phone number. Null when Google does not show one. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "phoneUnformatted": {
            "type": "string",
            "nullable": true,
            "description": "E.164-style phone number. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "categoryName": {
            "type": "string",
            "nullable": true,
            "description": "Primary Google category. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "All Google categories. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "totalScore": {
            "type": "number",
            "nullable": true,
            "description": "Average star rating (same value as rating). type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Google's editorial summary when present. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "openingHours": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Day name to hours string, e.g. {\"Monday\":\"7:30 AM-2 PM\"}. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "permanentlyClosed": {
            "type": "boolean",
            "description": "type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "mainImage": {
            "type": "string",
            "nullable": true,
            "description": "Primary place photo. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Google's attribute groups, e.g. {\"Service options\":[\"Takeout\"]}. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          },
          "scrapedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When this record was collected. type=maps only (the richer Maps shape; type=places returns the lean serper-parity set)."
          }
        }
      },
      "NewsItem": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "link": {
            "type": "string"
          },
          "snippet": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "integer"
          }
        }
      },
      "ShoppingItem": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "condition": {
            "type": "string",
            "nullable": true
          },
          "link": {
            "type": "string",
            "nullable": true,
            "description": "Google product page URL (always present since 2026-08)."
          },
          "price": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Product thumbnail: a gstatic URL, or an inline data:image URI for some top-of-page rows."
          },
          "rating": {
            "type": "number",
            "nullable": true
          },
          "ratingCount": {
            "type": "integer",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "integer"
          }
        }
      },
      "ImageItem": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "imageWidth": {
            "type": "integer",
            "nullable": true
          },
          "imageHeight": {
            "type": "integer",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "thumbnailWidth": {
            "type": "integer",
            "nullable": true
          },
          "thumbnailHeight": {
            "type": "integer",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true,
            "description": "The publisher's display name as Google shows it."
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "googleUrl": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "integer"
          },
          "creator": {
            "type": "string",
            "description": "Image creator from IPTC metadata (sparse , only when Google carries it)."
          },
          "copyright": {
            "type": "string",
            "description": "Copyright notice from IPTC metadata (sparse)."
          }
        }
      },
      "VideoItem": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "link": {
            "type": "string"
          },
          "snippet": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "channel": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "integer"
          }
        }
      },
      "Review": {
        "type": "object",
        "properties": {
          "rating": {
            "type": "integer"
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "isoDate": {
            "type": "string",
            "nullable": true
          },
          "snippet": {
            "type": "string",
            "nullable": true
          },
          "likes": {
            "type": "integer",
            "description": "Total reactions on the review (sum across reaction types)."
          },
          "user": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "thumbnail": {
                "type": "string",
                "nullable": true
              },
              "link": {
                "type": "string",
                "nullable": true
              },
              "reviews": {
                "type": "integer",
                "nullable": true
              },
              "photos": {
                "type": "integer",
                "nullable": true
              }
            }
          },
          "media": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "imageUrl": {
                  "type": "string"
                },
                "caption": {
                  "type": "string"
                }
              }
            }
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "nullable": true
          },
          "response": {
            "type": "object",
            "nullable": true,
            "description": "Owner reply, when present.",
            "properties": {
              "date": {
                "type": "string"
              },
              "snippet": {
                "type": "string"
              }
            }
          }
        }
      },
      "Suggestion": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          }
        }
      },
      "LinkedInResult": {
        "type": "object",
        "description": "Native LinkedIn response. type aliases are normalized in the returned type. Refresh fields are at the root; other operations use their respective data keys.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Normalized operation name, such as linkedin-profile for person/profile and linkedin-search for people/search."
          },
          "url": {
            "type": "string",
            "description": "Requested URL and public identifier. When available, resolvedUrl gives the confirmed current destination. Renamed URLs are not automatically discovered."
          },
          "query": {
            "type": "string",
            "description": "The requested keywords (search and keyword-based jobs calls)."
          },
          "profile": {
            "$ref": "#/components/schemas/LinkedInProfile"
          },
          "company": {
            "$ref": "#/components/schemas/LinkedInCompany"
          },
          "posts": {
            "type": "array",
            "description": "type=posts: public posts. Includes comments with comments=true.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "jobs": {
            "description": "type=jobs: an array for searches or a single record for a job URL.",
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LinkedInJob"
                }
              },
              {
                "$ref": "#/components/schemas/LinkedInJob"
              }
            ]
          },
          "people": {
            "type": "array",
            "description": "type=search: matching people. With enrich=true each entry is the person's full profile.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "note": {
            "type": "string",
            "description": "Explanation when the requested public profile data is unavailable."
          },
          "creditsRemaining": {
            "type": "integer",
            "nullable": true,
            "description": "Request duration, numeric balance compatibility value and wallet billing where applicable. Use billing.chargedUsd and billing.remainingUsd for dollar amounts."
          },
          "tookMs": {
            "type": "integer",
            "description": "Request duration, numeric balance compatibility value and wallet billing where applicable. Use billing.chargedUsd and billing.remainingUsd for dollar amounts."
          },
          "accessible": {
            "type": "boolean",
            "description": "Whether public data was returned and the profile URL status. See the status table below."
          },
          "profileState": {
            "type": "string",
            "enum": [
              "accessible",
              "exists_not_public",
              "not_resolvable",
              "unknown"
            ],
            "description": "Whether public data was returned and the profile URL status. See the status table below."
          },
          "resolvedUrl": {
            "type": "string",
            "nullable": true,
            "description": "Confirmed current profile destination when available; requested URL fields stay unchanged. Does not automatically discover renamed profiles."
          },
          "firstName": {
            "type": "string",
            "nullable": true,
            "description": "Published first and last name."
          },
          "lastName": {
            "type": "string",
            "nullable": true,
            "description": "Published first and last name."
          },
          "headline": {
            "type": "string",
            "nullable": true,
            "description": "Headline, supported current title and provenance labels. titleSource: \"headline\" marks a title derived from headline wording; \"linkedin\" marks an explicit role title. A headline is not necessarily a job title."
          },
          "headlineSource": {
            "type": "string",
            "nullable": true,
            "description": "Headline, supported current title and provenance labels. titleSource: \"headline\" marks a title derived from headline wording; \"linkedin\" marks an explicit role title. A headline is not necessarily a job title."
          },
          "currentTitle": {
            "type": "string",
            "nullable": true,
            "description": "Headline, supported current title and provenance labels. titleSource: \"headline\" marks a title derived from headline wording; \"linkedin\" marks an explicit role title. A headline is not necessarily a job title."
          },
          "titleSource": {
            "type": "string",
            "nullable": true,
            "description": "Headline, supported current title and provenance labels. titleSource: \"headline\" marks a title derived from headline wording; \"linkedin\" marks an explicit role title. A headline is not necessarily a job title."
          },
          "publicIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Requested URL and public identifier. When available, resolvedUrl gives the confirmed current destination. Renamed URLs are not automatically discovered."
          },
          "companyState": {
            "type": "string",
            "nullable": true,
            "description": "Employer availability: public, restricted, not_published or unknown. May be null for an unavailable profile. Missing data does not prove a job change."
          },
          "photoState": {
            "type": "string",
            "nullable": true,
            "description": "Public photo URL and its availability label. Null means no usable value was returned."
          },
          "memberIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Optional numeric member ID, returned as a string with member=true when available. This option can increase response time."
          },
          "currentCompany": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "slug": {
                "type": "string",
                "nullable": true
              },
              "linkedInUrl": {
                "type": "string",
                "nullable": true
              },
              "linkedInId": {
                "type": "string",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "description": "Each object can include name, slug, linkedInUrl and linkedInId. Numeric IDs are returned as strings. Unavailable objects or unmatched IDs can be null."
          },
          "currentSchool": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "slug": {
                "type": "string",
                "nullable": true
              },
              "linkedInUrl": {
                "type": "string",
                "nullable": true
              },
              "linkedInId": {
                "type": "string",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "description": "Each object can include name, slug, linkedInUrl and linkedInId. Numeric IDs are returned as strings. Unavailable objects or unmatched IDs can be null."
          },
          "memorialized": {
            "type": "boolean",
            "nullable": true,
            "enum": [
              true,
              null
            ],
            "description": "True only when public memorialization is established; otherwise null. Null does not establish account activity or whether the person is alive. It does not change profileState or distinguish closed and hibernated accounts."
          },
          "memorializedSource": {
            "type": "string",
            "nullable": true,
            "enum": [
              "linkedin_public_memorialized_banner",
              null
            ],
            "description": "memorialized is true only when a public memorialization marker is established; otherwise null. Null does not establish whether the account is active or the person is alive."
          },
          "billing": {
            "$ref": "#/components/schemas/WalletBilling",
            "description": "Request duration, numeric balance compatibility value and wallet billing where applicable. Use billing.chargedUsd and billing.remainingUsd for dollar amounts."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "Public photo URL and its availability label. Null means no usable value was returned."
          },
          "source": {
            "type": "string",
            "nullable": true,
            "description": "Search response metadata when available. A reported total may be capped."
          },
          "returned": {
            "type": "integer",
            "nullable": true,
            "description": "Search response metadata when available. A reported total may be capped."
          },
          "totalAvailable": {
            "type": "integer",
            "nullable": true,
            "description": "Search response metadata when available. A reported total may be capped."
          },
          "totalCapped": {
            "type": "boolean",
            "nullable": true,
            "description": "Search response metadata when available. A reported total may be capped."
          }
        }
      },
      "LinkedInJob": {
        "type": "object",
        "additionalProperties": true,
        "description": "Optional public information when available. Missing values remain null; availability varies by record and operation.",
        "properties": {
          "company": {
            "type": "string",
            "nullable": true,
            "description": "Published employer name; a LinkedIn company page is not required."
          },
          "companyUrl": {
            "type": "string",
            "nullable": true,
            "description": "Own published LinkedIn company link, when available."
          },
          "companyLinkedInId": {
            "type": "string",
            "nullable": true,
            "description": "Company ID from same-page metadata or the existing company dictionary when available."
          },
          "jobPoster": {
            "type": "object",
            "nullable": true,
            "additionalProperties": true,
            "description": "Published recruiter. Indexed results decode stored JSON and retain n/h/u compact aliases.",
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "headline": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "n": {
                "type": "string",
                "nullable": true
              },
              "h": {
                "type": "string",
                "nullable": true
              },
              "u": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "hasRecruiter": {
            "type": "boolean",
            "description": "Whether the returned recruiter has a published name."
          },
          "jobMetadataSource": {
            "type": "string",
            "enum": [
              "linkedin_public_jobposting_jsonld"
            ],
            "description": "Optional public information when available. Missing values remain null; availability varies by record and operation."
          },
          "datePosted": {
            "type": "string",
            "description": "Source-published posting date or timestamp. Not inferred from a relative age."
          },
          "validThrough": {
            "type": "string",
            "description": "Source-published validity date or timestamp. It does not establish closure or jobState."
          },
          "sourceJobIdentifier": {
            "type": "object",
            "additionalProperties": true,
            "description": "Original JobPosting identifier. It can differ from LinkedIn jobPostingId and is not substituted for it."
          },
          "jobLocation": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            ],
            "description": "Published structured location, including source coordinates/address when present. It does not replace the existing location fields."
          },
          "educationRequirements": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {}
              }
            ],
            "description": "Original public JobPosting education requirements, when present."
          },
          "experienceRequirements": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {}
              }
            ],
            "description": "Original public JobPosting experience requirements, when present."
          }
        }
      },
      "WalletBilling": {
        "type": "object",
        "description": "Optional USD accounting fields for enrolled wallet accounts. Legacy accounts retain numeric credit fields. Monetary values are exact decimal strings.",
        "properties": {
          "model": {
            "type": "string",
            "enum": [
              "wallet"
            ]
          },
          "currency": {
            "type": "string",
            "enum": [
              "USD"
            ]
          },
          "chargedUsd": {
            "type": "string",
            "example": "0.001",
            "description": "Actual USD usage charge for this request."
          },
          "remainingUsd": {
            "type": "string",
            "example": "5.999",
            "description": "Available USD funds after settlement."
          },
          "units": {
            "type": "integer",
            "description": "Successful billing units, not dollars."
          },
          "product": {
            "type": "string",
            "enum": [
              "googleSearch",
              "googleMaps",
              "linkedinRead",
              "linkedinSearch"
            ]
          },
          "debitId": {
            "type": "string",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinkedInProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "description": "Profile identifier."
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Published full name."
          },
          "firstName": {
            "type": "string",
            "nullable": true,
            "description": "Published first name."
          },
          "lastName": {
            "type": "string",
            "nullable": true,
            "description": "Published last name."
          },
          "headline": {
            "type": "string",
            "nullable": true,
            "description": "Published profile headline. It is not necessarily a job title."
          },
          "currentTitle": {
            "type": "string",
            "nullable": true,
            "description": "Current role title when supported by the available data. See `titleSource` for its basis."
          },
          "titleSource": {
            "type": "string",
            "nullable": true,
            "description": "`headline` means the title comes from headline wording; `linkedin` means an explicit role title."
          },
          "currentCompany": {
            "type": "string",
            "nullable": true,
            "description": "Current employer name. This is a string; Refresh uses a company object."
          },
          "memorialized": {
            "type": "boolean",
            "nullable": true,
            "enum": [
              true,
              null
            ],
            "description": "True when a public memorialization marker is established; otherwise null. Null does not establish account activity or whether the person is alive."
          },
          "memorializedSource": {
            "type": "string",
            "nullable": true,
            "enum": [
              "linkedin_public_memorialized_banner",
              null
            ],
            "description": "Source label for a returned memorialization marker."
          },
          "companyState": {
            "type": "string",
            "enum": [
              "public",
              "restricted",
              "not_published",
              "unknown"
            ],
            "description": "Employer availability: `public`, `restricted`, `not_published` or `unknown`. Missing data does not prove a job change."
          },
          "about": {
            "type": "string",
            "nullable": true,
            "description": "Published About text."
          },
          "followerCount": {
            "type": "integer",
            "nullable": true,
            "description": "Reported follower count, when available."
          },
          "connectionsCount": {
            "type": "integer",
            "nullable": true,
            "description": "Reported connection count, when available."
          },
          "location": {
            "type": "object",
            "properties": {
              "linkedinText": {
                "type": "string",
                "nullable": true
              },
              "countryCode": {
                "type": "string",
                "nullable": true
              },
              "parsed": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "nullable": true
                  },
                  "countryCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "regionCode": {
                    "nullable": true,
                    "description": "Optional value; null when unavailable."
                  },
                  "country": {
                    "type": "string",
                    "nullable": true
                  },
                  "countryFull": {
                    "type": "string",
                    "nullable": true
                  },
                  "state": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": true,
                "nullable": true
              }
            },
            "additionalProperties": true,
            "nullable": true,
            "description": "Location object with published text and available parsed components."
          },
          "experience": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "position": {
                  "type": "string",
                  "nullable": true
                },
                "location": {
                  "type": "string",
                  "nullable": true
                },
                "companyName": {
                  "type": "string",
                  "nullable": true
                },
                "companyLinkedinUrl": {
                  "type": "string",
                  "nullable": true
                },
                "companyUniversalName": {
                  "type": "string",
                  "nullable": true
                },
                "duration": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "description": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "experienceGroupId": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "startDate": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "endDate": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "companyLogo": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "sizes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "nullable": true
                          },
                          "width": {
                            "type": "integer",
                            "nullable": true
                          },
                          "height": {
                            "type": "integer",
                            "nullable": true
                          }
                        },
                        "additionalProperties": true,
                        "nullable": true
                      },
                      "nullable": true
                    }
                  },
                  "additionalProperties": true,
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "companyIndustry": {
                  "type": "string",
                  "nullable": true
                },
                "companySize": {
                  "type": "string",
                  "nullable": true
                },
                "companyHeadquarters": {
                  "type": "string",
                  "nullable": true
                },
                "positionSource": {
                  "type": "string",
                  "nullable": true
                },
                "companyLinkedInId": {
                  "type": "string",
                  "nullable": true
                },
                "companyNameSource": {
                  "type": "string",
                  "nullable": true
                },
                "dateSource": {
                  "type": "string",
                  "nullable": true
                }
              },
              "additionalProperties": true,
              "nullable": true
            },
            "nullable": true,
            "description": "Available employment rows. Missing end dates do not establish that a role is current."
          },
          "experienceAvailability": {
            "type": "object",
            "properties": {
              "returnedPositions": {
                "type": "integer",
                "minimum": 0
              },
              "positionsWithTitle": {
                "type": "integer",
                "minimum": 0
              },
              "positionsWithDerivedTitle": {
                "type": "integer",
                "minimum": 0
              },
              "positionsWithStartDate": {
                "type": "integer",
                "minimum": 0
              },
              "positionsWithEndDate": {
                "type": "integer",
                "minimum": 0
              },
              "positionsWithDescription": {
                "type": "integer",
                "minimum": 0
              }
            },
            "description": "Counts of returned employment rows. `positionsWithTitle` and `positionsWithDerivedTitle` count explicit and derived titles separately; this does not establish complete history."
          },
          "experienceState": {
            "type": "string",
            "nullable": true,
            "description": "Availability label for the returned employment history."
          },
          "education": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "schoolName": {
                  "type": "string",
                  "nullable": true
                },
                "schoolLinkedinUrl": {
                  "type": "string",
                  "nullable": true
                },
                "schoolSlug": {
                  "type": "string",
                  "nullable": true
                },
                "schoolId": {
                  "type": "string",
                  "nullable": true
                },
                "degree": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "fieldOfStudy": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "startDate": {
                  "type": "object",
                  "properties": {
                    "year": {
                      "type": "integer",
                      "nullable": true
                    },
                    "text": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "additionalProperties": true,
                  "nullable": true
                },
                "endDate": {
                  "type": "object",
                  "properties": {
                    "year": {
                      "type": "integer",
                      "nullable": true
                    },
                    "text": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "additionalProperties": true,
                  "nullable": true
                },
                "period": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "insights": {
                  "nullable": true,
                  "description": "Optional value; null when unavailable."
                },
                "schoolLogo": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "sizes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "nullable": true
                          },
                          "width": {
                            "type": "integer",
                            "nullable": true
                          },
                          "height": {
                            "type": "integer",
                            "nullable": true
                          }
                        },
                        "additionalProperties": true,
                        "nullable": true
                      },
                      "nullable": true
                    }
                  },
                  "additionalProperties": true,
                  "nullable": true
                },
                "schoolLinkedInId": {
                  "type": "string",
                  "nullable": true
                }
              },
              "additionalProperties": true,
              "nullable": true
            },
            "nullable": true,
            "description": "Available education rows with schools, qualifications and dates."
          },
          "skills": {
            "type": "array",
            "items": {},
            "nullable": true,
            "description": "Available published skills."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "proficiency": {
                  "type": "string",
                  "nullable": true
                }
              },
              "additionalProperties": true,
              "nullable": true
            },
            "nullable": true,
            "description": "Available published languages."
          },
          "honorsAndAwards": {
            "type": "array",
            "description": "Available honors and awards.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "certifications": {
            "type": "array",
            "description": "Available certifications and their details.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "courses": {
            "type": "array",
            "description": "Available published courses.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "volunteering": {
            "type": "array",
            "description": "Available volunteer experience.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "organizations": {
            "type": "array",
            "description": "Available organization memberships and roles.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "publications": {
            "type": "array",
            "description": "Available publications and supporting details.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "projects": {
            "type": "array",
            "description": "Available projects and supporting details.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "recommendations": {
            "type": "array",
            "description": "Available recommendation entries. These may be a subset of the reported count.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "recommendersCount": {
            "type": "integer",
            "nullable": true,
            "description": "Reported recommendation count, when available."
          },
          "influencer": {
            "type": "boolean",
            "nullable": true,
            "description": "Public influencer marker when established; null means unknown."
          },
          "topVoice": {
            "type": "boolean",
            "nullable": true,
            "description": "Public Top Voice marker when established; null means unknown."
          },
          "creator": {
            "type": "boolean",
            "nullable": true,
            "description": "Public creator marker when established; null means unknown."
          },
          "websites": {
            "type": "array",
            "description": "Published links as objects containing `url` and `label`.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "website": {
            "type": "string",
            "nullable": true,
            "description": "Existing single-website field. Additional links appear in `websites`."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "Public profile photo URL, or null when unavailable."
          },
          "photoState": {
            "type": "string",
            "nullable": true,
            "description": "Availability label for the profile photo."
          },
          "bannerImage": {
            "type": "string",
            "nullable": true,
            "description": "Public profile background image URL, when available."
          },
          "memberId": {
            "type": "string",
            "nullable": true,
            "description": "Numeric LinkedIn member ID as a string, when available."
          },
          "memberIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Numeric member ID as a string, when available. Refresh requires `member=true`, which can increase response time."
          },
          "linkedInIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn member URN, when available."
          },
          "linkedinUrl": {
            "type": "string",
            "nullable": true,
            "description": "Public LinkedIn URL."
          },
          "publicIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Public profile handle from the LinkedIn URL."
          },
          "peopleAlsoViewed": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "publicIdentifier": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "additionalProperties": true,
              "nullable": true
            },
            "nullable": true,
            "description": "Available related profiles."
          },
          "currentCompanyDomain": {
            "type": "string",
            "nullable": true,
            "description": "Current employer’s website domain, when available."
          },
          "currentCompanyIndustry": {
            "type": "string",
            "nullable": true,
            "description": "Current employer’s industry, when available."
          },
          "currentCompanySize": {
            "type": "string",
            "nullable": true,
            "description": "Current employer’s size band, when available."
          },
          "currentCompanyHeadquarters": {
            "type": "string",
            "nullable": true,
            "description": "Current employer’s headquarters, when available."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "City name, when available."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "State or region, when available."
          },
          "country": {
            "type": "string",
            "nullable": true,
            "description": "Country name, when available."
          },
          "countryCode": {
            "type": "string",
            "nullable": true,
            "description": "Two-letter country code, when available."
          },
          "coverPhoto": {
            "type": "string",
            "nullable": true,
            "description": "Alias of `bannerImage`."
          },
          "followers": {
            "type": "integer",
            "nullable": true,
            "description": "Alias of `followerCount`."
          },
          "connections": {
            "type": "integer",
            "nullable": true,
            "description": "Alias of `connectionsCount`."
          },
          "headlineSource": {
            "type": "string",
            "nullable": true,
            "description": "Source label for the returned headline."
          },
          "currentCompanyId": {
            "type": "string",
            "nullable": true,
            "description": "Numeric current-company ID as a string, when available."
          },
          "currentSchoolId": {
            "type": "string",
            "nullable": true,
            "description": "Numeric school ID as a string, when available."
          },
          "workEmail": {
            "type": "string",
            "nullable": true,
            "description": "Work email when available with `email=true`. Check `emailStatus` before use."
          },
          "emailStatus": {
            "type": "string",
            "nullable": true,
            "enum": [
              "verified",
              "pattern-likely",
              "unknown",
              null
            ],
            "description": "Work-email status. `pattern-likely` is unverified and is not equivalent to `verified`."
          },
          "emailConfidence": {
            "type": "number",
            "nullable": true,
            "description": "Confidence value associated with the returned work email."
          },
          "companyDomain": {
            "type": "string",
            "nullable": true,
            "description": "Employer domain associated with the email lookup."
          },
          "publicHeadline": {
            "type": "string",
            "nullable": true,
            "description": "Optional additional headline field requested with `headline=true`."
          }
        },
        "additionalProperties": true,
        "nullable": true,
        "description": "Public person data. Coverage varies; missing fields do not prove a person lacks the underlying information. Null when public profile data is unavailable (uncharged)."
      },
      "LinkedInCompany": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Published company name."
          },
          "universalName": {
            "type": "string",
            "nullable": true,
            "description": "Company handle from its LinkedIn URL."
          },
          "pageType": {
            "type": "string",
            "enum": [
              "company",
              "showcase"
            ],
            "description": "Company or showcase page type."
          },
          "publishedContacts": {
            "type": "array",
            "description": "Published emails and phone numbers with supporting text and URL. Publication does not verify ownership or reachability.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "email",
                    "phone"
                  ]
                },
                "value": {
                  "type": "string"
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "company_about"
                  ]
                },
                "sourceUrl": {
                  "type": "string",
                  "format": "uri"
                },
                "evidence": {
                  "type": "string",
                  "description": "The qualifying published text."
                }
              },
              "additionalProperties": true
            }
          },
          "employeeSearchCompanyIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "description": "Company IDs associated with employee search. These do not replace the company’s own `linkedInId`."
          },
          "jobSearchUrl": {
            "type": "string",
            "nullable": true,
            "description": "Company jobs link, when available. It is not a vacancy count."
          },
          "linkedInId": {
            "type": "string",
            "nullable": true,
            "description": "Numeric LinkedIn company ID as a string."
          },
          "tagline": {
            "type": "string",
            "nullable": true,
            "description": "Published company tagline."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Published company description."
          },
          "website": {
            "type": "string",
            "nullable": true,
            "description": "Published website URL, when available."
          },
          "industry": {
            "type": "string",
            "nullable": true,
            "description": "Published industry."
          },
          "companySize": {
            "type": "string",
            "nullable": true,
            "description": "Published employee size band."
          },
          "employeeCount": {
            "type": "integer",
            "nullable": true,
            "description": "Employee count reported by LinkedIn. This can differ from the size band."
          },
          "employeeCountRange": {
            "type": "object",
            "description": "Numeric lower and upper bounds of the published size band.",
            "additionalProperties": true,
            "nullable": true
          },
          "headquarters": {
            "type": "string",
            "nullable": true,
            "description": "Published headquarters location."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "addressLines": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Original visible office address lines. They do not imply separately verified city/state/postal components."
                },
                "directionsUrl": {
                  "type": "string",
                  "nullable": true,
                  "description": "Map link published with this office; not geocoded coordinates."
                },
                "isPrimary": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "True only when this office is explicitly marked primary; absence is unknown."
                }
              }
            },
            "description": "Published offices. Rows may include `addressLines`, `directionsUrl` and `isPrimary`; a map link does not establish coordinates."
          },
          "companyType": {
            "type": "string",
            "nullable": true,
            "description": "Published organization type."
          },
          "founded": {
            "type": "string",
            "nullable": true,
            "description": "Published founding year, when available."
          },
          "specialties": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "description": "Published company specialties."
          },
          "followers": {
            "type": "integer",
            "nullable": true,
            "description": "Follower count, when available."
          },
          "address": {
            "type": "object",
            "properties": {
              "street": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "nullable": true,
            "description": "Structured headquarters address, when available."
          },
          "logo": {
            "type": "string",
            "nullable": true,
            "description": "Public company logo URL."
          },
          "banner": {
            "type": "string",
            "nullable": true,
            "description": "Public company banner URL."
          },
          "crunchbaseUrl": {
            "nullable": true,
            "description": "Published Crunchbase link, when available."
          },
          "similarCompanies": {
            "type": "array",
            "description": "Available related company pages.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "affiliatedPages": {
            "type": "array",
            "description": "Available affiliated company or showcase pages. An affiliation does not necessarily mean a subsidiary.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "employeeSample": {
            "type": "array",
            "description": "Partial public employee sample with names and profile URLs. It is not a complete workforce list.",
            "items": {
              "type": "object",
              "description": "A returned source record. Fields vary by record.",
              "additionalProperties": true
            }
          },
          "featuredProducts": {
            "type": "array",
            "description": "Available featured products with names, links and details. This may be a selection of all products.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "linkedinUrl": {
                  "type": "string",
                  "format": "uri"
                },
                "category": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "linkedinUrl": {
                      "type": "string",
                      "format": "uri"
                    }
                  },
                  "additionalProperties": false
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "logoUrl": {
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "company_public_products"
                  ]
                }
              },
              "required": [
                "name",
                "linkedinUrl",
                "category",
                "description",
                "logoUrl",
                "imageUrl",
                "source"
              ]
            }
          },
          "linkedinUrl": {
            "type": "string",
            "nullable": true,
            "description": "Public LinkedIn URL."
          }
        },
        "additionalProperties": true,
        "nullable": true,
        "description": "Public company or showcase page. Published contact details, offices, related pages and visible people are retained when available. Employee samples are not a complete workforce list."
      },
      "LinkedInRefresh": {
        "type": "object",
        "description": "Flat native People Refresh response. Optional or unavailable values may be null or omitted.",
        "properties": {
          "url": {
            "type": "string",
            "description": "Requested LinkedIn URL."
          },
          "lastName": {
            "type": "string",
            "nullable": true,
            "description": "Published last name."
          },
          "titleSource": {
            "type": "string",
            "nullable": true,
            "description": "`headline` means the title comes from headline wording; `linkedin` means an explicit role title."
          },
          "firstName": {
            "type": "string",
            "nullable": true,
            "description": "Published first name."
          },
          "tookMs": {
            "type": "integer",
            "description": "Request processing time in milliseconds."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "Public profile photo URL, or null when unavailable."
          },
          "billing": {
            "$ref": "#/components/schemas/WalletBilling",
            "description": "Wallet charge and balance as decimal strings in `chargedUsd` and `remainingUsd`, when applicable."
          },
          "currentCompany": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "slug": {
                "type": "string",
                "nullable": true
              },
              "linkedInUrl": {
                "type": "string",
                "nullable": true
              },
              "linkedInId": {
                "type": "string",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "description": "Current employer object: `name`, `slug`, `linkedInUrl` and `linkedInId` when available. Numeric IDs are strings; missing values can be null."
          },
          "companyState": {
            "type": "string",
            "nullable": true,
            "description": "Employer availability: `public`, `restricted`, `not_published` or `unknown`. Missing data does not prove a job change."
          },
          "resolvedUrl": {
            "type": "string",
            "nullable": true,
            "description": "Confirmed profile URL when available. Renamed URLs are not automatically discovered."
          },
          "headlineSource": {
            "type": "string",
            "nullable": true,
            "description": "Source label for the returned headline."
          },
          "headline": {
            "type": "string",
            "nullable": true,
            "description": "Published profile headline. It is not necessarily a job title."
          },
          "memberIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Numeric member ID as a string, when available. Refresh requires `member=true`, which can increase response time."
          },
          "currentTitle": {
            "type": "string",
            "nullable": true,
            "description": "Current role title when supported by the available data. See `titleSource` for its basis."
          },
          "memorialized": {
            "type": "boolean",
            "nullable": true,
            "enum": [
              true,
              null
            ],
            "description": "True when a public memorialization marker is established; otherwise null. Null does not establish account activity or whether the person is alive."
          },
          "memorializedSource": {
            "type": "string",
            "nullable": true,
            "enum": [
              "linkedin_public_memorialized_banner",
              null
            ],
            "description": "Source label for a returned memorialization marker."
          },
          "accessible": {
            "type": "boolean",
            "description": "Whether public profile data was returned."
          },
          "photoState": {
            "type": "string",
            "nullable": true,
            "description": "Availability label for the profile photo."
          },
          "profileState": {
            "type": "string",
            "enum": [
              "accessible",
              "exists_not_public",
              "not_resolvable",
              "unknown"
            ],
            "description": "Profile URL status. See the profile-status reference below."
          },
          "creditsRemaining": {
            "type": "integer",
            "nullable": true,
            "description": "Numeric balance compatibility value. For wallet dollar amounts, use `billing.remainingUsd`."
          },
          "type": {
            "type": "string",
            "enum": [
              "linkedin-refresh"
            ]
          },
          "publicIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Public profile handle from the LinkedIn URL."
          },
          "currentSchool": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "slug": {
                "type": "string",
                "nullable": true
              },
              "linkedInUrl": {
                "type": "string",
                "nullable": true
              },
              "linkedInId": {
                "type": "string",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "description": "Published school object: `name`, `slug`, `linkedInUrl` and `linkedInId` when available. Numeric IDs are strings; missing values can be null."
          }
        },
        "additionalProperties": true
      },
      "MapsPlace": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer",
            "description": "Business position in the returned results.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Business name.",
            "nullable": true
          },
          "placeId": {
            "type": "string",
            "nullable": true,
            "description": "Google place identifier."
          },
          "fid": {
            "type": "string",
            "description": "Google feature identifier.",
            "nullable": true
          },
          "cid": {
            "type": "string",
            "nullable": true,
            "description": "Google customer identifier for the listing."
          },
          "url": {
            "type": "string",
            "description": "Google Maps link for the listing.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true,
            "description": "Formatted business address."
          },
          "street": {
            "type": "string",
            "nullable": true,
            "description": "Street address, when available."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "City name, when available."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "State or region, when available."
          },
          "postalCode": {
            "type": "string",
            "nullable": true,
            "description": "Postal or ZIP code, when available."
          },
          "countryCode": {
            "type": "string",
            "nullable": true,
            "description": "Two-letter country code, when available."
          },
          "location": {
            "type": "object",
            "description": "Coordinates as an object containing `lat` and `lng`.",
            "properties": {
              "lat": {
                "type": "number"
              },
              "lng": {
                "type": "number"
              }
            },
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Published phone number in local format."
          },
          "phoneUnformatted": {
            "type": "string",
            "nullable": true,
            "description": "Published phone number with country code, when available."
          },
          "website": {
            "type": "string",
            "nullable": true,
            "description": "Published website URL, when available."
          },
          "categoryName": {
            "type": "string",
            "nullable": true,
            "description": "Primary business category."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Available business categories.",
            "nullable": true
          },
          "totalScore": {
            "type": "number",
            "nullable": true,
            "description": "Average star rating, when available."
          },
          "reviewsCount": {
            "type": "integer",
            "nullable": true,
            "description": "Total review count, when available."
          },
          "priceLevel": {
            "type": "string",
            "nullable": true,
            "description": "Published price range or level, when available."
          },
          "reviewsDistribution": {
            "type": "object",
            "nullable": true,
            "description": "Counts from `oneStar` through `fiveStar` with `stars=true` (alias `details=true`), when available. This option can increase response time.",
            "properties": {
              "oneStar": {
                "type": "integer",
                "nullable": true,
                "minimum": 0
              },
              "twoStar": {
                "type": "integer",
                "nullable": true,
                "minimum": 0
              },
              "threeStar": {
                "type": "integer",
                "nullable": true,
                "minimum": 0
              },
              "fourStar": {
                "type": "integer",
                "nullable": true,
                "minimum": 0
              },
              "fiveStar": {
                "type": "integer",
                "nullable": true,
                "minimum": 0
              }
            }
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Published listing description, when available."
          },
          "openingHours": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Published opening hours by day.",
            "nullable": true
          },
          "permanentlyClosed": {
            "type": "boolean",
            "description": "Permanent-closure flag when returned.",
            "nullable": true
          },
          "mainImage": {
            "type": "string",
            "nullable": true,
            "description": "Lead listing image URL, when available."
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "Listing thumbnail URL, when available."
          },
          "bookingLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Available booking links.",
            "nullable": true
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Available business attributes.",
            "nullable": true
          },
          "scrapedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Collection timestamp for the listing.",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "nullable": true,
        "description": "A type=maps business record. Fields may be null or empty when unavailable. type=places uses the separate lean Place schema."
      },
      "LinkedInBatchResult": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "succeeded": {
            "type": "integer"
          },
          "charged": {
            "type": "integer",
            "description": "Successful billing-unit count. Use billing.chargedUsd for the USD charge."
          },
          "tookMs": {
            "type": "integer"
          },
          "creditsRemaining": {
            "type": "integer",
            "description": "Numeric compatibility count of remaining affordable billing units for wallet accounts; legacy accounts return remaining credits. This is not a dollar amount. Use billing.remainingUsd or wallet.availableUsd for USD accounting."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "ok": {
                  "type": "boolean"
                },
                "data": {
                  "nullable": true,
                  "description": "Operation payload without the single-request timing/billing envelope. Refresh is a flat object; person/company are objects; posts is an array. May be null for unavailable data.",
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  ]
                },
                "error": {
                  "type": "string"
                },
                "retryable": {
                  "type": "boolean"
                },
                "notAccessible": {
                  "type": "boolean",
                  "description": "Present when the row represents unavailable data; uncharged."
                }
              }
            }
          },
          "billing": {
            "$ref": "#/components/schemas/WalletBilling"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "LinkedInBatchWebhook": {
        "type": "object",
        "description": "Webhook delivery. Includes inline results or a temporary resultsUrl with expiry. Download links can contain access credentials; treat them as private.",
        "properties": {
          "count": {
            "type": "integer"
          },
          "succeeded": {
            "type": "integer"
          },
          "charged": {
            "type": "integer",
            "description": "Successful billing-unit count. Use billing.chargedUsd for the USD charge."
          },
          "tookMs": {
            "type": "integer"
          },
          "creditsRemaining": {
            "type": "integer",
            "description": "Numeric compatibility count of remaining affordable billing units for wallet accounts; legacy accounts return remaining credits. This is not a dollar amount. Use billing.remainingUsd or wallet.availableUsd for USD accounting."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "ok": {
                  "type": "boolean"
                },
                "data": {
                  "nullable": true,
                  "description": "Operation payload without the single-request timing/billing envelope. Refresh is a flat object; person/company are objects; posts is an array. May be null for unavailable data.",
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  ]
                },
                "error": {
                  "type": "string"
                },
                "retryable": {
                  "type": "boolean"
                },
                "notAccessible": {
                  "type": "boolean",
                  "description": "Present when the row represents unavailable data; uncharged."
                }
              }
            }
          },
          "billing": {
            "$ref": "#/components/schemas/WalletBilling"
          },
          "type": {
            "type": "string"
          },
          "jobId": {
            "type": "string"
          },
          "resultsUrl": {
            "type": "string",
            "format": "uri"
          },
          "resultsBytes": {
            "type": "integer"
          },
          "resultsExpireAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": true
      },
      "GoogleWebResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=web. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "organic": {
            "description": "Web search results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "description": "Published date or relative date text, when available.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                },
                "attributes": {
                  "description": "Additional published result attributes. Keys vary.",
                  "type": "object",
                  "nullable": true
                },
                "sitelinks": {
                  "description": "Additional links beneath a search result.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "description": "Result title.",
                        "type": "string",
                        "nullable": true
                      },
                      "link": {
                        "description": "Destination page URL.",
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "knowledgeGraph": {
            "description": "Knowledge panel, when one is returned.",
            "type": "object",
            "nullable": true,
            "properties": {
              "title": {
                "description": "Result title.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Entity type or category.",
                "type": "string",
                "nullable": true
              },
              "imageUrl": {
                "description": "Image URL or inline data URL, when returned.",
                "type": "string",
                "nullable": true
              },
              "description": {
                "description": "Published description, when available.",
                "type": "string",
                "nullable": true
              },
              "descriptionSource": {
                "description": "Source named for the knowledge-panel description.",
                "type": "string",
                "nullable": true
              },
              "descriptionLink": {
                "description": "Link supporting the knowledge-panel description.",
                "type": "string",
                "nullable": true
              },
              "website": {
                "description": "Published website URL, when available.",
                "type": "string",
                "nullable": true
              },
              "attributes": {
                "description": "Additional attributes. Keys vary by result.",
                "type": "object",
                "nullable": true
              }
            }
          },
          "peopleAlsoAsk": {
            "description": "Related questions, with answer details when available.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "question": {
                  "description": "Related question text.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "relatedSearches": {
            "description": "Related search phrases.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "query": {
                  "description": "Search query.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GooglePlacesResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=places. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "num": {
                "description": "Result count parameter echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              }
            }
          },
          "places": {
            "description": "Compact local place results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                },
                "title": {
                  "description": "Place or business name.",
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "description": "Formatted place address.",
                  "type": "string",
                  "nullable": true
                },
                "latitude": {
                  "description": "Latitude coordinate.",
                  "type": "number",
                  "nullable": true
                },
                "longitude": {
                  "description": "Longitude coordinate.",
                  "type": "number",
                  "nullable": true
                },
                "rating": {
                  "description": "Average rating, when available.",
                  "type": "number",
                  "nullable": true
                },
                "ratingCount": {
                  "description": "Number of ratings or reviews, when available.",
                  "type": "integer",
                  "nullable": true
                },
                "priceLevel": {
                  "description": "Published price range or level, when available.",
                  "type": "string",
                  "nullable": true
                },
                "category": {
                  "description": "Primary place category.",
                  "type": "string",
                  "nullable": true
                },
                "phoneNumber": {
                  "description": "Published local phone number, when available.",
                  "type": "string",
                  "nullable": true
                },
                "website": {
                  "description": "Published website URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "cid": {
                  "description": "Google customer identifier for the listing.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GoogleNewsResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=news. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "news": {
            "description": "News articles.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "description": "Published date or relative date text, when available.",
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "description": "Publisher, seller or source-site name.",
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "description": "Image URL or inline data URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "googleNewsUrl": {
                  "description": "Google News link for the article, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GoogleShoppingResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=shopping. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "shopping": {
            "description": "Product results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "description": "Publisher, seller or source-site name.",
                  "type": "string",
                  "nullable": true
                },
                "condition": {
                  "description": "Published product condition, when available.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "price": {
                  "description": "Displayed price, including currency text when published.",
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "description": "Image URL or inline data URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "description": "Average rating, when available.",
                  "type": "number",
                  "nullable": true
                },
                "ratingCount": {
                  "description": "Number of ratings or reviews, when available.",
                  "type": "integer",
                  "nullable": true
                },
                "productId": {
                  "description": "Product identifier, when available.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GoogleImagesResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=images. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "num": {
                "description": "Result count parameter echoed when applicable.",
                "type": "integer",
                "nullable": true
              }
            }
          },
          "images": {
            "description": "Image search results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "description": "Image URL or inline data URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "imageWidth": {
                  "description": "Image width in pixels.",
                  "type": "integer",
                  "nullable": true
                },
                "imageHeight": {
                  "description": "Image height in pixels.",
                  "type": "integer",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "description": "Thumbnail image URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "thumbnailWidth": {
                  "description": "Thumbnail width in pixels.",
                  "type": "integer",
                  "nullable": true
                },
                "thumbnailHeight": {
                  "description": "Thumbnail height in pixels.",
                  "type": "integer",
                  "nullable": true
                },
                "source": {
                  "description": "Publisher, seller or source-site name.",
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "description": "Domain hosting the source page.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "googleUrl": {
                  "description": "Google link associated with the image result.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                },
                "creator": {
                  "description": "Published image creator, when available.",
                  "type": "string",
                  "nullable": true
                },
                "copyright": {
                  "description": "Published copyright text, when available.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GoogleVideosResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=videos. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "videos": {
            "description": "Video search results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "videoUrl": {
                  "description": "Video URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "description": "Image URL or inline data URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "duration": {
                  "description": "Displayed video duration, when available.",
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "description": "Publisher, seller or source-site name.",
                  "type": "string",
                  "nullable": true
                },
                "channel": {
                  "description": "Published video channel or account name.",
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "description": "Published date or relative date text, when available.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GoogleScholarResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=scholar. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "page": {
                "description": "Result page echoed when applicable.",
                "type": "integer",
                "nullable": true
              },
              "tbs": {
                "description": "Time or search filter echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "organic": {
            "description": "Academic search results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "publicationInfo": {
                  "description": "Publication and author information as displayed.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "year": {
                  "description": "Publication year, when available.",
                  "type": "integer",
                  "nullable": true
                },
                "citedBy": {
                  "description": "Reported citation count, when available.",
                  "type": "integer",
                  "nullable": true
                },
                "pdfUrl": {
                  "description": "PDF link, when available.",
                  "type": "string",
                  "nullable": true
                },
                "htmlUrl": {
                  "description": "HTML full-text link, when available.",
                  "type": "string",
                  "nullable": true
                },
                "id": {
                  "description": "Result identifier.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "cached": {
            "description": "True when the response reuses an identical recent search.",
            "type": "boolean",
            "nullable": true
          },
          "cacheAgeSeconds": {
            "description": "Age in seconds of a reused search result.",
            "type": "number",
            "nullable": true
          }
        }
      },
      "GoogleLensResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=lens. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Parameters for the image search.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Image URL used for the search.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "organic": {
            "description": "Visual matches for the supplied image.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "description": "Publisher, seller or source-site name.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "imageUrl": {
                  "description": "Image URL or inline data URL, when returned.",
                  "type": "string",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "description": "Thumbnail image URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "description": "Position in the returned results.",
                  "type": "integer",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GooglePatentsResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=patents. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Patent search parameters.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "organic": {
            "description": "Patent search results.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Result title.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Available summary or text excerpt.",
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "priorityDate": {
                  "description": "Published patent priority date.",
                  "type": "string",
                  "nullable": true
                },
                "filingDate": {
                  "description": "Published patent filing date.",
                  "type": "string",
                  "nullable": true
                },
                "grantDate": {
                  "description": "Published patent grant date, when available.",
                  "type": "string",
                  "nullable": true
                },
                "publicationDate": {
                  "description": "Published patent publication date.",
                  "type": "string",
                  "nullable": true
                },
                "inventor": {
                  "description": "Published inventor name or names.",
                  "type": "string",
                  "nullable": true
                },
                "assignee": {
                  "description": "Published patent assignee.",
                  "type": "string",
                  "nullable": true
                },
                "publicationNumber": {
                  "description": "Patent publication number.",
                  "type": "string",
                  "nullable": true
                },
                "language": {
                  "description": "Patent language code.",
                  "type": "string",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "description": "Thumbnail image URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "pdfUrl": {
                  "description": "PDF link, when available.",
                  "type": "string",
                  "nullable": true
                },
                "figures": {
                  "description": "Published patent figures.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "imageUrl": {
                        "description": "Image URL or inline data URL, when returned.",
                        "type": "string",
                        "nullable": true
                      },
                      "thumbnailUrl": {
                        "description": "Thumbnail image URL, when available.",
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GoogleReviewsResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=reviews. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "placeId": {
                "description": "Google place identifier.",
                "type": "string",
                "nullable": true
              },
              "cid": {
                "description": "Google customer identifier for the listing.",
                "type": "string",
                "nullable": true
              },
              "fid": {
                "description": "Google feature identifier.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "reviews": {
            "description": "Business reviews.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rating": {
                  "description": "Review star rating.",
                  "type": "integer",
                  "nullable": true
                },
                "date": {
                  "description": "Relative review date text.",
                  "type": "string",
                  "nullable": true
                },
                "isoDate": {
                  "description": "Review date as an ISO timestamp, when available.",
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "description": "Review text.",
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "description": "Total reactions on the review.",
                  "type": "integer",
                  "nullable": true
                },
                "link": {
                  "description": "Destination page URL.",
                  "type": "string",
                  "nullable": true
                },
                "id": {
                  "description": "Review identifier.",
                  "type": "string",
                  "nullable": true
                },
                "user": {
                  "description": "Published reviewer details.",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "name": {
                      "description": "Published display name.",
                      "type": "string",
                      "nullable": true
                    },
                    "thumbnail": {
                      "description": "Public reviewer image URL, when available.",
                      "type": "string",
                      "nullable": true
                    },
                    "link": {
                      "description": "Reviewer’s public Google Maps profile URL.",
                      "type": "string",
                      "nullable": true
                    },
                    "reviews": {
                      "description": "Reviewer’s published review count.",
                      "type": "integer",
                      "nullable": true
                    },
                    "photos": {
                      "description": "Reviewer’s published photo count.",
                      "type": "integer",
                      "nullable": true
                    }
                  }
                },
                "media": {
                  "description": "Review media, when present.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "description": "Media type, such as image.",
                        "type": "string",
                        "nullable": true
                      },
                      "imageUrl": {
                        "description": "Image URL or inline data URL, when returned.",
                        "type": "string",
                        "nullable": true
                      },
                      "caption": {
                        "description": "Published image caption, when available.",
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "nullable": true
                },
                "response": {
                  "description": "Business owner’s reply, when present.",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "date": {
                      "description": "Relative date of the owner’s reply.",
                      "type": "string",
                      "nullable": true
                    },
                    "snippet": {
                      "description": "Owner’s reply text.",
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            },
            "nullable": true
          },
          "nextPageToken": {
            "description": "Cursor for the next reviews page, when returned. Send it as nextPageToken in the next request.",
            "type": "string",
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GoogleAutocompleteResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=autocomplete. Field availability varies.",
        "properties": {
          "searchParameters": {
            "description": "Request parameters echoed for this operation. Fields vary by endpoint.",
            "type": "object",
            "nullable": true,
            "properties": {
              "q": {
                "description": "Search query echoed in the response.",
                "type": "string",
                "nullable": true
              },
              "type": {
                "description": "Requested Google operation.",
                "type": "string",
                "nullable": true
              },
              "gl": {
                "description": "Country code echoed when applicable.",
                "type": "string",
                "nullable": true
              },
              "hl": {
                "description": "Language code echoed when applicable.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "suggestions": {
            "description": "Suggested completions for the query.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "description": "Suggested search text.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GoogleWebpageResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=webpage. Field availability varies.",
        "properties": {
          "text": {
            "description": "Readable text extracted from the requested webpage.",
            "type": "string",
            "nullable": true
          },
          "markdown": {
            "description": "Page content as Markdown when includeMarkdown=true.",
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "description": "Published page metadata. Keys depend on the page; the fields below are common examples.",
            "type": "object",
            "nullable": true,
            "properties": {
              "title": {
                "description": "Result title.",
                "type": "string",
                "nullable": true
              },
              "description": {
                "description": "Published description, when available.",
                "type": "string",
                "nullable": true
              },
              "canonical": {
                "description": "Published canonical page URL, when available.",
                "type": "string",
                "nullable": true
              },
              "og:title": {
                "description": "Published Open Graph title, when available.",
                "type": "string",
                "nullable": true
              },
              "og:description": {
                "description": "Published Open Graph description, when available.",
                "type": "string",
                "nullable": true
              },
              "og:url": {
                "description": "Published Open Graph page URL, when available.",
                "type": "string",
                "nullable": true
              },
              "og:image": {
                "description": "Published Open Graph image URL, when available.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "jsonld": {
            "description": "Published JSON-LD structured data. Its shape follows the page and can be null."
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "GoogleMapsResponse": {
        "type": "object",
        "description": "Response for /v1/search?type=maps. Field availability varies.",
        "properties": {
          "query": {
            "description": "Search query.",
            "type": "string",
            "nullable": true
          },
          "ll": {
            "description": "Map location parameter, when returned.",
            "type": "string",
            "nullable": true
          },
          "count": {
            "description": "Number of returned businesses.",
            "type": "integer",
            "nullable": true
          },
          "places": {
            "description": "Google Maps business listings.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "position": {
                  "description": "Business position in the returned results.",
                  "type": "integer",
                  "nullable": true
                },
                "title": {
                  "description": "Business name.",
                  "type": "string",
                  "nullable": true
                },
                "placeId": {
                  "description": "Google place identifier.",
                  "type": "string",
                  "nullable": true
                },
                "fid": {
                  "description": "Google feature identifier.",
                  "type": "string",
                  "nullable": true
                },
                "cid": {
                  "description": "Google customer identifier for the listing.",
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "description": "Google Maps link for the listing.",
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "description": "Formatted business address.",
                  "type": "string",
                  "nullable": true
                },
                "street": {
                  "description": "Street address, when available.",
                  "type": "string",
                  "nullable": true
                },
                "city": {
                  "description": "City name, when available.",
                  "type": "string",
                  "nullable": true
                },
                "state": {
                  "description": "State or region, when available.",
                  "type": "string",
                  "nullable": true
                },
                "postalCode": {
                  "description": "Postal or ZIP code, when available.",
                  "type": "string",
                  "nullable": true
                },
                "countryCode": {
                  "description": "Two-letter country code, when available.",
                  "type": "string",
                  "nullable": true
                },
                "location": {
                  "description": "Coordinates as an object containing `lat` and `lng`.",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "lat": {
                      "description": "Latitude coordinate.",
                      "type": "number",
                      "nullable": true
                    },
                    "lng": {
                      "description": "Longitude coordinate.",
                      "type": "number",
                      "nullable": true
                    }
                  }
                },
                "phone": {
                  "description": "Published phone number in local format.",
                  "type": "string",
                  "nullable": true
                },
                "phoneUnformatted": {
                  "description": "Published phone number with country code, when available.",
                  "type": "string",
                  "nullable": true
                },
                "website": {
                  "description": "Published website URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "categoryName": {
                  "description": "Primary business category.",
                  "type": "string",
                  "nullable": true
                },
                "categories": {
                  "description": "Available business categories.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true
                },
                "totalScore": {
                  "description": "Average star rating, when available.",
                  "type": "number",
                  "nullable": true
                },
                "reviewsCount": {
                  "description": "Total review count, when available.",
                  "type": "integer",
                  "nullable": true
                },
                "priceLevel": {
                  "description": "Published price range or level, when available.",
                  "type": "string",
                  "nullable": true
                },
                "reviewsDistribution": {
                  "description": "Counts from `oneStar` through `fiveStar` with `stars=true` (alias `details=true`), when available. This option can increase response time.",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "oneStar": {
                      "description": "1-star review count.",
                      "type": "integer",
                      "nullable": true
                    },
                    "twoStar": {
                      "description": "2-star review count.",
                      "type": "integer",
                      "nullable": true
                    },
                    "threeStar": {
                      "description": "3-star review count.",
                      "type": "integer",
                      "nullable": true
                    },
                    "fourStar": {
                      "description": "4-star review count.",
                      "type": "integer",
                      "nullable": true
                    },
                    "fiveStar": {
                      "description": "5-star review count.",
                      "type": "integer",
                      "nullable": true
                    }
                  }
                },
                "description": {
                  "description": "Published listing description, when available.",
                  "type": "string",
                  "nullable": true
                },
                "openingHours": {
                  "description": "Published opening hours by day.",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "Monday": {
                      "description": "Published Monday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Tuesday": {
                      "description": "Published Tuesday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Wednesday": {
                      "description": "Published Wednesday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Thursday": {
                      "description": "Published Thursday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Friday": {
                      "description": "Published Friday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Saturday": {
                      "description": "Published Saturday opening hours.",
                      "type": "string",
                      "nullable": true
                    },
                    "Sunday": {
                      "description": "Published Sunday opening hours.",
                      "type": "string",
                      "nullable": true
                    }
                  }
                },
                "permanentlyClosed": {
                  "description": "Permanent-closure flag when returned.",
                  "type": "boolean",
                  "nullable": true
                },
                "mainImage": {
                  "description": "Lead listing image URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "description": "Listing thumbnail URL, when available.",
                  "type": "string",
                  "nullable": true
                },
                "bookingLinks": {
                  "description": "Available booking links.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true
                },
                "attributes": {
                  "description": "Available business attributes.",
                  "type": "object",
                  "nullable": true
                },
                "scrapedAt": {
                  "description": "Collection timestamp for the listing.",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "tookMs": {
            "description": "Request processing time in milliseconds.",
            "type": "integer",
            "nullable": true
          },
          "creditsRemaining": {
            "description": "Numeric balance compatibility value, not a USD amount. For wallet dollars use billing.remainingUsd.",
            "type": "integer",
            "nullable": true
          },
          "billing": {
            "description": "Wallet billing, when applicable.",
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "description": "Billing model; wallet for wallet accounts.",
                "type": "string",
                "nullable": true
              },
              "currency": {
                "description": "Billing currency; USD.",
                "type": "string",
                "nullable": true
              },
              "chargedUsd": {
                "description": "Wallet charge for this request as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "remainingUsd": {
                "description": "Remaining wallet balance as a decimal USD string.",
                "type": "string",
                "nullable": true
              },
              "units": {
                "description": "Successful billing units, not dollars.",
                "type": "integer",
                "nullable": true
              },
              "product": {
                "description": "Product used to determine the applicable rate.",
                "type": "string",
                "nullable": true
              },
              "debitId": {
                "description": "Usage debit identifier, when returned.",
                "type": "string",
                "nullable": true
              },
              "reason": {
                "description": "Billing reason, when returned.",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "LinkedIn",
      "description": "People Refresh and public LinkedIn data."
    },
    {
      "name": "Google",
      "description": "Google Maps, Search and other supported types."
    },
    {
      "name": "Account",
      "description": "Read your available balance."
    }
  ]
}
