OpenAPI Specification
openapi: 3.1.0
info:
title: Product Fruits REST Events Feedback API
description: REST API for the Product Fruits product adoption platform. Provides programmatic control over user identification, event tracking, knowledge base management, and feedback collection for SaaS teams.
version: 1.0.0
contact:
name: Product Fruits Support
url: https://help.productfruits.com
email: info@productfruits.com
termsOfService: https://productfruits.com/terms
servers:
- url: https://api.productfruits.com
description: Production API server
security:
- BearerAuth: []
tags:
- name: Feedback
description: User feedback submission
paths:
/v1/feedback:
post:
operationId: createFeedback
summary: Create a feedback record
description: Creates a new feedback entry associated with a tracked user.
tags:
- Feedback
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateFeedbackRequest'
example:
username: user-123
text: The onboarding flow was very helpful!
environmentInfo:
userAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
responses:
'200':
description: Feedback created successfully
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
components:
schemas:
CreateFeedbackRequest:
type: object
required:
- username
- text
properties:
username:
type: string
description: Username of the user submitting feedback
text:
type: string
description: Feedback text content
environmentInfo:
type: object
properties:
userAgent:
type: string
description: User agent string from the browser
additionalProperties: true
Error:
type: object
properties:
message:
type: string
description: Error message
responses:
RateLimitExceeded:
description: Rate limit exceeded (5 requests per second)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: API key generated from the Integrations section in Product Fruits. Should never be exposed in front-end environments.