# PushFeedback API

> For the complete documentation index, see [llms.txt](/llms.txt)

> The PushFeedback REST API lets you read the feedback collected for your

<Export
  url={"/openapi/openapi.yaml"}
>
  
</Export>

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"PushFeedback API"}
>
</Heading>

The PushFeedback REST API lets you read the feedback collected for your
projects and drive the same endpoints the feedback widget uses under the
hood.

Base URL: `https://app.pushfeedback.com`

## Authentication

Endpoints that read or change your data require an API key sent in the
`Authorization` header:

```
Authorization: Api-Key <your-api-key>
```

API keys are scoped to a team, and can optionally be restricted to a
single project of that team. Every key holds one or more scopes:

| Scope | Allows |
|-------|--------|
| `feedback:read` | List a project's feedback |
| `feedback:submit` | Submit feedback to projects that require a submit key |
| `project:manage` | Update project settings, such as the site URL |

A key can hold any combination of scopes; pick them when creating the
key in the dashboard.

Requests for a project the key does not cover, either because the project
belongs to another team or falls outside the key's project restriction,
return `404 Not Found`, so a leaked key cannot be used to probe which
project identifiers exist. Requests that the key's scopes do not allow on
a project it does cover return `403 Forbidden` with a message naming the
missing scope.

### Getting an API key

Team admins can create and revoke API keys from the team settings page
on [app.pushfeedback.com](https://app.pushfeedback.com). The full key is
shown once, at creation time; store it securely.

Creating a key from the dashboard requires a paid plan. Keys created
before a downgrade keep working, and official PushFeedback integrations
such as the WordPress plugin provision their own key when you connect
them, on any plan.

The endpoints the widget calls on page load and on submit, such as
retrieving the project configuration and submitting feedback, are public
and need no API key by default. Projects can opt in to requiring a key
for feedback submission; see the submit endpoint.

## Versioning

The API is versioned. All endpoints live under `/api/v1/`.

## Rate limits

Public endpoints are rate limited per client IP. If you exceed a limit,
the API responds with `429 Too Many Requests`.

  <Heading
    id={"authentication"}
    as={"h2"}
    className={"openapi-tabs__heading"}
    children={"Authentication"}
  >
  </Heading><SchemaTabs
    className={"openapi-tabs__security-schemes"}
  >
    <TabItem
      label={"API Key: ApiKeyAuth"}
      value={"ApiKeyAuth"}
    >
      
      
      Team API key, sent as `Authorization: Api-Key <your-api-key>`.
      Note the `Api-Key` prefix before the key itself. Keys hold one or
      more scopes (`feedback:read`, `feedback:submit`, `project:manage`)
      and may be restricted to one project.
      
      
      
        
          
            
              
                Security Scheme Type:
              
                apiKey
              
            
              
                Header parameter name:
              
                Authorization
              
            
          
        
      
    </TabItem>
  </SchemaTabs>

  
    Contact
  
    [support@pushfeedback.com](mailto:support@pushfeedback.com)
