# Specify user by external id

**URL:** https://meta.discourse.org/t/specify-user-by-external-id/87584
**Category:** Support
**Created:** [5월 16, 2018, 2:56오전 UTC](https://meta.discourse.org/t/specify-user-by-external-id/87584 "2018-05-16T02:56:45Z")
**Posts on this page:** 1
**Showing post:** 13

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [5월 17, 2018, 9:06오후 UTC](https://meta.discourse.org/t/specify-user-by-external-id/87584/13 "2018-05-17T21:06:45Z")

</div>

> [@mattman](#):
>
> Is there a better way to discover this stuff than bothering people in the forum?

Please checkout this topic:

> [@Reverse engineer the Discourse API](https://meta.discourse.org/t/how-to-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 …

and also looking at the source code for the controller of the endpoint you are trying to hit is very helpful:

> <https://github.com/discourse/discourse/blob/master/app/controllers/session_controller.rb#L321-L327>

> [@mattman](#):
>
> When I add another “username” parameter it seems to be ignored.

This is because that endpoint doesn’t have support for a “username” param.

> [@mattman](#):
>
> [docs.discourse.org](http://docs.discourse.org) looks pretty sparse, like I can’t even find that “session” endpoint when I search for it specifically.

😢

The [api docs](https://github.com/discourse/discourse_api_docs) ~~could use~~ will always need some work, but they do document most of the heavier used endpoints. If you find a new one we would very much appreciate the help of the community to help document it. I will keep trucking along myself though and continue to document things at a 🐢 steady pace as time permits.

 ![image](https://global.discourse-cdn.com/meta/original/3X/a/8/a8c4b8ad20837446b133f1b74a76ac2c96fe1c9d.jpg)

> [@mattman](#):
>
> from my Bubble app

I’m not familiar with Bubble. Is this what you are referring to?

[https://bubble.is/](https://bubble.is/)

Either way, Discourse by nature has an api endpoint for most things, but that doesn’t necessarily mean that it will always be super friendly when you are trying to call things from external sites instead of natively from inside Ember with a logged in user cookie. This may mean that it will be more productive to [write a custom plugin](https://meta.discourse.org/t/beginners-guide-to-creating-discourse-plugins-part-1/30515) or use the [data explorer plugin](https://meta.discourse.org/t/data-explorer-plugin/32566) to write a custom query and then make an api request to that saved query. Also PR’s are always welcome to improve something.

---

_[View the full topic](https://meta.discourse.org/t/specify-user-by-external-id/87584)._
