{"openapi":"3.1.0","info":{"title":"Analytics API","version":"1.0.0","description":"Events, metrics, timeseries, funnels, cohorts, and realtime analytics streams Exported as an OpenAPI 3.1 document from Fake API for Devs."},"servers":[{"url":"https://fakeapifordevs.vercel.app","description":"Fake API for Devs production endpoint"}],"tags":[{"name":"Analytics","description":"Events, metrics, timeseries, funnels, cohorts, and realtime analytics streams"}],"paths":{"/api/analytics/events":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/events?user_id=user_123","operationId":"analytics_get_analytics_events","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}},"post":{"tags":["Analytics"],"summary":"POST /api/analytics/events","operationId":"analytics_post_analytics_events","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"event_type":"page_view","user_id":"user_456","properties":{"page":"/pricing","referrer":"https://fakeapifordevs.vercel.app"}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/metrics":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/metrics?range=7d","operationId":"analytics_get_analytics_metrics","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/reports":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/reports?type=usage","operationId":"analytics_get_analytics_reports","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/timeseries":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/timeseries?metric=pageviews&granularity=day","operationId":"analytics_get_analytics_timeseries","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/funnel":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/funnel?steps=visit,signup,purchase","operationId":"analytics_get_analytics_funnel","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/cohorts":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/cohorts?period=month","operationId":"analytics_get_analytics_cohorts","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}},"/api/analytics/realtime":{"get":{"tags":["Analytics"],"summary":"GET /api/analytics/realtime","operationId":"analytics_get_analytics_realtime","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"1-indexed page number for collection endpoints."},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10},"description":"Page size for collection endpoints."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional text search filter where supported."},{"name":"delay","in":"query","schema":{"type":"number","minimum":0,"maximum":10},"description":"Optional artificial delay in seconds."},{"name":"simulate_error","in":"query","schema":{"type":"string","enum":["rate_limit","server_error","not_found","unauthorized","forbidden","bad_request","service_unavailable","timeout","malformed"]},"description":"Force a mock failure scenario for resilience testing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"},"429":{"description":"Rate limited"},"500":{"description":"Internal server error"}}}}}}