{"openapi":"3.0.3","info":{"title":"Endpointry API","version":"1.0.0","description":"A unified platform of production-ready data APIs with consistent schemas, built-in resilience and an SLA enterprises can rely on.","contact":{"email":"support@endpointry.com"},"termsOfService":"https://endpointry.com/legal/terms"},"servers":[{"url":"https://api.endpointry.com"}],"components":{"schemas":{"ResponseMeta":{"type":"object","properties":{"request_id":{"type":"string","example":"req_9f2c4a1b8d3e0f6a7c5b9d1e"},"as_of":{"type":"string","format":"date-time","description":"When this snapshot of the data was taken (UTC)."},"cache":{"type":"string","enum":["HIT","MISS"]},"pagination":{"$ref":"#/components/schemas/PaginationMeta"},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/ResponseWarning"}}},"required":["request_id"]},"PaginationMeta":{"type":"object","properties":{"page":{"type":"integer"},"next_cursor":{"type":"string","nullable":true},"next_offset":{"type":"integer","nullable":true},"next_page":{"type":"integer","nullable":true},"limit":{"type":"integer"},"returned":{"type":"integer"},"total":{"type":"integer"}}},"ResponseWarning":{"type":"object","properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"]},"GoogleWebSearchResult":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/GoogleSearchResult"}}},"required":["results"]},"GoogleSearchResult":{"type":"object","properties":{"position":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Absolute rank across the whole result set, starting at 1."},"url":{"type":"string","format":"uri"},"domain":{"type":"string"},"title":{"type":"string"},"snippet":{"type":"string","nullable":true},"published_at":{"type":"string","nullable":true,"format":"date-time","description":"Publication date when the source exposes one, otherwise null."}},"required":["position","url","domain","title","snippet","published_at"]},"Problem":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","code","request_id"]},"GoogleKnowledgePanel":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string","nullable":true,"description":"Short type descriptor, e.g. \"Software company\"."},"description":{"type":"object","nullable":true,"properties":{"text":{"type":"string"},"source_url":{"type":"string","nullable":true,"format":"uri"},"source_name":{"type":"string","nullable":true}},"required":["text","source_url","source_name"]},"image":{"type":"object","nullable":true,"properties":{"url":{"type":"string","format":"uri"},"width":{"type":"integer","nullable":true},"height":{"type":"integer","nullable":true},"page_url":{"type":"string","nullable":true,"format":"uri"}},"required":["url","width","height","page_url"]},"attributes":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["label","values"]},"description":"Structured facts, e.g. Founded → [\"2021\"]."}},"required":["name","label","description","image","attributes"]},"GoogleAutocompleteResult":{"type":"object","properties":{"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/GoogleSuggestion"}},"spelling_suggestion":{"type":"string","nullable":true,"description":"Corrected query when the input looks misspelled, otherwise null."}},"required":["suggestions","spelling_suggestion"]},"GoogleSuggestion":{"type":"object","properties":{"position":{"type":"integer","minimum":0,"exclusiveMinimum":true},"keyword":{"type":"string","description":"The full suggested query, as plain text."},"keyword_html":{"type":"string","description":"Same suggestion with <b> around the completed portion, for UI highlighting."},"entity":{"type":"object","nullable":true,"properties":{"title":{"type":"string"},"label":{"type":"string","nullable":true},"image_url":{"type":"string","nullable":true,"format":"uri"}},"required":["title","label","image_url"],"description":"Set when the suggestion maps to a known entity."}},"required":["position","keyword","keyword_html","entity"]}},"parameters":{}},"paths":{"/v1/google/web-search":{"get":{"operationId":"google.web-search","summary":"Search the web","description":"Returns ranked web results, exactly `per_page` per response (up to 10) until the result set ends. Pagination continues while results remain — typically 100–250 per query — and stops with `meta.pagination.next_page: null`. Each result carries its absolute position, so ranking is stable across pages. Results reflect a globally neutral locale; country and language targeting are not yet available.","tags":["Google API"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":256,"example":"best crm software","description":"The search query."},"required":true,"description":"The search query.","name":"query","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":1,"example":1,"description":"Page number, starting at 1."},"required":false,"description":"Page number, starting at 1.","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":10,"default":10,"example":10,"description":"Results per page (1–10). Every page is full until the result set ends."},"required":false,"description":"Results per page (1–10). Every page is full until the result set ends.","name":"per_page","in":"query"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ResponseMeta"},"data":{"$ref":"#/components/schemas/GoogleWebSearchResult"}},"required":["meta","data"]}}}},"default":{"description":"Error response (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/google/knowledge-panel":{"get":{"operationId":"google.knowledge-panel","summary":"Get the knowledge panel for a query","description":"Returns structured entity data — name, type, summary, image and attributes — for queries that resolve to a known entity. Returns `404 NOT_FOUND` when the query has no panel. Sharing a warm result set with `/web-search`, so a lookup after a search is served from cache.","tags":["Google API"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":256,"example":"anthropic","description":"The entity or topic to look up."},"required":true,"description":"The entity or topic to look up.","name":"query","in":"query"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ResponseMeta"},"data":{"$ref":"#/components/schemas/GoogleKnowledgePanel"}},"required":["meta","data"]}}}},"default":{"description":"Error response (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/google/autocomplete":{"get":{"operationId":"google.autocomplete","summary":"Get query suggestions","description":"Returns the suggestions Google offers for a partial query, in rank order, plus a spelling correction when the input looks misspelled. Each suggestion is provided as plain text and with highlight markup, and carries entity details when the suggestion maps to one. Useful for keyword research and search-as-you-type experiences.","tags":["Google API"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":256,"example":"best crm","description":"Partial query to complete."},"required":true,"description":"Partial query to complete.","name":"query","in":"query"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ResponseMeta"},"data":{"$ref":"#/components/schemas/GoogleAutocompleteResult"}},"required":["meta","data"]}}}},"default":{"description":"Error response (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}}}