Skip to content

App Profile

The App and its profile is your entry point to The Bridge. This is your unique set of settings to tailor the experience. You can have several different apps, e.g. one for production and one for testing.


Gets the complete App model of your app. Use this response data to alter your model and push back.

GET https://api.thebridge.dev/account/app

ParameterTypeRequiredDescription
x-api-keystringRequiredYour app API key

HTTP 200 — Your App Profile model.

Request example

curl --request GET 'https://api.thebridge.dev/account/app' \
--header 'x-api-key: YOUR_APP_API_KEY'

Response example:

{
"id": "624c14cc0c01e70033356282",
"name": "My app",
"domain": "MY_APP",
"apiUrl": "http://localhost:3000",
"uiUrl": "http://localhost:8100",
"emailSenderName": "My App",
"emailSenderEmail": "noreply@myapp.com",
"webhookUrl": "http://api.example.com/webhook",
"stripeEnabled": false,
"paymentsAutoRedirect": true,
"passkeysEnabled": true,
"magicLinkEnabled": true,
"mfaEnabled": true,
"azureMarketplaceEnabled": false,
"googleSsoEnabled": false,
"azureAdSsoEnabled": true,
"linkedinSsoEnabled": true,
"githubSsoEnabled": true,
"facebookSsoEnabled": true,
"onboardingFlow": "B2B",
"tenantSelfSignup": true,
"cloudViews": true,
"redirectUris": ["http://localhost:8080/auth/oauth-callback"],
"defaultCallbackUri": "http://localhost:8080/auth/oauth-callback",
"logo": "https://public.nblocks.dev/assets/logos/nblocks-logo-black.svg",
"websiteUrl": "http://localhost",
"privacyPolicyUrl": "",
"termsOfServiceUrl": "",
"accessTokenTTL": 3600,
"refreshTokenTTL": 604800
}
GET Try it out
GET https://api.thebridge.dev/account/app
Stored in session memory only. Never persisted.

You can update the app with the same JSON you got from Get App Profile, or just provide the fields you want to update.

PUT https://api.thebridge.dev/account/app

Body Parameters

ParameterTypeRequiredDescription
namestringOptionalName of the app
apiUrlstringOptionalURL to your API (to receive webhooks etc)
uiUrlstringOptionalURL to your frontend app (for onboarding redirects etc)
webhookUrlstringOptionalEnable webhook events to be sent to this URL
logostringOptionalURL to your logo
websiteUrlstringOptionalURL to your website or landing page
privacyPolicyUrlstringOptionalURL to your privacy policy page
termsOfServiceUrlstringOptionalURL to your terms of service page
emailSenderNamestringOptionalSender name for emails sent from The Bridge
emailSenderEmailstringOptionalSender email for emails (must be verified)
onboardingFlowOnboardingFlowOptionalConfigure how users will be onboarded
cloudViewsbooleanOptionalUse UI provided by The Bridge instead of your own
tenantSelfSignupbooleanOptionalAllow users to signup for new workspaces
redirectUrisstring[]OptionalAllowed redirect URIs
defaultCallbackUristringOptionalDefault handover/callback URI
stripeEnabledbooleanOptionalEnable Stripe payments
paymentsAutoRedirectbooleanOptionalAuto-redirect to plan selection after signup or trial end
passkeysEnabledbooleanOptionalAllow passkey login
magicLinkEnabledbooleanOptionalAllow Magic-Link login
mfaEnabledbooleanOptionalAllow multi-factor authentication
googleSsoEnabledbooleanOptionalAllow Google SSO login
azureAdSsoEnabledbooleanOptionalAllow Azure AD SSO login
linkedinSsoEnabledbooleanOptionalAllow LinkedIn SSO login
githubSsoEnabledbooleanOptionalAllow GitHub SSO login
facebookSsoEnabledbooleanOptionalAllow Facebook SSO login
accessTokenTTLnumberOptionalAccess token lifetime in seconds
refreshTokenTTLnumberOptionalRefresh token lifetime in seconds

HTTP 200 — Returns the updated App Profile model.

Request example

curl --request PUT 'https://api.thebridge.dev/account/app' \
--header 'x-api-key: YOUR_APP_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "logo": "https://www.example.com/another_logo.png"
}'
PUT Try it out
PUT https://api.thebridge.dev/account/app
Stored in session memory only. Never persisted.

Store sensitive credentials for your app so The Bridge can authorize with 3rd party services on your behalf. These credentials are never outputted back again.

PUT https://api.thebridge.dev/account/app/credentials

Body Parameters

ParameterTypeRequiredDescription
stripeSecretKeystringOptionalStripe integration secret key
stripePublicKeystringOptionalStripe integration public key
googleClientIdstringOptionalGoogle social login client ID
googleClientSecretstringOptionalGoogle social login client secret
microsoftAzureADClientIdstringOptionalAzure AD SSO client ID
microsoftAzureADClientSecretstringOptionalAzure AD SSO client secret
microsoftAzureADTenantIdstringOptionalAzure AD SSO tenant ID

HTTP 200 — Credentials state object (credentials themselves are never returned).

Request example

curl --request PUT 'https://api.thebridge.dev/account/app/credentials' \
--header 'x-api-key: YOUR_APP_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "googleClientId": "XXXXXXX",
  "googleClientSecret": "XXXXXXX"
}'

Response example:

{
"stripeCredentialsAdded": true,
"azureMarketplaceCredentialsAdded": true,
"azureAdSsoCredentialsAdded": false,
"googleSsoCredentialsAdded": true
}
PUT Try it out
PUT https://api.thebridge.dev/account/app/credentials
Stored in session memory only. Never persisted.

Although the credentials are never displayed again, you can always get their states to confirm they’ve been added.

GET https://api.thebridge.dev/account/app/credentialsState

HTTP 200 — Credentials state object.

Request example

curl --request GET 'https://api.thebridge.dev/account/app/credentialsState' \
--header 'x-api-key: YOUR_APP_API_KEY'

Response example:

{
"stripeCredentialsAdded": true,
"azureMarketplaceCredentialsAdded": true,
"azureAdSsoCredentialsAdded": false,
"googleSsoCredentialsAdded": true
}
GET Try it out
GET https://api.thebridge.dev/account/app/credentialsState
Stored in session memory only. Never persisted.