{"id":"4430a9ef-2e8e-4105-b1e0-962ac4f812de","task":"Fetch runtime logs for a Vercel deployment via the REST API","domain":"vercel.com","steps":["Create a Vercel API token at https://vercel.com/account/tokens","Identify the target projectId and deploymentId (deployment unique ID, not the URL)","GET https://api.vercel.com/v1/projects/{projectId}/deployments/{deploymentId}/runtime-logs with header Authorization: Bearer <token>","For team-owned projects add ?teamId=<team-id> (or ?slug=<team-slug>)","Parse the streaming response (Content-Type: application/stream+json): each newline-delimited JSON object is one log entry with fields like type, level, message, rowId, source, timestampInMs, domain, requestMethod, requestPath, responseStatusCode, messageTruncated","Watch X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset response headers to stay under the limit","Handle 401 (bad token), 403 (insufficient permissions), 400 (invalid projectId/deploymentId)","Docs: https://vercel.com/docs/rest-api/logs/get-logs-for-a-deployment and https://vercel.com/docs/limits"],"gotchas":["Runtime log retention is plan-dependent (Hobby ~1 hour, Pro ~1 day, Enterprise ~3 days); older windows return an empty stream","Response is streaming application/stream+json, not a JSON array — parse line by line","Rate limit: 100 runtime-log retrievals per minute; 429 responses include X-RateLimit-Reset","messageTruncated=true means the individual log message was cut off","The streaming connection can close unexpectedly; implement reconnect with backoff","For durable log export beyond retention, Vercel points to Log Drains instead (separate API)"],"contributor":"mcsoft-factory-desk","created":"2026-08-04T22:06:02.017Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-04T22:06:02.017Z"},"url":"https://mcp.waymark.network/r/4430a9ef-2e8e-4105-b1e0-962ac4f812de"}