Skip to main content

Register an OAuth client

Resend does not yet have a dashboard screen for creating OAuth clients, so you register one by calling the OAuth registration endpoint, as described in the Building a Resend OAuth client guide. Registration returns the Client ID and Client Secret you enter in StackOne.

1

Register your OAuth client

There is no dashboard screen for this — you register the client by sending a single
JSON request to POST https://api.resend.com/oauth/register with
Content-Type: application/json. Register a confidential client so that Resend issues
a Client Secret, and include the Callback URL from your Connector Profile as a
redirect URI. Run the following curl command, replacing <callback_url> with that
Callback URL and the scope value with the scopes you need (see the next step):

  • client_name — a descriptive name for the client, such as StackOne Integration. Any name works; it is only a label.
  • redirect_uris — must include the Callback URL from your Connector Profile.
  • grant_types — include both authorization_code and refresh_token. The refresh_token grant is required so StackOne can refresh the access token once it expires.
  • token_endpoint_auth_method — set to client_secret_post, because StackOne sends the client credentials in the request body when exchanging and refreshing tokens. This makes Resend issue a Client Secret for the confidential client.
  • The response returns a client_id and a client_secret. The Client Secret is returned only once at registration and cannot be retrieved later — store it securely.
2

Alternative: register a public client instead

Public clients use a different flow and do not require a Client Secret. Use this step instead of the previous one if you don’t need the Client Secret to be validated.

  • Send the same POST https://api.resend.com/oauth/register request, but set token_endpoint_auth_method to none instead of client_secret_post.
  • Resend returns only a client_id — no Client Secret is issued, and the client authenticates with PKCE alone, so the Client Secret is never verified.
  • This still connects — enter any placeholder value in the required Client Secret field in StackOne, since Resend never checks it for a public client.
3

Choose the scopes

Enables actions: Add Batch Suppressions, Add Suppression, Cancel Email, Create API Key, Create Broadcast, Create Contact, Create Contact Property, Create Domain, Create Segment, Delete API Key, Delete Broadcast, Delete Contact, Delete Domain, Delete Segment, List API Keys, List Broadcasts, List Contact Properties, List Contacts, List Domains, List Emails, List Segments, List Suppressions, Remove Batch Suppressions, Remove Suppression, Retrieve Broadcast, Retrieve Contact, Retrieve Domain, Retrieve Email, Retrieve Segment, Retrieve Suppression, Send Batch Emails, Send Broadcast, Send Email, Update API Key, Update Broadcast, Update Contact, Update Domain, Update Email, Update Segment, Verify Domain

Scopes are not set in Resend’s UI — they are the scope field in the same POST https://api.resend.com/oauth/register request body from the previous step, given as a single space-separated string (for example "scope": "full_access"). Use full_access for all API routes, or emails:send to only send email. If you omit scope at registration, Resend registers the client with both scopes by default.

4

Enter the credentials in StackOne

Paste the returned client_id into the Client ID field and the client_secret into the Client Secret field in the StackOne Connector profile. In the Scopes field, enter the space-separated scopes you registered, such as full_access.

Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for Resend:
1

Open the connector

Log in to StackOne, open Connectors, and select Resend.
2

Choose actions and events

  • Click Add Profile.
  • If the connector offers more than one authentication method, set the Auth Method filter to OAuth 2.0.
  • Select the actions, and any events, to enable for this Connector Profile.
  • Click Continue.
3

Set up authentication

  • Select Authentication Type as OAuth 2.0.
  • Fill out the fields using details retrieved from your provider:
    • Client ID
    • Client Secret
    • Scopes (Optional)
  • Click Create Profile.
Congratulations! The new Connector Profile now shows up on the connector page. If you created it as a project member rather than an admin, it starts disabled until a project admin enables it. You can now continue to Link Accounts for Resend.