---
description: "Read companies and organizer profiles, manage event favorites, and add or edit authorized event, order and attendee notes."
group: "Resources"
order: 26
---

# Notes and organizer data

Use organizer directories and notes to connect event data to your workflow.

## Directories and profile {#directories-and-profile}

-   `GET /companies/my.json` returns accessible company wrappers under `myCompanies`.
-   `GET /users/profile.json` returns the authenticated organizer's ID, name, last name, email and photo identifier.
-   `GET /users/all_data.json` returns a membership-scoped organizer directory using private caching and a legacy projection.

These are authorized account data. Keep personal fields private, and don't use a cached directory as a substitute for the server's live permission checks.

## Read and add notes {#read-and-add-notes}

GET `/{event_id}/comments/index/{parent}/{parent_id}.json` returns `Comment` and author `User` wrappers. Parent values are `Event`, `Order` and `OrderLine`. Parent UUIDs must be accessible; original order versions can share notes.

PUT `/{event_id}/comments/add/{parent}/{parent_id}.json` with `{"Comment":{"comment":"Follow up with the attendee."}}`. Text must contain 2–500 characters after trimming. The server assigns the authenticated author and checks parent/event access. Success is JSON boolean `true`, rather than an `ok` object.

## Edit notes {#edit-notes}

PUT `/{event_id}/comments/edit/{comment_id}.json` with the same envelope. Only the note's author can edit it within 15 minutes of creation. The result is a JSON boolean and failures also use HTTP status codes. Refresh the note list after success.

## Bulk event notes {#bulk-event-notes}

`GET /comments/all_data/1.json` reads Event notes created before server-local Sunday midnight. `GET /comments/all_data.json` reads Event notes created on or after that boundary. Combine these history/recent partitions for the available snapshot. Both are scoped to companies the organizer belongs to; Order and OrderLine notes are excluded.

```
{"events":{"11111111-1111-4111-8111-111111111111":{"name":"Example event","currency":"EUR","start_date":"2027-06-20 09:00:00"}},"items":{"11111111-1111-4111-8111-111111111111":[{"id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa","ui":"bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb","c":"Prepare the stage","d":"1791446400"}]}}
```

Each `items` key is an event UUID. Compact fields are `id` (note UUID), `ui` (author UUID), `c` (text) and `d` (Unix seconds, potentially a string). Empty maps can serialize as `[]`. Each partition is capped at 75,000 notes, newest first; there is no cursor or deletion-ID feed.

Keep each partition's ETag and use `If-None-Match`; HTTP 304 has no body and means retain your cached partition. The server sends private cache headers and Last-Modified. Recent expiry is about one minute; history expiry is next Sunday at 01:00 server time, with earlier invalidation when notes change. Refresh both partitions when the weekly boundary changes, and replace your cached partition on 200 so removals do not linger.

## Event favorites {#event-favorites}

GET `/{event_id}/favorites/check.json` reads the current organizer's favorite state. POST `/{event_id}/favorites/switcher.json` with `{"follow":true}` or `false` sets it. Membership is checked, and the response includes `success` and `follow`.

## Other application workflows {#other-application-workflows}

See [stage state and live updates](/en-us/docs/stages.md) for the public state reads/SSE and authenticated state writes. [API coverage and workflow limits](/en-us/docs/api-coverage.md) explains company promo codes, batch creation, CSV imports, refunds, workshops, exhibitor tools and provider callbacks.
