Create password-grant client

Overview

Create a Passport password-grant client used to issue tokens via the password flow. Emits audit OAUTH_CLIENT_PASSWORD_GRANT_CREATED.

Prerequisites

  • A bearer token in the Authorization header.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/sso/create/password-client

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • bearer token. Grouped under admin/super-admin in the route file.

Rate limit

  • No rate limit.

Request body

FieldTypeRequiredDescription
namestringRequiredClient name (passed to createPasswordGrantClient).
user_idintegerRequiredRequired by validation; not otherwise consumed by the controller.
{
  "name": "Example Name",
  "user_id": 1
}

How it works

  • Creates a public password-grant client, so client_secret is returned as null — the password grant is used without a client secret. Returns 200 with client_id and client_secret (as null) on success. Returns 422 on validation failure.

Response

200 OK · 200

{
  "data": {
    "client_id": "019eeeca-3391-71b2-9d4c-2f7c9a1e5abc",
    "client_secret": null
  }
}

422 Validation error · 422

{
  "message": "The name field is required.",
  "errors": {
    "name": [
      "The name field is required."
    ],
    "user_id": [
      "The user id field is required."
    ]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422Validation error
500Unexpected server error

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/sso/create/password-client" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name": "Example Name", "user_id": 1}'

Did this page help you?