---
title: "Read a chef's public profile: recipes, cookbooks, recent cooks, and chef-graph counts"
method: GET
path: "/api/v1/users/{identifier}"
tags: ["Chefs"]
---

# Read a chef's public profile: recipes, cookbooks, recent cooks, and chef-graph counts

`GET /api/v1/users/{identifier}`

## Request

- Base URL: `https://spoonjoy.app`
- URL: `https://spoonjoy.app/api/v1/users/{identifier}`
- Auth: none required

## Path parameters

- `identifier` string, required

## Query parameters

- `after` string

## Headers

- `X-Request-Id` string

## Response `200`

Success

- PublicProfileEnvelope
  - `ok` unknown, required
  - `requestId` string, required
  - `data` PublicProfile, required
    - `profile` PublicProfileSummary, required
      - `id` string, required
      - `username` string, required
      - `photoUrl` string, uri, nullable, required
      - `joinedLabel` string, required: Join month in UTC, for example "Joined Jun 2026".
      - `joinedAt` string, date-time, required
      - `href` string, required
      - `canonicalUrl` string, uri, required
    - `isOwner` boolean, required: True when the request's credentials belong to this chef.
    - `recipes` PublicProfileRecipe[], required: Up to 24 recipes, most recently changed first.
      - `id` string, required
      - `title` string, required
      - `description` string, nullable, required
      - `servings` string, nullable, required
      - `coverImageUrl` string, uri, nullable, required
      - `coverProvenanceLabel` string, nullable, required
      - `href` string, required
      - `canonicalUrl` string, uri, required
    - `recipeCount` integer, required
    - `recipesNextCursor` string, nullable, required: Pass as after to read the next page of recipes. Null on the last page.
    - `cookbooks` PublicProfileCookbook[], required
      - `id` string, required
      - `title` string, required
      - `recipeCount` integer, required
      - `recipes` PublicProfileCookbookRecipe[], required: Up to four of the cookbook's most recently added recipes.
        - `id` string, required
        - `title` string, required
        - `coverImageUrl` string, uri, nullable, required
        - `coverProvenanceLabel` string, nullable, required
        - `href` string, required
        - `canonicalUrl` string, uri, required
      - `href` string, required
      - `canonicalUrl` string, uri, required
    - `recentSpoons` PublicProfileSpoon[], required: Up to 10 of the chef's most recent cooks.
      - `id` string, required
      - `cookedAt` string, date-time, required
      - `photoUrl` string, uri, nullable, required
      - `note` string, nullable, required
      - `nextTime` string, nullable, required
      - `chef` NativeChefRef, required
        - `id` string, required
        - `username` string, required
        - `photoUrl` string, nullable, required
      - `recipe` object, required
        - `id` string, required
        - `title` string, required
        - `chefId` string, required
      - `coverImageUrl` string, uri, nullable, required
      - `coverProvenanceLabel` string, nullable, required
    - `fellowChefsCount` integer, required
    - `kitchenVisitorsCount` integer, required

## Other responses

- `400`: Errors: invalid_cursor
- `401`: Errors: invalid_token
- `403`: Errors: insufficient_scope
- `404`: Errors: not_found
- `405`: Errors: method_not_allowed
- `429`: Errors: rate_limited
- `500`: Errors: internal_error
- `503`: Errors: temporarily_unavailable

---

[API](https://skmtc.dev/spoonjoy/apis/spoonjoy-api.md) · [All operations](https://skmtc.dev/spoonjoy/apis/spoonjoy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spoonjoy/apis/spoonjoy-api/revisions/b96eb5d4697d?raw)
