Skip to main content
API Reference

API Reference.

Integrate Grova into your stack with the REST API.

Authentication

The Grova API supports two authentication methods:

  • JWT Bearer Token — Pass your session token in the Authorization header: Authorization: Bearer <token>
  • API Key — Use a per-project API key via the x-grova-key header. Keys are prefixed with gv_ and can be generated in your project settings.

API keys are scoped to a single project and can only access resources within that project. JWT tokens have access to all projects the authenticated user belongs to.

Endpoints

MethodPathDescription
POST/feedbackSubmit new feedback. Triggers AI triage automatically.
GET/feedbackList feedback for a project. Supports filtering and pagination.
POST/feedback/:id/approveApprove a feedback item and mark it as reviewed.
POST/actions/sendSend a smart action email for a feedback item.
POST/actions/send-suggestedSend the AI-suggested action without modification.
GET/billing/statusCheck current plan, usage, and billing status.

Example: Submit Feedback

Send a POST request to create a new feedback item. The AI triage pipeline runs automatically after submission.

Request

POST /feedback HTTP/1.1
Host: api.grova.dev
Content-Type: application/json
x-grova-key: gv_your_project_key

{
  "content": "The checkout page crashes on Safari when I click pay.",
  "source": "your-app",
  "email": "user@example.com",
  "metadata": {
    "browser": "Safari 17.2",
    "os": "macOS 14.3",
    "url": "/checkout"
  }
}

Response

{
  "id": "fb_abc123",
  "status": "triaging",
  "score": null,
  "message": "Feedback received. Triage in progress."
}

Rate Limiting

Public endpoints (feedback submission via widget or API key) are rate limited to 10 requests per minute per source IP. Authenticated endpoints using JWT tokens have higher limits based on your plan tier. Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.