Users

Register a user

Create or update a user profile and store optional traits or handles (e.g. URLs, social profiles, or notes). This endpoint is idempotent — if the user already exists, the existing profile will be merged with the new data.

PUT /register

Purpose

Register users into the Fastino Personalization API so agents can begin ingesting context and retrieving personalized summaries.
You can call this endpoint when a user signs up, changes profile information, or when metadata such as timezone or communication preferences updates.

Endpoint

Headers


Request Body

Field

Type

Required

Description

user_id

string

✅ Yes

A unique identifier for the user.

traits

object

Optional

Metadata about the user (name, timezone, URLs, handles, notes, etc.).

purpose

string

Optional

Optional description of the user’s role or the purpose of this personalization context.

Example Request

{
  "user_id": "usr_42af7c",
  "traits": {
    "name": "Ash Lewis",
    "locale": "en-US",
    "timezone": "America/Los_Angeles",
    "personal_urls": ["https://ash.example.com", "https://fastino.ai"],
    "linkedin_url": "https://www.linkedin.com/in/ashlewis",
    "twitter_handle": "@ash_csx",
    "github_handle": "ash-lewis",
    "notes": "Founder/engineer; prefers concise comms"
  },
  "purpose": "Used by an AI calendar assistant to manage meetings and timezones"
}

Example cURL

curl -X PUT "https://api.fastino.ai/register" \
  -H "Authorization: x-api-key: sk_test_123" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "usr_42af7c",
    "traits": {
      "name": "Ash Lewis",
      "timezone": "America/Los_Angeles",
      "notes": "Founder/engineer; prefers concise comms"
    }
  }'

Example Response

{
  "user_id": "usr_42af7c",
  "created_at": "2025-10-11T16:05:00Z",
  "status": "active"
}

Behavior

  • If the user already exists, traits will be merged into the existing profile.

  • You can safely re-send this request to synchronize updated user information.

  • Fields omitted from a subsequent request will not delete previous values.

Response Fields

Field

Type

Description

user_id

string

The unique user ID created or updated.

created_at

string

ISO 8601 timestamp of registration or update.

status

string

Current user status (active, pending, or archived).

Error Responses

HTTP Code

Error Code

Description

400

INVALID_REQUEST

The request body is malformed or missing required fields.

401

UNAUTHORIZED

Invalid or missing API token.

500

SERVER_ERROR

Internal error — retry with exponential backoff.

Example:

{
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Missing required field: user_id"
  }
}

Best Practices

  • Use consistent, unique user_id values across all integrations and tools.

  • Include relevant metadata like timezone and locale to improve contextual predictions.

  • Update user traits periodically as the user’s context or behavior changes.

  • Store your API key securely and never expose it in client-side applications.

Related Endpoints

Endpoint

Description

POST /delete

Delete all personalization data for a user.

POST /ingest

Ingest new data or events for a registered user.

GET /summary

Retrieve the user’s personalized summary.

Summary:
Use PUT /register to initialize or update user profiles in Fastino. This endpoint forms the foundation for all personalization, enabling downstream ingestion, retrieval, and reasoning.

On this page