Connect a server log feed
https://seolyticize.com /api/v1/tools/connect_log_source Connects a feed of the client's access logs so crawler reports stay current without uploads. kind: cloudflare-logpush (an HTTP destination for a Logpush http_requests job), cloudflare-worker (a Worker snippet for zones without Logpush), vercel (a log drain), fastly (an HTTPS logging endpoint, with the JSON format string to use), s3 (a bucket and prefix the worker pulls new objects from every hour — combined log format or Logpush NDJSON, gzipped or not; give s3 with read-only keys, stored encrypted) or upload (a URL to POST log files to). Returns the ingest URL (shown once: it carries the secret), the setup steps and any snippet. Only crawler requests are kept — visitors' requests are counted and dropped — and each crawler's claim is checked against reverse DNS or its published IP ranges. Answers 'stream our Cloudflare logs in' and 'set up a Vercel log drain'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredkindstringrequiredlabelstrings3objectShow child parameters
bucketstringrequiredprefixstringregionstringendpointstringaccessKeyIdstringrequiredsecretAccessKeystringrequiredvercelVerifystring{
"clientId": "string",
"kind": "cloudflare-logpush",
"label": null,
"s3": null,
"vercelVerify": null
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/connect_log_source" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","kind":"cloudflare-logpush","label":null,"s3":null,"vercelVerify":null}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_log_source
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/connect_log_source
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger