Skip to main content
POST
/
api
/
late
/
profile
Create or refresh the caller's Late profile
curl --request POST \
  --url https://app.puffle.ai/api/late/profile \
  --header 'Authorization: Bearer <token>'
{
  "userProfile": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "late_profile_id": "<string>",
    "late_profile_name": "<string>",
    "timezone": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  },
  "lateProfile": {
    "_id": "<string>",
    "name": "<string>",
    "accounts": [
      "<unknown>"
    ]
  }
}

Overview

Creates a new profile on Late’s side (named after the user’s email handle) and attaches it to the caller’s user_profiles row. If a user_profiles row already exists, it is updated with the new Late profile ID; otherwise a fresh row is inserted. Despite the verb name, this endpoint does NOT modify any existing Late profile on Late’s side — it always creates a fresh profile.

AI agent notes

Rare in practice. Most flows create Late profiles implicitly via connectLateAccount (with createNew=true). Call this endpoint only when you need a standalone profile without an immediate OAuth connect — e.g., seeding state for a human who will complete OAuth later.Side effect — Late-side profile creation is a billable action on some plans. Avoid calling speculatively.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Response

Profile created and linked.

userProfile
object
required

One user_profiles row. Each row maps to a single Late profile container, which in our model holds exactly one social account.

lateProfile
object
required

The freshly created Late profile envelope. accounts is always [] at creation time — accounts appear after the OAuth connect completes.