{"openapi":"3.1.0","info":{"title":"Feedi Read API","version":"1.0.0","description":"Read-only access to your Feedi feedback. Available on the Indie plan. Authenticate with an account-wide secret key (feedi_{region}_sk_…) created at /account/api-keys."},"servers":[{"url":"https://api.feedi.dev"}],"security":[{"bearerAuth":[]}],"paths":{"/v1/feedback":{"get":{"operationId":"listFeedback","summary":"List feedback","description":"Returns feedback newest-first. Paginate with `cursor` using `next_cursor`.","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["new","archived"],"default":"new"}},{"name":"app","in":"query","schema":{"type":"string","format":"uuid"},"description":"Filter by app id."},{"name":"project","in":"query","schema":{"type":"string","format":"uuid"},"description":"Filter by project id."},{"name":"tag","in":"query","schema":{"type":"string","maxLength":32},"description":"Filter by tag."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque cursor from a prior next_cursor."}],"responses":{"200":{"description":"A page of feedback.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Per-minute request budget."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the current minute."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix seconds when the minute window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Feedback"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/feedback/{id}":{"get":{"operationId":"getFeedback","summary":"Get one feedback item","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The feedback item with metadata and delivery status.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FeedbackDetail"}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","summary":"List projects","responses":{"200":{"description":"All projects in the account.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/apps":{"get":{"operationId":"listApps","summary":"List apps","parameters":[{"name":"project","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Apps across the account, optionally filtered by project.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/App"}}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/tags":{"get":{"operationId":"listTags","summary":"List tags with counts","parameters":[{"name":"app","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"project","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Distinct tags with their feedback counts.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Account-wide secret key, e.g. `feedi_eu_sk_…`."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}},"Feedback":{"type":"object","required":["id","message","reporter_email","status","received_at","tags","app","project"],"properties":{"id":{"type":"string"},"message":{"type":"string"},"reporter_email":{"type":["string","null"]},"status":{"type":"string","enum":["new","archived"]},"received_at":{"type":"string","format":"date-time"},"tags":{"type":"array","items":{"type":"string"}},"app":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"platform":{"type":"string"}}},"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"FeedbackDetail":{"allOf":[{"$ref":"#/components/schemas/Feedback"},{"type":"object","properties":{"metadata":{"type":"object","properties":{"built_in":{"type":"object","additionalProperties":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}}}},"delivery":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["email","webhook","github"]},"status":{"type":"string"},"external_url":{"type":["string","null"]}}}}}}]},"Project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"App":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"platform":{"type":"string"},"app_identifier":{"type":"string"},"region":{"type":"string"}}},"Tag":{"type":"object","properties":{"tag":{"type":"string"},"count":{"type":"integer"}}}}}}