Update own profile

Overview

Update the currently authenticated user's own profile — name, phone, title, email and optional password. Changing the password revokes the caller's other tokens and is audited (AUTH_PASSWORD_CHANGED).

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/users/profile/update

Authentication

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

  • Any authenticated user — collection bearer token.

  • Email must be unique across users (ignoring the caller).

Rate limit

  • No rate limit.

Request body

FieldTypeRequiredDescription
first_namestringRequired2–100 chars; no angle brackets.
last_namestringRequired≤100 chars; no angle brackets.
phone_numberstringRequired9–15 chars; no angle brackets.
titlestringOptional≤100 chars.
emailstringRequiredValid email; unique in users (ignoring the caller).
passwordstringOptional8–100 chars, mixed case + number + special char, no spaces/quotes; blank leaves the password unchanged.
{
  "first_name": "Jane",
  "last_name": "Doe",
  "phone_number": "+15551234567",
  "title": "Owner",
  "email": "[email protected]",
  "password": null
}

How it works

  • Synchronous (DB transaction). 200 on success.
  • 422 on validation failure.

Response

200 OK · 200

{
  "data": {
    "status": "success",
    "response": "Saved Successfully"
  }
}

422 Validation error · 422

{
  "message": "The email field must be a valid email address.",
  "errors": {
    "email": [
      "The email field must be a valid email address."
    ],
    "phone_number": [
      "The phone number field must be at least 9 characters."
    ]
  }
}

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/users/profile/update" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"first_name": "Jane", "last_name": "Doe", "phone_number": "+15551234567", "title": "Owner", "email": "[email protected]", "password": null}'

Did this page help you?