{"openapi":"3.1.0","info":{"title":"DeepTrawler","version":"1-d7d07c026132","description":"Live, pay-per-call search over the deep conversation layer across social and messaging platforms. No API keys, no signup; pay per request via x402 or MPP.","x-guidance":"One platform per call. Endpoint paths are platform-owned rather than universal. Discover the current platforms, paths, controls, and filters at GET /v1/platforms. Search endpoints accept exactly one of q or query. Paid endpoints return 402 with payment requirements; validation failures cost nothing.","contact":{"name":"Contact us","url":"https://t.me/deeptrawler?direct"}},"paths":{"/v1/telegram/search":{"get":{"operationId":"telegramSearch","summary":"Search Telegram messages globally or within chats (paid)","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Phrase search query (alias: query). Provide exactly one of q / query.","schema":{"type":"string"}},{"name":"query","in":"query","required":false,"description":"Phrase search query (alias: q). Provide exactly one of query / q.","schema":{"type":"string"}},{"name":"from","in":"query","required":false,"description":"Lower time bound. ISO-8601 (2026-06-01T00:00:00Z) or relative (now-7d, now-24h).","schema":{"type":"string"}},{"name":"to","in":"query","required":false,"description":"Upper time bound (default now). ISO-8601 (2026-06-01T00:00:00Z) or relative (now-7d, now-24h).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","required":false,"description":"Opaque continuation token from a previous response's next_cursor.","schema":{"type":"string"}},{"name":"filter","in":"query","required":false,"style":"deepObject","explode":true,"x-guidance":"Field filters use filter[field][operator]=value. Scalar operators take one value. List operators use [] (for example filter[field][in][]=a&filter[field][in][]=b). Values are opaque.","schema":{"type":"object","properties":{"chat":{"type":"string","description":"Shorthand uses eq; supported operators: eq, in."},"message_type":{"type":"string","enum":["any","photo","video","photo_video","document","url","gif","voice","music","round_video","geo","contact","poll","pinned"],"description":"Shorthand uses eq; supported operators: eq."}}}}],"responses":{"200":{"description":"Matching results.","content":{"application/json":{"schema":{"type":"object","required":["platform","query","results","next_cursor","meta"],"properties":{"platform":{"type":"string","enum":["telegram"]},"query":{"type":"string"},"results":{"type":"array","items":{"type":"object","required":["id","message_id","text","chat","url","timestamp","message_type","views","forwards"],"properties":{"id":{"type":"string","description":"\"{chat_id}:{message_id}\""},"message_id":{"type":"integer"},"text":{"type":"string"},"chat":{"type":"object","required":["id","username","title","verified"],"properties":{"id":{"type":"string"},"username":{"type":["string","null"]},"title":{"type":"string"},"verified":{"type":"boolean"}}},"url":{"type":["string","null"]},"timestamp":{"type":"string","description":"ISO-8601"},"message_type":{"type":["string","null"]},"views":{"type":["integer","null"]},"forwards":{"type":["integer","null"]}}}},"next_cursor":{"type":["string","null"],"description":"null when the platform provides no continuation."},"meta":{"type":"object","required":["order"],"properties":{"order":{"type":"string"}}}}}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Validation error (charged nothing). Carries a `docs` URL.","content":{"application/json":{"schema":{"type":"object","required":["error","docs"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string","description":"URL to the current machine-readable contract."}}}}}},"402":{"description":"Payment Required — pay via x402 or MPP and retry."},"429":{"description":"Rate limited upstream; see Retry-After."},"500":{"description":"Internal server error."},"502":{"description":"Upstream platform error."}}}},"/v1/telegram/search/public-posts":{"get":{"operationId":"telegramSearchPublicPosts","summary":"Search posts across public Telegram channels (paid)","description":"Accepts only q/query, limit, and cursor. Other controls and all filters return 400.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.300000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Phrase search query (alias: query). Provide exactly one of q / query.","schema":{"type":"string"}},{"name":"query","in":"query","required":false,"description":"Phrase search query (alias: q). Provide exactly one of query / q.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","required":false,"description":"Opaque continuation token from a previous response's next_cursor.","schema":{"type":"string"}}],"responses":{"200":{"description":"Matching results.","content":{"application/json":{"schema":{"type":"object","required":["platform","query","results","next_cursor","meta"],"properties":{"platform":{"type":"string","enum":["telegram"]},"query":{"type":"string"},"results":{"type":"array","items":{"type":"object","required":["id","message_id","text","chat","url","timestamp","message_type","views","forwards"],"properties":{"id":{"type":"string","description":"\"{chat_id}:{message_id}\""},"message_id":{"type":"integer"},"text":{"type":"string"},"chat":{"type":"object","required":["id","username","title","verified"],"properties":{"id":{"type":"string"},"username":{"type":["string","null"]},"title":{"type":"string"},"verified":{"type":"boolean"}}},"url":{"type":["string","null"]},"timestamp":{"type":"string","description":"ISO-8601"},"message_type":{"type":["string","null"]},"views":{"type":["integer","null"]},"forwards":{"type":["integer","null"]}}}},"next_cursor":{"type":["string","null"],"description":"null when the platform provides no continuation."},"meta":{"type":"object","required":["order"],"properties":{"order":{"type":"string"}}}}}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Validation error (charged nothing). Carries a `docs` URL.","content":{"application/json":{"schema":{"type":"object","required":["error","docs"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string","description":"URL to the current machine-readable contract."}}}}}},"402":{"description":"Payment Required — pay via x402 or MPP and retry."},"429":{"description":"Rate limited upstream; see Retry-After."},"500":{"description":"Internal server error."},"502":{"description":"Upstream platform error."}}}},"/v1/platforms":{"get":{"operationId":"listPlatforms","summary":"List supported platforms, endpoint paths, and filters (free)","security":[],"responses":{"200":{"description":"Supported platforms and their platform-owned endpoints.","content":{"application/json":{"schema":{"type":"object","required":["platforms"],"properties":{"platforms":{"type":"array","items":{"type":"object","required":["slug","name","aliases","status","endpoints","filters"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","deprecated","beta"]},"endpoints":{"type":"object","additionalProperties":{"type":"object","required":["path","control_params","limit","filters"],"properties":{"path":{"type":"string"},"control_params":{"type":"array","items":{"type":"string"}},"limit":{"type":"object","required":["default","max"],"properties":{"default":{"type":"integer"},"max":{"type":"integer"}}},"filters":{"type":"object"}}}},"filters":{"type":"object","description":"Compatibility view of filters on the conventional search endpoint."}}}}}}}}}}}},"/openapi.json":{"get":{"operationId":"openapi","summary":"This document (free, unversioned)","security":[],"responses":{"200":{"description":"OpenAPI document."}}}},"/skill":{"get":{"operationId":"getSkill","summary":"Agent skill, Markdown (free, unversioned)","security":[],"responses":{"200":{"description":"Markdown skill file.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"operationId":"health","summary":"Liveness check (free, unversioned)","security":[],"responses":{"200":{"description":"Service is up."}}}}}}