Synq Docs
Management APISign-in providers

Set a brand’s own app at a sign-in provider

The app is the brand’s own, which wins over the org’s. The app at the provider must register `redirect_uri` exactly: the brand’s own callback, on its issuer’s host. Checks the client id and secret with the provider first (a token request it refuses for the code, not the app, when it takes them), then keeps them in place of any before. Microsoft's needs Entra's `auth_time` optional claim turned on, or a fresh sign-in through it is refused. Apple takes no `client_secret`: send its Services ID as `client_id` with `team_id`, `key_id` and the `.p8` `private_key`, from which Synq signs each client secret it sends Apple. Apple delivers mail to private relay addresses only from domains registered with the app, so register the domain Synq sends your brands' email from (the domain of their sender address) under Sign in with Apple for Email Communication, or Synq's email to people who hid their address bounces. Every other provider takes `client_id` and `client_secret`. Recorded as `org.updated` (or `brand.updated`) with the client id, never the secret. 422 `connection_rejected` when the provider refuses the app; 503 when it can't be reached; at most 10 a minute per org (429). Needs `org.connections.edit`, and a plan with `auth.byo_connections` (403 `plan_feature_unavailable` otherwise, naming the plan in `required_plan`); forgetting one never does.

PUT/v1/orgs/{org}/brands/{brand}/sign-in-providers/{provider}/app

The app is the brand’s own, which wins over the org’s. The app at the provider must register redirect_uri exactly: the brand’s own callback, on its issuer’s host. Checks the client id and secret with the provider first (a token request it refuses for the code, not the app, when it takes them), then keeps them in place of any before. Microsoft's needs Entra's auth_time optional claim turned on, or a fresh sign-in through it is refused. Apple takes no client_secret: send its Services ID as client_id with team_id, key_id and the .p8 private_key, from which Synq signs each client secret it sends Apple. Apple delivers mail to private relay addresses only from domains registered with the app, so register the domain Synq sends your brands' email from (the domain of their sender address) under Sign in with Apple for Email Communication, or Synq's email to people who hid their address bounces. Every other provider takes client_id and client_secret. Recorded as org.updated (or brand.updated) with the client id, never the secret. 422 connection_rejected when the provider refuses the app; 503 when it can't be reached; at most 10 a minute per org (429). Needs org.connections.edit, and a plan with auth.byo_connections (403 plan_feature_unavailable otherwise, naming the plan in required_plan); forgetting one never does.

Authorization

bearer
AuthorizationBearer <token>

An org API key (sk_live_…, sk_test_…), or an access token from the Synq issuer (the synq brand, on the accounts host) for this API.

In: header

Path Parameters

org*string
brand*string
provider*string

Value in

  • "google"
  • "github"
  • "microsoft"
  • "apple"
  • "facebook"
  • "x"
  • "discord"
  • "telegram"
  • "matrica"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PUT "https://example.com/v1/orgs/string/brands/string/sign-in-providers/google/app" \  -H "Content-Type: application/json" \  -d '{    "client_id": "string"  }'
{  "client_id": "string",  "redirect_uri": "string",  "updated_at": "2019-08-24T14:15:22Z"}

Change how a brand signs in with a provider PATCH

Turn it on or off, link by email or not, limit Google to one Workspace domain and Microsoft to work and school accounts or one directory. Needs `org.brands.edit`. Recorded as `brand.updated`, naming each setting as `sign_in_providers.<provider>.<setting>`; send null to clear one.

Set the org’s own app at a sign-in provider PUT

The app is the org’s, for every brand without its own. The app at the provider must register every one of `redirect_uris` exactly: each live brand’s own callback, on its issuer’s host. A brand made later adds its own, which the answer that makes it names. Checks the client id and secret with the provider first (a token request it refuses for the code, not the app, when it takes them), then keeps them in place of any before. Microsoft's needs Entra's `auth_time` optional claim turned on, or a fresh sign-in through it is refused. Apple takes no `client_secret`: send its Services ID as `client_id` with `team_id`, `key_id` and the `.p8` `private_key`, from which Synq signs each client secret it sends Apple. Apple delivers mail to private relay addresses only from domains registered with the app, so register the domain Synq sends your brands' email from (the domain of their sender address) under Sign in with Apple for Email Communication, or Synq's email to people who hid their address bounces. Every other provider takes `client_id` and `client_secret`. Recorded as `org.updated` (or `brand.updated`) with the client id, never the secret. 422 `connection_rejected` when the provider refuses the app; 503 when it can't be reached; at most 10 a minute per org (429). Needs `org.connections.edit`, and a plan with `auth.byo_connections` (403 `plan_feature_unavailable` otherwise, naming the plan in `required_plan`); forgetting one never does.