# Allow API use by regular users, not just admins

**URL:** https://meta.discourse.org/t/allow-api-use-by-regular-users-not-just-admins/254724
**Category:** Development
**Tags:** rest-api
**Created:** [February 10, 2023, 2:14am UTC](https://meta.discourse.org/t/allow-api-use-by-regular-users-not-just-admins/254724 "2023-02-10T02:14:35Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![Alexander](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alexander/32/497634_2.png) [@Alexander](https://meta.discourse.org/u/Alexander)
#### Post date: [February 10, 2023, 2:27am UTC](https://meta.discourse.org/t/allow-api-use-by-regular-users-not-just-admins/254724/2 "2023-02-10T02:27:39Z")

</div>

> [@Reverse engineer the Discourse API](https://meta.discourse.org/t/reverse-engineer-the-discourse-api/20576):
>
> Discourse is backed by a complete JSON api. Anything you can do on the site you can also do using the JSON api. The API is documented at [docs.discourse.org](https://docs.discourse.org). You can also use the [discourse\_api](https://github.com/discourse/discourse_api) Ruby gem as a client library. However, not every endpoint is documented. To determine how to do something with the JSON API here are some steps you can follow. Example: recategorize a topic. Go to a topic and start editing a category: Open Chrome dev tools, switch to the Network tab, select …

> [@User API keys specification](https://meta.discourse.org/t/user-api-keys-specification/48536):
>
> Discourse contains a system for generating API keys per user if a very specific protocol is followed. This feature facilitates “application” access to Discourse instances without needing to involve moderators. High level description At a high level: Client (desktop app, browser plugin, mobile app) generates a private/public key pair and return url Client redirects to a route on discourse giving discourse its public key Discourse gets approval from user to use app Discourse generat…

(Allows making authenticated requests depending on the scope)

* * *

You might want to take a look at these resources, they can be very helpful 🙂

---

_[View the full topic](https://meta.discourse.org/t/allow-api-use-by-regular-users-not-just-admins/254724)._
