EveryAppEveryApp
Providers

X (OAuth 2)

Posts and the person's profile on X, over the v2 API.

Posts and the person's profile on X, over the v2 API.

Connect accounts

Each person connects their own X account in the Gateway, once, and every app that asks uses it. Apps never see the tokens. How connecting works

The redirect URI to register, with your Gateway's address (like apps.example.com):

https://<your gateway>/connect/x-oauth/callback

OAuth 2 with PKCE on X's v2 API; X's OAuth 1.0a (the v1.1 media upload) stays an app secret.

  1. Open developer.x.com and create an OAuth app (also called a client or an integration).
  2. Add the redirect URI above.
  3. Copy the client ID and client secret. The secret is often shown only once.

Add it to your Gateway. It asks for the client ID and secret:

everyapp provider add x-oauth

Or add it in Manage workspace → Providers.

Use it in an app

capabilities: {
  "x-oauth": { access: "read", scopes: ["posts.read"], why: "What the app does with it." },
},

Apps ask for these scope sets:

SetAllowsProvider scopes
identityX account (who you are)users.read, tweet.read
posts.readPosts and timelines (read)tweet.read, users.read
posts.writePosts (read and publish)tweet.read, users.read, tweet.write

Check it worked: everyapp provider show x-oauth shows the client as set. Then open the account menu → Connected accounts → Connect X.

Something wrong or missing? Open an issue.

On this page