MCP App Store
by KeenEthics

Overview

Plan with your friends without leaving the chat. Ask what's on this weekend, catch up on what your group said about Saturday, RSVP, vote in a poll, or set up a BBQ at the park - Woosh does it in your account, the way you would in the app. You stay in charge. You pick what the assistant may do when you connect, and you can disconnect it any time under Settings -> AI assistants. It never sees your friends' phone numbers, and it sees places by name only unless you allow exact location when you connect. Who can see where you are is still decided in Location privacy, never by the assistant.

Tools

accept_trip_invite

ChatGPT
Accept an invitation to a trip (one of list_trips' invites). The user is then on the trip: the others see them on it and they can add entries. To decline, use leave_trip. On a trip whose people are its event's guests this is refused (TRIPS_EVENT_LINKED): answer the event with rsvp_event instead.

add_chat_members

ChatGPT
Add people to a chat the user is in: their own friends to a group chat started with friends, or members of the group to a chat inside it. They see the chat from then on. An event's chat follows the event (invite_to_event). Anyone who cannot be added is skipped and counted, never named. Get user ids from list_friends or get_group.

add_event_location

ChatGPT
Add a named point to an event's venue map (a stage, an entrance, a bar), for the event's host. Everyone who can see the event sees it. The points already there are in get_event's locations.

add_event_photo_from_chat

ChatGPT
Put a picture the user sent in a chat ABOUT an event (a chat with friends started from that event) into the event's gallery. Only the user's own picture, never a view-once one, and the user must be on the event. event shows it to everyone who sees the gallery; friends to the user's friends among them.

add_expense

ChatGPT
Add an expense to a shared-expense ledger: what it was for, the amount, who paid, and who it is split across. Every person named must be someone the ledger can name — get their user ids from get_expense_ledger's balances. Split equally by default; for an exact split pass splitMode 'exact' and each person's share in exactShares, summing to the amount; to split a receipt by who had what, pass splitMode 'items' with its lines in items, each claimed by the participants who share it. Amounts are integers in the ledger's currency's minor unit (cents: 12.50 is 1250). The expense changes everyone's balance at once, and the ledger's other members see it in their notifications.

add_file

ChatGPT
Step 2 for a file library: file music or a document already sent to a request_upload address (target group_file or event_file) in the group's or the event's files, where its members or guests can open it. kind "audio" for music or a recording, "document" for anything else; pictures and videos belong in the gallery (add_photo). Refused when that group or event has files switched off. Pass exactly one of eventId or groupId.

add_gift_draw_child

ChatGPT
Put one of the user's children who has no Woosh account in a draw, before names are drawn: an existing name-only child (dependentId, from list_gift_draw_candidates with children: true), or a new one by first name. The user then acts for that child with as. Only the organiser, unless the draw's membersCanAdd is on. A child the user made this way can be put in other draws later. The organiser may instead hold a seat for SOMEBODY ELSE with heldFor and a name: 'parent' for another family's child, whose parent claims it, or 'self' for a person who claims it as themselves. The organiser sees nothing of a held seat; hand it over with hand_over_gift_draw_seat or the link from get_gift_draw_seat_link.

add_gift_draw_members

ChatGPT
Put people in a draw before names are drawn (up to 50 a call, 100 in a draw). The organiser can add anyone they could add in the app, themselves included when they are not in it. Anybody else in the draw, or a parent acting for a child in it, can add people only when the draw's membersCanAdd is on, and then anyone they could add. Each person added gets a notification. The organiser can also put in somebody they texted an invite to the draw's group or event who is not on Woosh yet (invites, from list_gift_draw_candidates' invited): they are told by text, and their seat becomes their account's when they sign up. The answer counts who was added and who was skipped, without saying why.

add_inbox_note

ChatGPT
Jot a text note into the user's own inbox in a group, at the top. It is private to the user until they share it. Returns the inbox.

add_lineup_act

ChatGPT
Add a line-up sub-event (an act, concert, talk, …) to an event you can edit. The act is a first-class event with its own RSVP and chat, filed under the umbrella. For a multi-day event (a festival), pass dayEventId to programme the act on a SPECIFIC day — it then appears on that day's page. Omit dayEventId to attach it to the umbrella as a whole. Get the umbrella's id and its day ids from get_event / list_events (the days array). Location is optional and inherits the umbrella's when omitted. Returns the created act.

add_menu_wish

ChatGPT
Add a dish the user would like to eat to a group's menu wishes, optionally for a day. Whoever plans the meals sees it (plan_meals can take it with wishId). Up to 10 open wishes per person.

add_photo

ChatGPT
Step 2 for a gallery: file a picture or video already sent to a request_upload address (target group_photo or event_photo) in the group's or the event's gallery, where everyone who can see that gallery sees it. In a group, pass albumId to put it in one of the group's own albums (from list_albums); without it, it joins the group's loose pictures. In an event, visibility says who sees it; left out, it is the user's friends only on a public event and everyone who can see the gallery on any other. A video needs no poster: one is made from its first frame, and its subtitle files are added afterwards with set_photo_subtitles. Refused when that group or event has pictures switched off, and for a video when the group has videos switched off. Pass exactly one of eventId or groupId. A picture can instead be passed itself as image (base64, up to 700 KB, kind "image"), with no request_upload call; a video always goes through request_upload.

add_shopping_items

ChatGPT
Add one or more items to a group's shopping list, or to the user's own shopping list (their To-do space). A name already on the list is not added twice. The shop section is guessed from the name when category is left out; the store is the one that name was bought at before, else guessed, when store is left out. Returns the whole list.

add_tagged_photo_to_profile

ChatGPT
Post a picture the user is tagged in as an update on the user's own profile, shown to the audience given. It can show the picture to people who could not see it before (preview_tagged_photo_on_profile says how many), so tell the user that number and ask first. Refused when the poster turned this off, or when the user already did it for this tag. Removing the tag or deleting the update takes it back.

add_to_planning

ChatGPT
Add a task to the user's own To-do space, creating the space first if they have none yet. Only a title is required. Call get_planning first and do not add one that is already there. Answers the task with the space's id; to edit it, file it under an area or tick it off, use update_task, complete_task and the other task tools with that id as groupId.

add_to_shared_list

ChatGPT
Add one or more items to a list somebody shared with the user out of their own To-do, such as a friend's list of films to watch. A name already on the list is not added twice. The list's owner sees who added them in their notifications. Returns the list.

add_trip_entry

ChatGPT
Add what happened on a day of a trip the user is on: a title and/or some text, pinned to a day within the trip (or a span of days) and, optionally, a place. The people on the trip see it, and so does whoever else the trip's event and the user's own sharing settings show it to; people following the trip are notified. An entry needs a title or some text. Pictures are added in the app.

add_trip_packing_item

ChatGPT
Add something to bring to the packing list of a trip the user is on, optionally naming who brings it. Everyone on the trip sees the list.

add_trip_plan_item

ChatGPT
Add something to do or somewhere to go to the plan of a trip the user is on. With a day it sits in that day's plan, optionally at a time; without one it is kept among the places to go. Everyone on the trip sees the plan.

add_wish

ChatGPT
Add a wish to a wishlist in a group: the user's own list, or that of a child account they manage there. Anybody else's list is refused. Returns the group's wishlists.

add_work_days

ChatGPT
Add work days at one of the user's work places: the given weekdays from startsOn, until endsOn when set. Groups the user shows their work days in see them in the group's agenda.

add_work_place

ChatGPT
Add a place the user works at (or a shift), optionally with its usual hours. Give both times or neither; an end before the start is a shift past midnight.

adopt_event_listing

ChatGPT
Turn a catalogue listing into a Woosh event that people can RSVP to; the answer carries the new event's id. With intent rsvp the user is also marked as going, which others can see, so ask them first; with share they are not. A listing that has ended is refused.

adopt_sub_event

ChatGPT
Turn an existing event into an act of a bigger event (a multi-day festival, say), optionally on one of its days. The user must be able to edit both. The bigger event then leaves the live rail in favour of its acts, and there is no way to undo this from here. Refused when the audiences differ, the event takes approval to join, or it already has acts of its own.

answer_add_request

ChatGPT
Accept or decline a request to add the user to a group, an event or a chat (an add_request notification in list_notifications, whose data carries the requestId). Accepting adds them now: a member of the group or the chat, or invited to the event. Declining tells nobody, the person who asked included. Neither can be undone from here.

answer_child_request

ChatGPT
Approve or decline one waiting request for a child the user manages. Approving does the thing as the child (they become friends, join the group, or are invited to the event), tells the child, and cannot be undone from here. Declining closes it and tells nobody. The decision is the parent's: show the user exactly who or what it is and ask, every time. When a request's person has no name here, send the user to the app to answer it: the app can show them who it is.

answer_event_attach_request

ChatGPT
approve or reject a guest's request to attach a plan, as its host: approving attaches it, tells the guest, and puts that guest down as going to the bigger event (or asks to join it, where it takes approval); rejecting tells nobody. withdraw takes back a request the user filed themselves.

answer_event_join_request

ChatGPT
Approve or deny a pending request to join an event the user hosts. Approving makes the requester a guest who is going, adds them to the event chat and tells them; on a full event it puts them on the waitlist instead (the result says waitlisted and their position). Denying just drops the request, and the requester is not told. Get the requester's user id from list_event_join_requests.

answer_event_relocation

ChatGPT
When Woosh noticed an event's guests gathering somewhere other than its place, it suggests moving the event there (get_event's relocationSuggestion). accept moves the event to that place for everyone; dismiss drops the suggestion. For whoever may edit the event.

answer_group_join_request

ChatGPT
Approve or deny a pending request to join a group the user administers. Approving makes the requester a member; denying drops the request. Get the requester's user id from list_group_join_requests.

answer_payment_proposal

ChatGPT
Act on a proposed correction to a payment (from get_expense_ledger, a payment's proposals). approve is for the person who recorded the payment: it applies the change, or deletes the payment when the proposal is a removal, changes what people owe at once and cannot be undone; pass the proposal's version so a proposal revised since it was read is refused. dismiss declines it (the recorder) or withdraws it (whoever proposed it). Show the user the proposal before approving.

answer_shared_trip_entry

ChatGPT
On a trip the user is on, accept an entry another trip's traveller offered it (it then shows on this trip's days), or say no. Saying no to an entry already shown takes it back off this trip; a no cannot be undone from here. Offers are the trip's stepOffers in get_trip.

archive_chat

ChatGPT
Move a chat out of the user's inbox into Archived, or back. Archiving unpins it. A newer message brings it back to the inbox by itself. See list_archived_chats.

ask_chat_for_photos

ChatGPT
Ask everyone in a chat, once and right now, to take a picture: a note is posted in the chat as the user and each person is notified. For someone who may post there. Not in a chat with one other person (ask them from their profile in the app), an event's chat (use ask_event_for_photos) or a public room. One open ask per person per chat, and a limit per day: a refusal for either is not worth retrying. It cannot be taken back. Only when the user asks.

ask_event_for_photos

ChatGPT
Ask everyone on an event, once and right now, to take a picture: each guest who has not declined is notified. For anyone invited to the event, one who declined included, and not on a public one. It cannot be taken back. Only when the user asks.

ask_friend_for_picture

ChatGPT
Ask one friend to take a picture and send it to the user now. It posts the ask in the user's chat with that friend and sends them a push; it cannot be taken back, and one ask per friend can be open at a time. Only when the user asks for it.

attach_event

ChatGPT
Attach a plan the user is in to a bigger event they can see, as its side event. A host of the plan attaches it at once, and is then also put down as going to the bigger event (or asks to join it, where it takes approval). Anyone else in the plan files a request its hosts are notified of (pending: true). Tell the user which of the two will happen.

block_brand

ChatGPT
Block a brand page for the user, so its posts and events stop reaching them and they stop following it. Only a brand: an ordinary group is left, not blocked, and a brand the user runs cannot be blocked.

block_user

ChatGPT
Block a person for the user: a friendship between them ends, pending friend requests either way are dropped, and Woosh filters that person out of what the user sees. The other person is not told. It also tells Woosh's moderators that a block happened. Only when the user asks, naming who.

cancel_event

ChatGPT
Call off an upcoming event the user hosts. It stops showing as coming up anywhere — feeds, maps, reminders, calendars — while its page, chat, pictures and guest list stay for the people already in it; restore_event undoes it. A multi-day event takes all its days with it (a single day cannot be cancelled on its own), a shout is refused (use cancel_shout), and an event that has already ended cannot be cancelled. notifyGuests decides whether every guest gets a push saying it is off — ask the user rather than assuming. Requires confirm: true, so only call it once the user has said to cancel.

cancel_friend_request

ChatGPT
Take back a friend request the user sent that has not been answered. It disappears from the other person's requests and they are not told. Sending it again is done from the app. Requires confirm: true.

cancel_shout

ChatGPT
End one of the user's own live shouts now, so it drops off friends' Live-now list and the user's status beacon comes down with it. A shout someone already joined keeps its chat and history; it just stops. It cannot be restarted — shout again instead.

check_in_event_guests

ChatGPT
Mark guests as arrived, for a host or a door checker. Each entry names one guest by their user id, one plus-one by its id, or a scanned pass code. The answer says per entry whether they were checked in, were in already, are not going, or are unknown.

check_in_group_balance

ChatGPT
Record the user's own check-in for this week on a group's balance, replacing the one they gave earlier this week: how heavy the week was (1 light to 5 heavy), how fair the division felt for them and for the others (1 to 5), and who kept the overview. The answers are the user's own feelings: ask them, never guess. Nobody else is shown them. Refused while the balance is paused.

claim_gift_draw_wish

ChatGPT
Mark one wish on somebody else's wishlist in a draw (from get_gift_draw's wishlists) as something the user is getting, so nobody buys it twice — or withdraw that. Nobody is told who; the person it is for is never told at all. A wish somebody else claimed answers an error.

claim_wish

ChatGPT
Claim a wish on someone else's wishlist in a group (the user will get it), or release the user's own claim. The person whose wish it is never sees claims, and nobody is notified. A wish someone else already claimed is refused, and so is the user's own wish.

clear_chat

ChatGPT
Empty a chat for the user only: everything sent up to now disappears from their view and cannot be brought back, while everyone else keeps it. New messages arrive as usual. Requires confirm: true, so only call it once the user has said to clear this chat.

clear_meal

ChatGPT
Take one planned lunch or dinner off a group's menu. The dish stays among the group's dishes.

clear_now_playing

ChatGPT
Take down the track friends currently see the user listening to. Sharing stays on, so the next track their phone reports shows again.

clear_status

ChatGPT
Clear the status the user set, so friends stop seeing it. What remains is whatever the app derives on its own (an event they are at, for instance). A live shout keeps its own status — end it with cancel_shout.

close_date_poll

ChatGPT
Close the date poll of a save the date the user hosts. With optionId the event takes that date and becomes the invitation itself: everyone holding the date is told. Without one the poll just closes and the event stays a save the date. A closed poll cannot be reopened (delete it and ask again). Requires confirm: true, so only call it once the user has confirmed the date, or that they want it closed without one.

comment_on_album

ChatGPT
Write a comment on one of a group's own albums, which every member of the group can read. For a picture in it, use comment_on_photo.

comment_on_file

ChatGPT
Write a comment under a file of an event or a group. Everyone who can see the file sees it, and whoever added the file sees it in their notifications. Show the user the text first. Pass exactly one of eventId or groupId.

comment_on_moment

ChatGPT
Write a comment under a friend's moment. Everyone the moment was shown to can read it, and the friend sees it in their notifications. Show the user the text first.

comment_on_photo

ChatGPT
Write a comment under a photo in an event's or a group's gallery. Everyone who can see the photo sees the comment, and it reaches the notifications of whoever posted the photo. Pass exactly one of eventId or groupId, and the photo's id from list_photos.

comment_on_profile_file

ChatGPT
Write a comment under a file on a friend's profile. Everyone who can see the file sees the comment, and its owner is notified.

comment_on_update

ChatGPT
Write a comment under a profile update the user can see (an update's id comes from get_activity_feed). Everyone who can see the update sees the comment, and it reaches its author's notifications. Pass mentions to @-mention friends of the user in it, as on send_message: each one named who can see the update gets a push. Refused when the author turned comments off.

complete_task

ChatGPT
Tick a task off as done by the user. Ticking a repeating task also writes its next occurrence (answered as next). A task somebody else already ticked keeps their tick. A task assigned to a child still counts for that child, with its points, when a parent ticks it. When several people are on the task and only some of them did it this time, pass doneBy: it then counts for them alone and its points are split over them, and a repeating task still comes round with everybody on it. On a task anyone can do (anyone), doneBy may name any member of the group and says who earns its points; without it the tick counts for the user. To undo a tick use reopen_task.

copy_gift_draw_wishes

ChatGPT
Add the user's (or a child's) wishes from another draw to their wishes in this one, after the ones already there and skipping repeats, up to 20. A copy: the two lists go their own ways afterwards.

copy_theme

ChatGPT
Make the user their own copy of a theme: one of theirs, or one a friend shared with them. The copy is theirs to change and is shared with nobody. Returns the new theme.

create_album

ChatGPT
Create an empty photo album in a group the user is in. add_photo with its albumId puts a picture in it. Refused when the group has pictures switched off.

create_chat

ChatGPT
Start a new group conversation with some of the user's friends, outside any Woosh group, and return its chat id. Every member must be one of the user's friends (49 at most). For a chat inside a group, use create_group_chat; for one person, start_dm.

create_chat_list

ChatGPT
Create a list to sort the user's chats into. Put chats in it with set_chat_lists.

create_circle

ChatGPT
Create an empty circle of the user's own (up to 20). It holds nobody and has no rules until the user puts friends in it in the app. Nobody is told.

create_date_poll

ChatGPT
Open a date poll on a save the date the user hosts: the candidate dates its guests mark as working for them. Only a save the date takes one (create_event with saveTheDate: true), and only one at a time. get_event then carries the poll with each option's id and how many marked it. Settle it with close_date_poll.

create_event

ChatGPT
Create a new event owned by the authenticated user. Requires a title and start/end times as ISO 8601 strings; endsAt must be after startsAt. For an event on a day with no clock time, pass dateOnly: true with startsAt as that calendar date and leave endsAt out. Optionally set a description, visibility (use "public" for a discoverable event), what it is about (activities), and a location (either a placeId, a place name, or a latitude/longitude pair). For a multi-day event (e.g. a festival), pass days: this event becomes an umbrella and each entry is auto-created as a per-day sub-event inheriting the umbrella's location and audience — the top-level startsAt/endsAt must span every day. It can be put in the user's groups (groupIds), presented by a group, attached to another event, given the settings of one the user hosts, or made an agenda appointment that may repeat. Returns the created event, including its id and chat.

create_event_crew_chat

ChatGPT
Start a private chat about an event with some of the user's friends (who is going together, say). Each must be a friend of the user; a friend the host keeps the event from is left out without saying so. Returns the new chat's id. The event's other guests are not in it.

create_expense_ledger

ChatGPT
Start a new shared-expense ledger, on its own or attached to a group, an event or a chat the user is in. On a chat everyone there can open it and add expenses; in a group its members, and at an event its guests, are put on it as its people, except where anybody could join the guest list (it then starts with just the user); later members are not. Nobody is notified until an expense is added. Tell the user who will see it when it is attached.

create_gift_draw

ChatGPT
Start a gift draw, on its own or attached to one private group, event or chat the user is in. The user is its organiser, and is in it unless takePart is false (say, a draw of children the user runs without drawing a name). Everyone added gets a notification. Names are drawn later with run_gift_draw, once at least 4 people are in. Tell the user who will be added first.

create_group

ChatGPT
Create a group with the user as its admin, optionally with people already in it. A group comes with a General chat. isPublic has no default: true makes the group findable by anyone in Discover and turns its share link on, false keeps it to the people in it — ask the user rather than assuming. Initial members follow the same rules as invite_to_group (skipped, not named, when their settings refuse). At most 100 initial members. purpose says what the group is for, which decides the tools it opens with (a household gets tasks, a shopping list and a menu); a private group always has one, and one created without it is a friends group.

create_group_brand

ChatGPT
Create the public brand page of a private team group: a new public group at an address of its own, run by the team's members, starting with the team's picture and theme. The team itself stays private and unchanged. Only for an admin of the team who also holds Woosh's admin right; a team can run one brand. Confirm the name and the address with the user: both are public.

create_group_chat

ChatGPT
Start a new topic chat inside a group the user belongs to, and return it (a brand's chats are started by its team only). Open to every member of the group by default; pass isPublic:false for a private chat holding only the user and the memberIds you name. An id that is not a member of the group is ignored.

create_group_record

ChatGPT
Create an empty record in a group the user is in. Fill it with set_group_record_tracks. Refused when the group has records switched off. A cover is added in the app.

create_place

ChatGPT
Add a public place the catalog lacks, at a position the user gave, so it can be an event's venue. Everyone on Woosh can then find it, so never use it for a home or another private address. Search first (search_places, resolve_place): a place with the same name within about 150 m is returned instead of a second one.

create_shopping_list

ChatGPT
Start a further list in a group, or in the user's own To-do space, beside the shopping list it already has: a shopping list (the default), or with shopping false a plain list to tick off, such as a packing list. A plain list may have a kind (movies, series, music, books), which gives it its icon. Returns the new list's id and the group's lists.

create_shout

ChatGPT
Shout an invitation to meet at a place — "up for drinks at Café Belga until 23:00". It goes out now to the audience you pick, as a push notification, and anyone in that audience can join; it also sets the user's status until it clears. Confirm the place, the time and who it goes to with the user before calling. placeId must be a Woosh place id from search_places, or from resolve_place for a venue — not an address, not a region. Pass at least one audience: friends, groupIds or friendIds, or eventId alone to shout only to the guests of an event the user is going to that has not ended. Pass startsAt to plan it for later today or tomorrow (up to 48 hours ahead). People who can see it may pass it on to their own friends unless allowReshout is false. When the user is at a live event they are going to (their status is tied to it, or their last shared position is there), the shout is linked to that event as one of its plans. Returns the shout, including the id cancel_shout takes.

create_starter_areas

ChatGPT
Set up the areas of a group that has none yet (kitchen, garden, admin…), each with optional categories. Refused once the group has any area: add more with the area tools. Everyone in the group sees them. Agree the list with the user first.

create_task

ChatGPT
Add a task to a private group the user belongs to, or to their own To-do space (add_to_planning also creates that space when the user has none yet). Only a title is required. A task whose name an open task on that list already has is refused (GROUP_TASK_DUPLICATE_NAME): ask the user, and pass allowDuplicate: true only when they want a second one. Everyone named in assigneeIds is notified that the task is theirs, so name people only when the user asked for it. To hand out part of a task, add a subtask: pass parentId. A subtask takes its task's visibility and area and cannot repeat; ticking its task's last subtask ticks the task off.

create_task_area

ChatGPT
Add an area tasks can be filed under, e.g. Home or Kids. A personal area is each member's own: nobody carries its categories for the group, and that cannot be changed afterwards.

create_task_category

ChatGPT
Add a category inside one of a group's task areas, e.g. Laundry under Home.

create_theme

ChatGPT
Create a custom color theme owned by the authenticated user — usable as their personal theme or assigned to a group/event they manage (set_group_theme / set_event_theme). A theme carries at least one ground (light or dark) — mode with the 11 core colors, plus optional functional overrides, font, and background gradient — and MAY carry the opposite ground too, via altColors (and optionally altOverrides / altBackgroundGradient). A theme with both can be selected for light AND dark at once, so it follows the device. Colors are hex (#rrggbb) or rgb()/rgba() strings. Returns the new theme's id.

create_trip

ChatGPT
Start a trip with the user as its owner: a name, a first day and, when known, a last day. Every trip is an event: without eventId an event is made for it (private for participants, the user's friends for friends), and that event is the trip's page — saying yes to it is joining the trip, saying no is leaving it. The trip has its event's privacy: whoever may see the event may see the trip, and it is changed on the event (update_event). Without eventId, visibility picks the new event's: friends (the default) shows it to the user's friends, participants keeps it to the people invited — ask the user rather than assuming. groupId names the group the trip belongs with; it does not widen who can see it. To bring a trip over from somewhere else, create it, then add what happened with add_trip_entry. eventId starts the trip FROM an event the user hosts (one trip per event; an event whose category is trip has one already): everyone going to the event is on it unless the event keeps its guest list from guests, so say so to the user before passing it. The event IS the trip: its name, days, picture and privacy are the event's whatever is passed here (visibility is ignored), and change only with update_event.

decline_picture_ask

ChatGPT
Decline a picture ask a friend sent the user. It leaves the user's list and the friend is not told: to them it looks the same as an ask that ran out. It cannot be undone.

delete_album

ChatGPT
Delete one of a group's own albums. Its pictures stay in the group, loose; the album's own reactions and comments are gone, and it cannot be undone. For the album's creator or a group admin.

delete_chat

ChatGPT
Delete one of a group's chats for everyone in it, with all its messages. It cannot be undone. Only a chat inside a group, never its General chat, and only by someone who may (get_chat's canDelete says). Requires confirm: true, so only call it once the user has said to delete this chat — name it back to them first.

delete_chat_list

ChatGPT
Delete one of the user's chat lists. The chats in it are untouched; they just stop being sorted under it. Requires confirm: true, so only call it once the user has said to delete it.

delete_circle

ChatGPT
Delete one of the circles the user made. The friends in it go back to no circle, and any location or share-less rule the circle had is gone with it, so those friends then see what the user's default rules show them, which can be more or less than before. It cannot be undone, and a built-in circle cannot be deleted. Tell the user that first.

delete_date_poll

ChatGPT
Remove the date poll from a save the date the user hosts, with everyone's answers. It cannot be undone. Requires confirm: true, so only call it once the user has said to remove it.

delete_event

ChatGPT
Delete an event the user hosts, for everyone, as the app's Delete event does. Its chat, guest list, pictures and files go with it, and so does its trip when it is one — the route, entries and their pictures, the plan and packing list — and it cannot be undone (cancel_event calls it off and keeps all of that). Guests are not sent a push. A festival's line-up acts are kept as events of their own; its days are kept too unless deleteSeriesDays is true. Requires confirm: true, so only call it once the user has said to delete this event — name it back to them first.

delete_event_location

ChatGPT
Remove a point from an event's venue map, for the event's host. It cannot be undone.

delete_file_comment

ChatGPT
Delete a comment under a file of an event or a group: the user's own, or any comment when the user is an admin there. It cannot be undone. Pass exactly one of eventId or groupId.

delete_gift_draw

ChatGPT
Delete a gift draw for everyone in it, with its wishes, questions and, if names were drawn, who gives to whom. It cannot be undone. For the organiser.

delete_group

ChatGPT
Delete a group the user administers (or is the last member of), for everyone in it, as the app's Delete group does. Its chats and their messages, albums, pictures and files are deleted with it, and it cannot be undone. Requires confirm: true, so only call it once the user has said to delete this group — name the group back to them first.

delete_group_record

ChatGPT
Delete a record of a group. Its files stay in the group, loose; the record and its cover are gone and it cannot be undone. For the record's creator or a group admin.

delete_inbox_note

ChatGPT
Delete one of the user's own notes from their inbox in a group, with its photo; it cannot be brought back. Typically after it was turned into a task or a shopping item. Only call it once the user has said to delete it.

delete_menu_wish

ChatGPT
Remove a wish from a group's menu wishes: the user's own, or anyone's (any member may). It cannot be undone, and the person who asked is not told.

delete_message

ChatGPT
Delete a message. scope "everyone" removes a message the user sent from the chat for every member (an admin may also remove the app's system (bot) user's messages); someone else's message is refused. scope "me" hides any message the user can read from their own view only, leaving it for everyone else. Neither can be undone. Confirm with the user before deleting for everyone. Use read_chat to find the id.

delete_moment

ChatGPT
Delete a moment that is about the user (their own arrival somewhere), with its reactions and comments. It leaves their friends' feeds at once and cannot be undone.

delete_moment_comment

ChatGPT
Delete a comment under a moment: the user's own, or any comment on a moment that is about the user. It cannot be undone.

delete_my_photo

ChatGPT
Delete one picture from the user's own profile. A picture that was posted as an update is taken off that update too. It cannot be undone. Requires confirm: true.

delete_photo_comment

ChatGPT
Delete a comment under a photo in an event's or a group's gallery: the user's own, or any comment when the user is an admin there. It cannot be undone. Pass exactly one of eventId or groupId.

delete_place_check_ins

ChatGPT
Delete every check-in the user made at one place. A title that rested on them goes with them, and it cannot be undone.

delete_place_tip

ChatGPT
Remove the user's own tip at a place. It cannot be undone.

delete_profile_file_comment

ChatGPT
Delete a comment under a profile file: one the user wrote, or any comment under a file on the user's own profile. It cannot be undone. Requires confirm: true.

delete_shopping_list

ChatGPT
Delete one of a group's further lists, shopping or plain, with every item on it and everything that repeats on it. It cannot be undone. The group's own list cannot be deleted. Returns the group's lists.

delete_task

ChatGPT
Delete a task or a subtask for everyone, as the app's Delete does. Its subtasks, photo and reactions go with it and it cannot be undone; a repeating task stops coming round. Only its author, a group admin, or a parent managing the author's child account may — a subtask also whoever may delete its task. Requires confirm: true, so only call it once the user has said to delete this task — name it back to them first. To close one occurrence and keep the task, use skip_task.

delete_task_area

ChatGPT
Remove an area with its categories and who carries them. Its tasks stay on the list, unfiled. It cannot be undone. Requires confirm: true, so only call it once the user has said to remove this area — name it back to them first.

delete_task_category

ChatGPT
Remove a category and who carries it. Its tasks keep their area and lose the category. It cannot be undone. Requires confirm: true, so only call it once the user has said to remove this category — name it back to them first.

delete_theme

ChatGPT
Delete a custom theme the user made. Where the user had it on as their own app or profile theme, that goes back to the default; groups and events they themed with it keep it, and so do friends who are using it. It cannot be brought back. Requires confirm: true, so only call it once the user has said to delete this theme.

delete_trip

ChatGPT
Delete a trip the user started that has no event, for everyone on it. Its people, routes, entries, pictures and plan go with it and it cannot be undone. A trip with an event is that event, so this is refused for it (TRIPS_DELETE_ON_EVENT): deleting the event (delete_event) deletes its trip. Requires confirm: true, so only call it once the user has said to delete this trip — name it back to them first.

delete_trip_entry

ChatGPT
Delete an entry from a trip, with its pictures: one the user wrote, or any entry on a trip the user started. It cannot be undone. Requires confirm: true, so only call it once the user has said to delete this entry.

delete_trip_packing_item

ChatGPT
Take an item off a trip's packing list, for everyone on the trip. It cannot be undone. Requires confirm: true, so only call it once the user has said to remove it.

delete_trip_plan_item

ChatGPT
Take an item off a trip's plan, for everyone on the trip. It cannot be undone. Requires confirm: true, so only call it once the user has said to remove it.

delete_update

ChatGPT
Delete one of the user's own updates for everyone who could see it, with its comments and reactions, or with archived: true remove one from their archive for good. Neither can be undone. Requires confirm: true, so only call it once the user has said to delete this update — read it back to them first.

delete_update_comment

ChatGPT
Delete a comment under an update: one the user wrote, or any comment under the user's own update. It cannot be undone. Requires confirm: true.

delete_wish

ChatGPT
Remove a wish from the user's own wishlist in a group, or from that of a child account they manage there. Anybody else's wish is refused (GROUP_WISHLIST_NOT_YOURS). A claim on it goes with it, and nobody is told. A wish already gone, or one the user cannot see, answers with the lists as well. Requires confirm: true, so name the wish back to the user first. Returns the group's wishlists.

delete_workout

ChatGPT
Delete one of the user's own workouts from their history, with its route. A post that carries it is taken down with it, for everyone who could see it. It cannot be undone. Requires confirm: true, so only call it once the user has said to delete this workout — name its day and sport back to them first.

detach_event

ChatGPT
Detach a side event from the event it is attached to. For whoever may edit the plan. Anyone it put down as going to the bigger event stays going.

discard_shout

ChatGPT
Take one of the user's own shouts back, live or over, as if it had not been sent: it stops showing anywhere and its pictures are deleted. Within about 10 seconds of posting nobody has been notified yet, so nothing is sent at all; after that the notification is removed from Android phones and replaced elsewhere by one saying the plans changed. It cannot be undone. Refused once somebody joined: that shout is an event with other people in it, which delete_event removes. To only end a live shout and keep it in the history, use cancel_shout.

disconnect_google_account

ChatGPT
Disconnect one of the user's Google accounts. Woosh revokes its access and stops syncing every calendar and task list in it; what is already there stays. disconnect_google_calendar disconnects them all.

disconnect_google_calendar

ChatGPT
Disconnect the user's Google Calendar account from Woosh. Woosh forgets every connected Google account and stops syncing their calendars and task lists. Linking it again is done in the app.

disconnect_spotify

ChatGPT
Disconnect the user's Spotify account from Woosh. Woosh forgets the link and takes down the track it was showing. Linking it again is done in the app.

disconnect_strava

ChatGPT
Disconnect the user's Strava account from Woosh. Woosh forgets the link and revokes it at Strava. Linking it again is done in the app.

discover_brands

ChatGPT
Browse the public brands on Woosh — cafés, festivals, clubs, companies — most-followed first: each one's name, picture, follower count and the share code of its public page (woosh.social/g/<shareCode>). The same list as the public /discover/brands page. A brand is followed rather than joined; join_group with its id follows it.

discover_events

ChatGPT
Browse discoverable (public + friends-visible) events as a single ranked list — the Explore feed. Filter by an adjustable radius around a location, a time window, and an event category; rank by trending (most attendees), soonest, or most recent. The window reaches backwards as well as forwards, so a finished event is findable here too. This is discovery, not the user's diary: it sees public and friends-visible events only, so an invite-only event they attended is not here at any window. Multi-day festivals appear once. Each result carries a saved flag; use save_event to bookmark one. With includeExternal: true the list also carries catalogue listings read from venues' own sites: their ids start with ext: and only get_event_listing, save_event_listing and adopt_event_listing take one.

discover_places

ChatGPT
Public venues around a point, best first: how many people went there lately (only when enough did), which of the user's friends show it on their profile, and how many friends left a tip. The point is a latitude and longitude, from a place the user named (search_places returns positions). It does not know where the user is.

dismiss_photo_prompt

ChatGPT
Dismiss the app's "add your pictures" question for one event, so it stops asking on opening.

edit_message

ChatGPT
Replace the text of a message you sent, in a chat you belong to. An admin (the 'admin' user right) may also edit messages the app's system (bot) user sent — no flag is needed, the server checks the author and then the right. The message is marked edited. A poll can't be edited, nor can a message in an end-to-end encrypted chat through this tool; a deleted message can't either, and is refused with the same "only your own messages" error as someone else's. Mentions are positional, so an edit REPLACES them: pass the full set for the new text, and omitting mentions leaves the edited message with none. Use read_chat to find the message's id and current text.

edit_update

ChatGPT
Change the text, headline or link of one of the user's own updates. Only the fields passed change; its pictures, audience and place stay as they are. It is marked edited, and nobody is notified. Changing the text drops the @-mentions that were in it. Show the user the new wording first.

end_shopping_trip

ChatGPT
End the user's shopping trip in a group. Returns the shopping list.

follow_trip

ChatGPT
Follow a trip the user can see, to get a notification whenever it gets an entry they may read, or stop following it. Only the user's own notifications change.

forget_visited_place

ChatGPT
Forget one place in the user's own place history: its visits are deleted and cannot be brought back. Woosh records it again if the user goes there again.

friend_suggestions

ChatGPT
People the user may know — friends of their friends, each with the friends they share — as the app suggests them. Up to 10. Suggesting is all it does: no request is sent.

get_account_deletion_status

ChatGPT
The groups and events the user would first have to hand over or delete before their account could be removed. Empty lists mean nothing stands in the way. Deleting the account itself is done in the app.

get_account_settings

ChatGPT
The user's task reminder times (minutes past midnight on their own clock, for a reminder on the day and one before it) under tasks, and the currency a ledger they start begins in under expenses, the blocks they keep on Home under homeWidgets (null when they never chose), and the Home blocks shown by default — gift draws, lists, To-do — that they turned off under homeHiddenBlocks (null or [] when none), the single gift draws and lists hidden from Home under homeHiddenItems (giftDraw:<id> / list:<group id>; null or [] when none), whether they turned the activity feed off on Home under homeFeedHidden, whether they turned the groups bar off on Home under homeGroupsHidden, and the cards Home draws in order under homeCards (null when they never arranged cards: then homeWidgets decides, with expenses, polls, agenda and workouts on and the other added cards off). effective… is what applies when they never chose.

get_achievement_leaderboard

ChatGPT
How many achievement tiers the user and each friend who has not hidden themselves have earned (user ids and counts; match the ids against list_friends), and whether the user is hidden from their friends' boards.

get_achievements

ChatGPT
The user's achievements: for each, where they stand, the thresholds of its tiers and the tiers earned. Counts only. The ones marked private are theirs alone and never count on the leaderboard.

get_activity_feed

ChatGPT
Get the authenticated user's unified home activity feed — recent friend, group and event activity, newest first. Because it aggregates across domains it requires read access to profile, events and groups. Page back by passing the result's nextCursor as before; a page can come back short or even empty while nextCursor is still set, so keep following it until it is null. Narrow with scope, types, actor: "me" (only what the user did) or subjectUserId (one friend's own activity, as on their profile). groupId or eventId reads one group's or one event's own activity instead, as on its page; updateId or momentId reads one update or one moment with its comments and reactions. Pass at most one of those four: a combination, or an id the user cannot see, answers an empty page. A photo_added item carrying syncId and a count above 1 is a shared album added to a group: count is every picture it brought, media the newest of them.

get_album

ChatGPT
Open one of a group's own albums (kind manual in list_albums) and list the photos in it the user can see, up to 200 at a time in the album's order. total is how many the album holds; when nextCursor is set, pass it back as cursor for the next ones. Where a photo was taken is never included, and a video is its poster image only.

get_arrival_replies

ChatGPT
What the user already said about arriving at an event they are going to (on my way, running late and by how much, arrived), whether Woosh may say it for them, and until when a reply can still be sent. Null when the event offers none right now.

get_chat

ChatGPT
Fetch one chat's details — its title, members, and the group or event it belongs to — without reading its messages (read_chat does that). Fails for a chat the user isn't part of, or has locked.

get_chat_photo_prompt

ChatGPT
The picture clock on a chat, if it has one: how often it asks the people in it for a picture, in which hours, and until when.

get_countries_leaderboard

ChatGPT
The user and their friends ranked by how many countries each has been in, as a count. A friend who is hidden from the user entirely is left out.

get_day_recap

ChatGPT
One of the user's day recaps in full: its numbers and the places the day named (awayPlaces). The route they took is left out unless the connection was granted exact coordinates.

get_default_list

ChatGPT
The list the user uses most, as the id of its group or of their own To-do space, and whether it is one somebody shared with them. Null when they have no list.

get_door_pass

ChatGPT
The user's own pass for an event that checks guests in at the door: payload is what the door scans, plus whether they were already let in. The pass is made on the first call. Whoever holds the payload can get in as the user, so give it to the user only and put it nowhere else. Needs the user to be going and to have a full name set.

get_email_invite_availability

ChatGPT
Whether Woosh can mail invites for an event or a group right now, before asking the user for addresses (invite_to_event_by_email, invite_to_group_by_email). For whoever may invite there.

get_event

ChatGPT
Fetch one event the authenticated user can see, in full: its details, participants, and — for a multi-day umbrella — its days array, each with the day's id, title and dates. Use those day ids as dayEventId when calling add_lineup_act to programme an act on a specific festival day. On a single day's page the lineup array holds the acts already programmed on it. Where the client can show it, the result is also drawn as an event card with RSVP buttons.

get_event_door

ChatGPT
For a host or a door checker: the guests who are going, by the full name they gave for the door, with their plus-ones and who is already in. Names here are what the door needs, not what each guest shows elsewhere: keep them to the user.

get_event_hidden_from

ChatGPT
List the people an event the user hosts is being kept from until it starts (a surprise party's guest of honour), and whether the list is in force right now.

get_event_listing

ChatGPT
Open one catalogue listing from discover_events (an ext: id): what it is, when and where, and the site it was read from. It is not a Woosh event yet: nobody can RSVP to it until someone adopts it (adopt_event_listing).

get_event_photo_prompt

ChatGPT
The picture clock on an event's gallery, if it has one: how often it asks its guests for a picture, in which hours, and until when.

get_event_tickets

ChatGPT
Whether an event sells tickets and at what price, whether the user holds one, and, for its host, how sales stand. Buying a ticket and setting a price are done in the app.

get_expense_ledger

ChatGPT
Open one shared-expense ledger: its expenses (who paid, how much, what for, and each person's share), recorded payments between members, every member's balance, and the suggested transfers that would settle it up. Amounts are integers in the ledger's currency's minor unit (cents). How someone wants to be paid back and receipt pictures are not included — those stay in the app.

get_explorer_leaderboard

ChatGPT
Per country, how much of the map the user and their friends have uncovered, as a count each. A friend who is hidden from the user entirely is left out. It says which countries people have been in, not where.

get_feed_last_seen

ChatGPT
Up to when the user has seen their activity feed (lastSeenAt), and the newest moment it could show something (latestAt). Anything in get_activity_feed after lastSeenAt is new to them.

get_feed_summary

ChatGPT
The newest item in the user's activity feed, how many items are new since they last looked, and when that was. Cheaper than get_activity_feed when only "anything new?" is asked.

get_feedback_chats

ChatGPT
The ids of Woosh's own chats for reporting a bug and for asking for a feature, where the user can reach them (null otherwise). Read one with read_chat; posting needs the user to have joined its group.

get_friend_profile

ChatGPT
What a friend's profile says about them, as far as their own settings show it to the user: their bio, interests and since when they are on Woosh. A field they keep from the user reads the same as an empty one.

get_gift_draw

ChatGPT
One gift draw: its members, its budget and exchange day, the user's own wishes and how they are shared (myWishlist; myWishItems adds the shop product a line was picked as in the app), everybody else's wishlist the user may read with which wishes are already claimed (wishlists), and, once names are drawn, assignment: who the user gives to, with that person's wishes. actingFor carries the same for each child the user manages, so if such a child drew the user, that shows there; otherwise who gives to the user is not included. An assignment is a secret: tell it to the user only, and never put it anywhere other people can read.

get_gift_draw_wish_sources

ChatGPT
The user's lists they could link as their wishlist in this draw (lists, from their own space; wishlists, their wishlist per group) and their wishlists in other draws they could copy from (draws), each with how many items it holds.

get_google_calendar_status

ChatGPT
Whether the user linked Google Calendar, and whether the link covers a group's two-way calendar.

get_group

ChatGPT
Fetch one group the authenticated user can see: its name, description, members and the user's own role and settings in it. Use list_group_chats and list_group_events for what happens inside it.

get_group_agenda

ChatGPT
Read a private group's agenda over a window of up to 62 days: its appointments (events linked to the group, with who is going and who each is about), the outside calendars' appointments, and the members' work days. from and to are instants in UTC (ISO 8601); times in the result are UTC too. The group's tasks are read with list_tasks.

get_group_balance

ChatGPT
How the work of a private group (a household) is divided among the people in it: each person's share of the tasks done, split into visible and invisible work, by area, the trend over the past weeks, the split they agreed on, and the user's own weekly check-in. People are user ids (names come from get_group). status is needs-two when fewer than two people take part, and paused when anyone paused it: then there are no numbers for anybody. Another person's check-in answers are not returned, though they do shape which way a week leans.

get_group_menu

ChatGPT
Read a private group's week menu from a day: the planned lunches and dinners (each a dish and who cooks it), the group's dishes with their ingredients and favourite star, and the diet notes. Days are calendar dates.

get_group_overview

ChatGPT
What a private group (a household) has going on: which of its tools are in use, how many tasks are due today and this week, what is waiting in Out of my head, and the next event with its place name. A quick first read before the task, shopping or agenda tools.

get_group_photo_prompt

ChatGPT
Whether a group has an album on a picture clock, which album, and its schedule.

get_group_record

ChatGPT
One record of a group and its files in running order (up to 500): each file's id, name, type, size, who added it, and a ref to open it.

get_hashtag

ChatGPT
The updates, events and shouts carrying one hashtag that the user can see, newest first, 20 at a time: each one's kind, id, title, text, when, and its author's name. Pass the nextCursor of one page as cursor for the next.

get_kids_badges

ChatGPT
The badge boards of the children in a private group: per child (a user id), tasks done, points, streak, this week's count, and each badge with its threshold, how far they are and when it was earned. A child's own connection gets only their own board. Reading it records any badge a child has just reached as earned, as opening the board in the app does.

get_message_info

ChatGPT
For a message the user sent: who has read it, and when, and who has not yet. Empty where read receipts do not apply — the user turned theirs off, or the chat is a public group's or a public event's — and people who turned theirs off are left out.

get_month_recap

ChatGPT
One month of the user's own recaps summed: what they did that month, in numbers and places. The current month answers so far. A month with no recaps is not found.

get_month_recap_friends

ChatGPT
The month's biggest events among the user's friends that the user was not at, as event ids for get_event. Only events the user may see, from friends who show them their plans.

get_my_day

ChatGPT
Where the user was on one day, read off their own location trail: each place they stayed for 20 minutes or more, in order, with when they arrived and left and the street address (address). Use it for "where was I this morning", "what was the address I went to", "where did I park". A stop at one of their saved places says which (savedPlace: home, work, …), with no address. Some stops come back with no address (none was found, or it is private ground); say you don't have one. place names a public place the phone recorded them at. stillThere marks where they are now. Today unless date is given; the trail reaches back 30 days. recording: false means the user keeps no history ("Remember where I've been" is off), so there is nothing to tell. Nobody else sees this; keep it to the user.

get_now_playing

ChatGPT
Whether the user shares what they are listening to with friends, and the track showing right now if there is one.

get_people_here

ChatGPT
Who else is checked in at a public place right now, friends or not — served only while the user is checked in there and there right now themselves (viewerHere; otherwise nobody). Each person comes with the name (first name or nickname) and, if they chose to, the picture they show people there, and whether they are a friend. Never a position, a distance or when they arrived.

get_photo_subtitles

ChatGPT
Read one subtitle track of a video in an event's or a group's gallery: its language, optional label, and its cues (start and end in milliseconds from the start of the video, and the text shown). A video's tracks are listed on it by list_photos and get_album, as subtitles. Pass exactly one of eventId or groupId.

get_place

ChatGPT
One Woosh place: its name, kind, description, address and position. Personal places (people's homes and workplaces) are not returned.

get_place_brand

ChatGPT
The public group whose venue a place is (a bar's or a club's own page), or null when nobody claimed it.

get_place_check_ins

ChatGPT
A place's check-in board as the user may see it: how many check-ins it has, the user's own, who holds the title there, and the ranking of the people the user may see. Checking in is done in the app, at the place. Reading it settles the title, as opening the board in the app does, which can tell a former holder they lost it.

get_planning

ChatGPT
Read the user's To-do, as the app's To-do screen shows it: their open tasks across their own To-do space and every private group they are in (their own private tasks there and the ones they are doing), and the shopping lists with how much is left on each. Open tasks only: for the ones already done, read list_tasks, which also returns those finished in the last two weeks. today is the user's own day; a task's dueOn is a calendar date, not an instant, and dueAt (on a task with a time) is the instant, in UTC. spaceId is the user's own To-do space — pass it as groupId to list_tasks, create_task, update_task, complete_task, get_shopping_list and the other task and list tools. It is null until the user adds something to it (add_to_planning creates it). A list with sharedBy set is somebody else's, read with get_shared_list: a row of lists by its groupId, a row of sharedLists (one of their other lists) by its groupId and id as listId.

get_planning_shares

ChatGPT
Who the user shares their own To-do with: for its own list and each of their other lists (furtherList), whether it is shared with named friends (userIds) or with a group (groupId). Nothing listed means it is private.

get_poll

ChatGPT
Read one poll in a chat the user can read — its question, each option with its id and vote count, and which options the user picked (mine) — without paging the whole chat. The poll's message id comes from read_chat. Where the client can show it, the result is also drawn as a poll card the user can vote on.

get_shared_list

ChatGPT
Read a list somebody shared with the user out of their own To-do: what is left to get and what was just bought. The user may tick items on it (tick_shared_list_item) and add to it (add_to_shared_list); an item with mine true is one the user added.

get_shopping_list

ChatGPT
Read the shopping list of a group the user belongs to, or of their own To-do space: what is left to get, what was just bought, and the recently bought names. Each item carries the kind of store it is bought at (store), so 'what do I need at the bakery' is a filter on that. Without listId it is the group's own list; a group may keep more, plain lists included (list_shopping_lists). list.shopping false marks a plain list: its items carry an aisle and a store too, which mean nothing there.

get_spotify_status

ChatGPT
Whether the user linked Spotify for showing what they are listening to, and whether the link has a problem. For a beta tester who cannot link yet, access says whether they may ask for a place (open), have asked (pending, with the address they gave) or every place is taken (full).

get_strava_status

ChatGPT
Whether the user linked Strava, whether finished activities are posted to their friends, and whether the link needs renewing.

get_task_history

ChatGPT
For a task (most useful on a repeating one): when it was last actually done — ticked, not skipped and not expired — who did it, and per person how many of its occurrences they did, over every occurrence on record (since is the first). Who did an occurrence is whoever its tick named, else its assignees, else whoever ticked it. People the user cannot see in the group are left out. board is null for a child account.

get_trip

ChatGPT
Open one trip the user can see: its name and days, the people on it and the entries — what happened on a day, with its title, text and the name of the place — as far as the user may see each, and the event it belongs to (event, with rosterFromEvent true where the event's answers decide who travels: change who is on it with rsvp_event, not the trip tools). Pictures and positions are not included; on a connection the user granted exact coordinates, the places of the user's own entries carry theirs.

get_trip_plan

ChatGPT
Read the plan of a trip the user is on: the things to do by day, the places to go that have no day yet, and the packing list with who brings what.

get_trip_route

ChatGPT
The figures of the routes recorded on a trip that the user may see: per traveller the distance covered in metres (distanceM), and for the trip the countries and cities passed through. The line on the map and its timing are not included, and a traveller who does not share their location with the user adds nothing to the figures. On a connection the user granted exact coordinates, the user's own route comes with its points and times; a co-traveller's never does.

get_unread_counts

ChatGPT
How much is waiting for the user: unread chats and messages, unread group and event activity, and unread notifications — the numbers behind the app's badges.

get_update

ChatGPT
Open one of the user's own profile updates in full: its text, headline, link, who it is shown to, whether comments are on, whether it is pinned and when it disappears. Someone else's update is read through get_activity_feed (with updateId).

get_update_reach

ChatGPT
The numbers for one of the user's own updates: how many people viewed it, views per picture, reactions by emoji and the comment count. No names.

get_work_schedule

ChatGPT
Read the user's own work places (each with optional default hours) and work days (weekdays at a place from startsOn, until endsOn when set; ISO weekdays 1 = Monday … 7 = Sunday), and the groups they show them in (sharedGroupIds). Days are calendar dates and hours are the user's own clock.

get_workout

ChatGPT
Open one workout: its sport, times, distance, climbing, splits and heart-rate and cadence readings where it has them, and a link to the same run on Strava when there is one. One of the user's own in full, or one a friend posted, as far as that post lets the user see it. The route itself is not included; the user's own route is, on a connection they granted exact coordinates.

get_workout_settings

ChatGPT
The user's workout privacy zone: the radius, in metres, cut from the start and end of a route around their saved places before anyone else sees it (0 is off), the radii that can be chosen, how many places a zone is drawn around, and zones: each of their categorised places (id and category) with on saying whether a route is cut around it. A place the user never turned on or off is a zone only when it is their home.

get_workout_totals

ChatGPT
The user's totals per sport for this week (from Monday) and this month: how many workouts, the distance in metres, the moving time in seconds and the climbing in metres. Pass the user's UTC offset so the week and the month start on their own clock.

hand_over_gift_draw_seat

ChatGPT
For the organiser: give a seat they hold to a friend. A child's seat makes the friend that child's parent in the draw (they see whom the child gives to, write its wishes); a person's seat becomes the friend's own. The user then sees nothing of it. It cannot be undone. For somebody who is not a friend, use get_gift_draw_seat_link.

how_far_from

ChatGPT
Roughly how far one friend is from the user, from one of the user's own saved places (home, work, …) or from an event they are both in — e.g. "how far is my partner from home?". Answers in rounded words ("under 500 m", "3 to 4 km", "10 to 15 km"), with how long ago the friend's position was last updated and, when they have stayed put a while, that they are stationary. Never a coordinate or an address. Only for a friend whose live location the user can already see on their Woosh map: when that friend has paused or turned off sharing with the user, it says so and gives no estimate. The friend is not notified. It does not plan routes or estimate travel time.

import_workout

ChatGPT
Save a workout the user recorded elsewhere into their Woosh history, from its route — e.g. a GPX or FIT file they hand over. Woosh measures the distance, moving time, climbing and splits from the route itself, so no totals are passed. It is saved to the user's own history only: nobody else sees it unless they post it from the app. Saving the same clientId again answers with the workout already saved, so a retry never duplicates one. One call carries about 15,000 points (a request is capped at 1 MB); thin a longer route first. A connection may make 20 changes a minute and 200 an hour, so pace a large import. Only import a route the user gave for this purpose.

invite_to_event

ChatGPT
Invite Woosh users to an event the user may invite to (its host, or any guest when the event lets guests invite), by user id. Each new invitee is added as invited and gets a push. Someone whose own settings refuse adds from the user is skipped and counted, never named; a child account the user does not manage is asked of its managers (counted as pendingApproval). On an event tied to a group, everyone invited must already be in that group, or the call is refused — unless addToGroup is true, which adds the others to the group first (the user must be allowed to add people to it). At most 100 per call. Get user ids from list_friends or search_people.

invite_to_event_by_email

ChatGPT
Email an invite to an event the user may invite to, from Woosh in the user's name, to people who are not on Woosh. Every address is answered alike — the count includes addresses that belong to an account, which are mailed nothing — so the result never says which addresses have accounts. "unavailable" means the event cannot have invites mailed right now. At most 25 per call, and a weekly limit per user applies. Only call it with addresses the user gave for this purpose.

invite_to_event_by_phone

ChatGPT
Invite one person to an event the user may invite to, by phone number, as the app's add-by-number does. A number that belongs to a Woosh user who can be added makes them an invited guest ("added"). On an event tied to a group, a user who is not in that group answers "not_in_group" — add them to the group first. Otherwise the answer is "not_on_woosh", which never says whether the number has an account; with textIfNotOnWoosh: true such a number is sent a text invite in the user's name instead ("texted"), which counts against the user's plan (refused when the plan has no texts left). Only call it with a number the user gave for this purpose.

invite_to_group

ChatGPT
Add Woosh users to a group the user may invite to (an admin, or any member when the group lets members invite), by user id. Each becomes a member and joins its General chat. Someone whose own settings refuse adds from the user is skipped and counted, never named; a child account the user does not manage is asked of its managers (counted as pendingApproval). At most 100 per call. Get user ids from list_friends or search_people.

invite_to_group_by_email

ChatGPT
Send an invitation to a group to up to 25 email addresses, from Woosh in the user's name, with the user's own invite link. Each address gets at most one mail a week, and the user can send a limited number a day. status: unavailable means email invites are off. The mail cannot be recalled: show the user the addresses and ask first.

invite_to_group_by_phone

ChatGPT
Add one person to a group the user may invite to, by phone number, as the app's add-by-number does. A number belonging to a Woosh user who can be added makes them a member ("added"); anything else answers "not_on_woosh", which never says whether the number has an account; with textIfNotOnWoosh: true such a number is sent a text invite to the group in the user's name instead ("texted"), which counts against the user's plan (refused when the plan has no texts left). Only call it with a number the user gave for this purpose.

invite_to_shout

ChatGPT
Invite more of the user's friends to one of their own live shouts. Those it did not reach yet are notified and can see and join it, whoever else it was shouted to. Nothing else about the shout changes. The answer counts invited, alreadyIn and skipped: an id that is not a friend of the user, or a friend who cannot be added, is skipped without saying which.

invite_to_trip

ChatGPT
Invite the user's friends to a trip the user is on, by user id. Each is told, and is on the trip once they accept: they then see every entry and can add their own. Everyone named must be one of the user's friends, or the call is refused; a friend who cannot be added is skipped and counted, never named. Get ids from list_friends. On a trip whose people are its event's guests this is refused (TRIPS_EVENT_LINKED): invite them to the event instead (invite_to_event).

join_chat

ChatGPT
Join an open chat of a group, so it shows in the user's inbox and notifies them. In a public group the user is not in yet this joins the group too, or files a request where the group asks for approval. A private chat, a chat started with friends and an event's chat cannot be joined this way: someone adds the user, or they join the event.

join_event_trip

ChatGPT
Join the trip started from an event the user is going to (get_event's linkedTrip, when its canJoin is true). Going to the event is the invitation, so the user is on the trip at once: the others see them on it and they can add entries.

join_friend_at_place

ChatGPT
Join a friend at the place they are at right now, when list_friends shows joinAtPlace: true for them. The first join turns their place into their own shout there, with the user as its first guest; a later one joins that same shout. The friend is notified who joined. Only when the user asks to join them.

join_group

ChatGPT
Join a public group. A group that asks for approval files a request instead (the result says requested: true) and an admin answers it. A private or invite-only group cannot be joined this way — someone in it has to invite the user.

keep_update

ChatGPT
Take one of the user's archived 24-hour updates out of the archive and make it a permanent update again, with its original date, reactions and comments. Its audience sees it on the user's profile and in their feeds again; nobody is notified. Ask the user first.

leave_chat

ChatGPT
Leave a group chat started with friends or an event's crew chat (getting back needs someone to add the user), or stop following a shout's chat. It leaves their inbox. A chat inside a group and an event's own chat follow the group or the event, and a direct message cannot be left. Requires confirm: true, so only call it once the user has said to leave.

leave_event_waitlist

ChatGPT
Take the user off an event's waitlist, or pass on a place they were offered. Their spot in the queue is given up. Requires confirm: true, so only call it once the user has said so.

leave_group

ChatGPT
Leave a group. The user stops being a member: they leave its General chat and lose what the group shows only to its members — its chats list, albums, files and members. Getting back needs a new invite unless the group is public. The last member cannot leave (delete_group ends it instead), and the last admin must make someone else admin first. Only call it once the user has said to leave.

leave_trip

ChatGPT
Decline an invitation to a trip, or leave a trip the user is on. Leaving takes the user's own route and entries off the trip, and getting back needs a new invitation. The person who started a trip cannot leave it (delete_trip ends it). On a trip whose people are its event's guests this is refused (TRIPS_EVENT_LINKED): saying no to the event is leaving it. Requires confirm: true, so only call it once the user has said to leave or decline.

list_albums

ChatGPT
List a group's photo albums, or the albums of an event's days and acts and of the plans and shouts fired from inside it (isSideEvent), with each one's title and cover. Only albums the user could open on their own are listed. Pass exactly one of eventId or groupId. Open a group album of kind manual with get_album; any album of kind event, and an event's day or act, is that event's own gallery, so pass its eventId to list_photos.

list_appeals

ChatGPT
The moderation decisions taken about the user's own account or content, newest first, each with the appeal already sent against it, if any, and how it ended.

list_archived_chats

ChatGPT
List the chats the user archived out of their inbox (list_chats leaves them out), in the same shape as list_chats. A newer message brings an archived chat back to the inbox by itself; archive_chat with archived:false does it now.

list_archived_updates

ChatGPT
List the user's own 24-hour updates that have disappeared, newest first. Only they see this archive. Page back by passing nextCursor as before. Bring one back with keep_update or share_update_again.

list_attachment_reactors

ChatGPT
Who reacted to a single picture, clip or file of a chat message, grouped by emoji, in a chat the user can read.

list_blocks

ChatGPT
The people and the brand pages the user has blocked.

list_chat_lists

ChatGPT
List the lists the user sorts their chats into (their own folders, seen by nobody else), each with the ids of the chats in it.

list_chats

ChatGPT
List the authenticated user's chats (direct and group), with each chat's title, last message preview and unread count. Use read_chat with a chat's id to read its messages.

list_child_requests

ChatGPT
The requests waiting for a parent across the user's children: a friend request a child wants to send or has received, or a group or event someone wants to add a child to. Each names the child, the kind, the person, group or event, and when it expires.

list_children

ChatGPT
The child accounts the user manages: each child's id and name, the other parents, the devices the child is signed in on, whether location sharing is on, and how many requests are waiting. A child's date of birth and position are never included.

list_circles

ChatGPT
The circles the user sorts their friends into (family, close friends, work, and ones they made): each one's id, kind, name, how many friends are in it, and whether it has a location or share-less rule of its own. Also the built-in circles they hid, and how many friends are in no circle, and the people waiting to join a circle once they become friends (pending, by the name the user gave them; placed in the app). Which friend is in which circle is on list_friends.

list_current_journeys

ChatGPT
The trips whose road the user is on right now (#5255): state is start while today is inside their journey's window and they are not tracking it, and homecoming once they are back home after their last day and the journey is waiting to be ended (homeArrivedAt, end it with stop_journey_tracking). Each carries the trip and its event, the user's own days (startsOn/endsOn, null meaning the trip's; the route records only on these) and the window the journey can be started in: from up to 2 days before their first day (a start there moves that day) to their last day. Tracking itself is started in the app.

list_day_recaps

ChatGPT
The user's own day recaps, newest first: for each day Woosh wrote one, how long they were out, how many stops, the distance, the countries, and the events of that day (eventIds, for get_event). Pass before with the oldest dayDate of a page to read further back.

list_dish_searches

ChatGPT
The user's 10 most recent dish searches, newest first, each with its id and what it looked for.

list_duplicate_guests

ChatGPT
For a host: the guest list of one of their events minus whoever declined, as user ids, to invite again on a new event (create_event with duplicateOf, then invite_to_event). Nothing is invited by reading it.

list_event_attach_candidates

ChatGPT
The events around the same days that one of the user's own plans could be attached to as a side event (a pre-drinks to a festival), nearest in time first. For someone in the plan.

list_event_attach_requests

ChatGPT
For a host of a plan: the requests its guests filed to attach it to another event, each with who asked and which event.

list_event_files

ChatGPT
List the files shared to an event the user can see (tickets, a schedule, a PDF), with each one's name, type, size, who shared it and a link to it.

list_event_join_requests

ChatGPT
List the pending requests to join an approval-gated event the user hosts, oldest first: each requester's user id, name and when they asked. Answer one with answer_event_join_request.

list_event_reactors

ChatGPT
List who reacted to an event or a shout the user can see, and with which emoji.

list_event_waitlist

ChatGPT
List who is waiting for a place on a full event the user hosts, in order: each person's user id, name, when they joined the queue and, when a place has been offered to them, until when the offer holds.

list_events

ChatGPT
List events the authenticated user can see (their RSVPs and events from their groups), with title, time, place name and the user's participation status. Pass latitude/longitude (and optionally radiusKm) to narrow the nearby events it discovers to an area; the user's own and RSVP'd events are listed wherever they are. For browsing public events by area, discover_events is the better tool.

list_expense_ledgers

ChatGPT
List the shared-expense ledgers the user can open — each with its name, currency, how many expenses it holds, its total and the user's own net position (positive: owed money; negative: owes). Amounts are integers in the currency's minor unit (cents). Pass one of groupId, eventId or chatId for only the ledgers attached to that group, event or chat; pass none for every ledger. Open one with get_expense_ledger.

list_favorite_places

ChatGPT
List the places the user saved as favourites, newest first: each one's name, kind of place and whether it shows on their profile. A position only on a connection the user granted exact coordinates.

list_file_comments

ChatGPT
The comments under a file of an event or a group, oldest first: each one's id, author, text, reactions and whether the user may delete it. Pass latest (1 to 5) for only the newest few plus the total. Pass exactly one of eventId or groupId.

list_file_reactors

ChatGPT
Who reacted to a file of an event or a group, grouped by emoji. Pass exactly one of eventId or groupId.

list_friend_albums

ChatGPT
The albums a friend has added pictures to that the user can also open, with each one's name, cover and how many pictures. kind picks the list: contributed (group and event albums they added to, the default), events (events they have pictures from) or groups (shared groups they have pictures in). Open one with list_photos or get_album.

list_friend_birthdays

ChatGPT
List the user's friends' birthdays over the coming year, soonest first: each friend's id, first name (name), full name where they show it to friends (displayName), avatar and the day (YYYY-MM-DD) it falls on, with today the user's own local date. Only friends who share their birthday with friends appear, and never the year of birth or an age — do not guess either.

list_friend_events

ChatGPT
The events a friend is going to, has been to, or is at right now, as far as they show their plans to the user and the user may see each event: current (where they are now, when they share that), live, upcoming, past, their live shout, and how many events the two have been to together. Place names only, never a position.

list_friend_favorite_places

ChatGPT
The places a friend chose to show on their profile as favourites, by name and kind of place. Empty for a friend who does not share their location with the user. Never a position.

list_friend_files

ChatGPT
List the files and tracks a friend put on their profile, with each one's name, type, size, reaction counts and how many comments it has.

list_friend_groups

ChatGPT
The groups the user and someone else are both in (shared), and the user's groups that person is not in and the user may invite them to (invitable). A public group is listed as shared only where that person shows their membership. Each group's kind says whether it is an ordinary group or a brand page.

list_friend_photos

ChatGPT
List the pictures on a friend's profile that the user may see: each one's id, when it was added and a media ref (a video's poster image only).

list_friend_requests

ChatGPT
List the friend requests waiting for the user's answer, each with who sent it. Answer one with respond_to_friend_request.

list_friends

ChatGPT
List the authenticated Woosh user's friends. Returns each friend's name, avatar and (subject to that friend's location-privacy settings) their status and current place. Location fields are omitted or frozen exactly as they are in the app when a friend has limited what you can see. me is the user's own row: when me.locationOff is set, their own location is switched off (device: on their phone; recording: "Remember where I've been" is off), so asked where they are or who is near them, suggest turning it on under Settings › Location privacy, where they still choose who sees them.

list_gift_draw_candidates

ChatGPT
For whoever may add people (the organiser, or anybody in the draw when its membersCanAdd is on): the people of the draw's group or event who are not in it yet (scope: room), or scope: friends when the draw stands alone, in which case pick from list_friends. invited lists the people the user texted an invite to that group or event who are not on Woosh yet (each named by hint, the number's last digits); pass their inviteId to add_gift_draw_members (organiser only). With children: true: the user's own children who can still be put in (child accounts and name-only children).

list_gift_draw_children

ChatGPT
The user's name-only children (children without a Woosh account that they put in gift draws): each one's id, first name, whether the user created them, and who else looks after them there.

list_gift_draws

ChatGPT
The gift draws the user, or a child they manage, is in: each one's id, name, budget, exchange day, whether names were drawn yet, how many people are in it, and whether the user is its organiser. Pass a groupId or eventId for the draws of that group or event. Who the user gives to is on get_gift_draw.

list_google_sources

ChatGPT
The calendars and task lists in one of the user's connected Google accounts, each with where it is linked: to the user (me), to one of their groups, or nowhere. needsReconnect says which permission the account has not given yet: the user allows it in the app (Settings → Google → the account), as Woosh asks Google for each one only when it is first used.

list_group_calendars

ChatGPT
List a private group's outside calendars: the group's own (a school's calendar, say), the members' calendars shared into it (a busy-only one carries no name), the user's own calendars with how each is shared here, whether the user shows their work days here, and the state of their Google calendar for the group.

list_group_chats

ChatGPT
List the chats inside a group the user belongs to — its General chat, topic chats and its events' chats — each with its last message preview and unread count. A chat the user has locked is left out. Read one with read_chat.

list_group_events

ChatGPT
List the events linked to a group the user belongs to, upcoming and past. Use get_event for one event in full.

list_group_files

ChatGPT
The loose files of a group (documents and audio not filed in a record), newest first, up to 200: each one's id, name, type, size, who added it, its reactions and comment count, and a ref to open it. Files filed in a record are on get_group_record.

list_group_inbox

ChatGPT
Read the user's own inbox in a private group — the quick notes they jotted down to sort later, private to them unless they shared one — and the notes other members shared with them (shared).

list_group_join_requests

ChatGPT
List the pending requests to join a group the user administers. Answer one with answer_group_join_request.

list_group_latest_media

ChatGPT
The newest photos and videos across a whole group, as its page's Latest strip shows them: the gallery, every album, and the galleries of the group's events the user can see, newest first (10 by default, at most 30). Each item says where it lives — source group (with albumId, null for the loose gallery) or event (with eventId) — and carries a media ref (a video's poster image only). Where a photo was taken is never included.

list_group_recommendations

ChatGPT
The places and businesses the members of a private group recommend, by category and then by how many members vouch for each: name, category, the one-line reason, the place when it is one, how many vouch for it, whether the user does, and whether the user added it.

list_group_records

ChatGPT
List a group's records: named collections of its files in a set order (a band's releases, a set of documents). Each has its id, name, year, cover, track count and whether the user may change it.

list_groups

ChatGPT
List the friend groups the authenticated user belongs to, with each group's name, avatar and membership summary. Most recently active first; hasNewActivity says something happened there since the user last opened it.

list_hidden_suggestions

ChatGPT
List the people the user removed from their friend suggestions, by name, and how many removed contacts are not on Woosh. Removing a suggestion is not a block: the person can still be found and added.

list_invitable_events

ChatGPT
The user's own running and upcoming events they may invite this person to and that the person is not on yet. Invite with invite_to_event.

list_ledger_people

ChatGPT
The people a ledger can name on an expense or a payment (members; one marked pending was invited by text and is not on Woosh yet), or, with candidates: true, the people of its group or event who are not on it yet, and in invited the people the user texted an invite there who are not on Woosh yet. Adding people stays in the app.

list_linked_album_contributors

ChatGPT
For an iCloud album linked to a group or an event: every name the album gives for the people who added its pictures, how many pictures each added, and which member of the group or event that name is matched to (automatically by name, or chosen by hand), plus whether the user may change the matches. The names can be people who are not on Woosh: keep them inside this conversation.

list_linked_albums

ChatGPT
The outside shared albums (iCloud, Google Photos) linked to a group or an event, each with its title, picture count, when it last synced, whether the user may unlink it, and the pictures Woosh mirrored. The album's own link is not included. Pass exactly one of eventId or groupId.

list_message_reactors

ChatGPT
List who reacted to one message in a chat the user can read, grouped by emoji — the names behind the counts read_chat shows.

list_moment_comment_reactors

ChatGPT
Who reacted to one comment under a moment, grouped by emoji.

list_moment_comments

ChatGPT
The comments under a moment, oldest first (up to 500): each one's id, author, text, reactions and whether the user may delete it. Pass latest (1 to 5) for only the newest few plus the total.

list_moment_reactors

ChatGPT
Who reacted to a moment, grouped by emoji.

list_my_albums

ChatGPT
List every photo album of every group the user is in, newest activity first: each with its albumId, groupId, groupName and title (null on a group's Moments album, isMoments). Use it to find an album by name without knowing its group; open one with get_album. An event's own gallery is not an album here — use list_photos with its eventId.

list_my_calendars

ChatGPT
List the outside calendars the user added in the app (a calendar link, or their Google calendar): each one's name, source, when it last synced, whether syncing is failing, and the groups it is shared into (in full or as busy only). Their appointments appear in those groups' agendas (get_group_agenda).

list_my_check_ins

ChatGPT
Every place the user has checked in at, most days first: the days in all, the days in the last 30 (what the president title counts), the last day, and whether the user is president there now. Also the totals. Only the user's own check-ins.

list_my_photos

ChatGPT
List the pictures on the user's own profile, in the order friends see them: each one's id, kind, when it was added and a media ref (a video's poster image only).

list_notifications

ChatGPT
List the user's notifications inbox, newest first: friend requests, mentions, reactions, RSVPs, join requests and other things addressed to them, each with whether it has been read. Reading does not mark anything read (mark_notifications_read does). Page back by passing nextCursor as cursor; a page can come back short or empty while nextCursor is still set, so keep following it until it is null. Because the inbox spans every domain it needs read access to all of them.

list_photo_comments

ChatGPT
List the comments under one photo in an event's or a group's gallery, oldest first. Pass exactly one of eventId or groupId, and the photo's id from list_photos.

list_photo_profile_adds

ChatGPT
For a picture the user posted: whether tagged people may put it on their own profile (allowCarry), and who has (carriers, each a user id and their update's id).

list_photo_prompts

ChatGPT
The events the user went to that are over and that they added no picture of their own to, which the app asks about on opening.

list_photo_reactors

ChatGPT
Who reacted to a photo in an event's or a group's gallery, grouped by emoji. Pass exactly one of eventId or groupId.

list_photo_tags

ChatGPT
Who is tagged in up to 60 pictures of one kind: for each picture id, the tagged people (id, name), who tagged them, where in the picture, and whether the user may remove the tag. A picture the user cannot see, and a tag its person keeps to themselves, is left out.

list_photos

ChatGPT
List the photos and videos in an event's or a group's gallery that the user can see, in the gallery's own order (up to 200): each one's id, caption, who posted it, when, its reaction and comment counts, and a media ref (a video's poster image only). Pass exactly one of eventId or groupId. Where a photo was taken is never included.

list_picture_asks

ChatGPT
List picture asks: the ones friends sent the user that are still open (direction: received, the default), or the user's own last asks and whether each was answered (direction: sent). An ask is answered with a picture, from the app.

list_place_tips

ChatGPT
The user's own tip at a place and the tips their friends shared there, newest first, each with who wrote it.

list_polarsteps_trips

ChatGPT
The Polarsteps trips the user asked Woosh to follow: each with its name, whether new steps are posted, who they are posted to, and when it last worked.

list_poll_voters

ChatGPT
List who voted for each option of a poll in a chat the user can read (the poll's message id comes from read_chat).

list_profile_file_comments

ChatGPT
List the comments under a file on a friend's profile (or the user's own), oldest first.

list_saved_events

ChatGPT
List the events the authenticated user has saved/bookmarked (via save_event or the app's heart button), newest-saved first.

list_sent_friend_requests

ChatGPT
List the friend requests the user sent that are still waiting for an answer, with who each went to where that person may be named. Phone numbers are never included.

list_shared_themes

ChatGPT
List the custom themes friends shared with the user, with their full colours. The user can use one as it is (set_group_theme, set_event_theme, update_profile) or copy it to change it (copy_theme); they can never edit the original.

list_shopping_lists

ChatGPT
List the lists of a group the user belongs to, or of their own To-do space: the group's own shopping list first (id null; name null unless it was given one), then the further lists it keeps (a party's shopping, a packing list, things to read), each with how many items are left on it. shopping says whether a list is laid out as a shopping list (aisles, stores, the shop trip) or is a plain list to tick off; the item tools work the same on both. Pass a further list's id as listId to them.

list_shout_viewers

ChatGPT
Who looked at one of the user's own shouts: how many people and who. Someone who keeps their views to themselves is counted but not named. Only the person who shouted can ask.

list_shouts

ChatGPT
List the shouts live right now that the user can see — their own, their friends' and their groups' "up for drinks at Café Belga" invitations, the app's Live-now rail. A shout planned for later is not listed until its start. Each carries its id, title, activities, place name (meetName / locationName), when it ends, and who is going. Pass groupId to narrow to one group's shouts.

list_synced_albums

ChatGPT
The private iCloud shared albums members' iPhones copy into a group or an event: each with its name, who syncs it, how many pictures it added, who took its pictures (the credit every one of them carries), whether it stopped, and whether the user may change the credit. Pass exactly one of eventId or groupId.

list_task_areas

ChatGPT
List the areas a group files its tasks under, each with its categories and who carries them. Use the ids as areaId / categoryId when creating or editing a task.

list_task_reactors

ChatGPT
List who reacted to a task, and with which emoji.

list_tasks

ChatGPT
List the tasks of a private group the user belongs to, or of their own To-do space: every open one, and those finished in the last two weeks. Each carries its due day (a calendar date, not an instant), who is doing it, its area and category, and its repeat rule, and holds its subtasks — tasks of their own, each with its own day, people and points — under subtasks. The user's own private tasks in that group are included; nobody else's are. A task linked to an event carries it as event (id, title, start) when the user can open that event, and event: null otherwise.

list_theme_shares

ChatGPT
The friends a theme the user made is shared with, as user ids, and which of them are using it right now (those cannot have it taken back).

list_themes

ChatGPT
List the custom color themes the authenticated user has created. Each theme returns its id, name, mode (which ground mainColors was authored for), the 11 core colors (mainColors), any functional token overrides, font, background gradient and app icon — plus altColors / altOverrides / altBackgroundGradient when the theme also carries the opposite ground. The full definition, so it can be inspected, recolored via update_theme, or used as the basis for a new theme. Use the id with update_theme, set_group_theme or set_event_theme.

list_trips

ChatGPT
List the user's trips: invites they have not answered, the trips they are on (mine), and friends — trips a friend is on that the user may see. Each carries its name, its first and last day, who can see it and the people on it the user may see.

list_update_comments

ChatGPT
List the comments under an update the user can see, oldest first, each with its id, who wrote it, its reactions and whether the user may delete it.

list_update_reactors

ChatGPT
List who reacted to an update the user can see, grouped by emoji.

list_update_viewers

ChatGPT
Who looked at the pictures of one of the user's own updates: per picture, how many people and who (name, and their reactions). Someone who keeps their views to themselves is counted but not named. Only the update's author can ask.

list_visited_countries

ChatGPT
The user's own countries: every country Woosh recorded them in, most recent first, each with how much of its map they uncovered (tiles) and when it was first and last recorded. This is the record to read for whether and when they were abroad, and it reaches further back than place history. lastRecordedAt is the last time they covered new ground there, or the start of the last day whose recap passed through it, so a later return to familiar streets may not show: say "at least as recently as", never "not since". Woosh only records where the phone reported an accurate position, so a country missing here is not proof they were never there. It names countries, not places. Nobody else sees this list; keep it to the user.

list_visited_places

ChatGPT
The user's own place history: the public places Woosh recorded them at, most recent first, each with its kind, country, first and last visit and how often. Hotels and other lodging appear only when the user chose to include them (includeLodging). It holds named venues they stayed at for some minutes, and only since Woosh began keeping them, so it is not a full record of where they have been: a country missing here may still be in list_visited_countries. Nobody else sees this list; keep it to the user.

list_wishlists

ChatGPT
List the wishlists of a group the user belongs to: the user's own, those of the children they manage there, and every other member's who has written one. The user's own list never shows who has claimed a wish.

list_workouts

ChatGPT
List the user's own recorded and imported workouts, newest first: each one's sport, when it was, how long, how far and how much climbing. Distances are metres, durations seconds. Page back by passing the last workout's startedAt as before while hasMore is true. The routes themselves are not included, unless the user granted this connection exact coordinates.

mark_chat_unread

ChatGPT
Flag a chat as unread, as a reminder to come back to it, or mark it read — the same as opening it, which clears the flag and advances the user's read cursor.

mark_day_recap_seen

ChatGPT
Mark one of the user's day recaps as read, which takes its card off their home screen.

mark_feed_seen

ChatGPT
Mark the user's activity feed seen up to now, as opening it in the app does. It clears the feed's badge and the activity badges of their groups and events, and it cannot be moved back. It marks no chat read. Only after the user has actually been shown the feed.

mark_gift_draw_revealed

ChatGPT
Record that the user (or a child they act for) has seen who they give to, as opening the name in the app does. The organiser sees only how many people have looked. Call it once the user has actually been told the name from get_gift_draw.

mark_notifications_read

ChatGPT
Mark the user's whole notifications inbox read, as opening it in the app does. Clears the inbox badge; it does not mark any chat read.

menu_to_shopping

ChatGPT
Put the ingredients of a group's planned dishes on its shopping list: every slot from from over days, or one slot by day and meal. Quantities are merged and a name already on the list is skipped. listId names one of the group's further shopping lists (list_shopping_lists); without it they go on the group's own. Answers how many were added, how many were on the list already and how many dishes have no ingredients.

move_photo_tag

ChatGPT
Set where in the picture a tag the user placed points, or clear its position (the person stays tagged). Only the person who placed the tag can. Nobody is notified.

move_shopping_list

ChatGPT
Move one of a group's further lists, shopping or plain, into another private group the user is in, with every item on it and everything that repeats on it. Every member of that group then sees and edits it, and the group it leaves no longer has it. This is how a list reaches people outside its group: a list is never shared outside its group. Works from the user's own To-do (its spaceId) too, where any share of the list stops. The group's own list cannot be moved. Refused with VALIDATION_GROUP_LIST_MOVE for the user's own space or the same group, and 403 (NOT_GROUP_MEMBER or the public-group code) for a group the user is not in or a public one. Tell the user which group will see it and ask first. Returns the groupId and listId it now has.

move_task

ChatGPT
Move a task out of the user's own To-do into a private group they are in, where it becomes one of that group's tasks that every member sees and can do. Every occurrence of a repeating task goes, with its subtasks; its area and category in the To-do are dropped. Only a top-level task of the user's own To-do moves (VALIDATION_GROUP_TASK_MOVE otherwise), and it cannot be moved back. Tell the user which group will see it and ask first.

move_wishlist

ChatGPT
Move a wishlist from one group to another private group: the user's own, or that of a child account they manage. Both the user and the list's owner must be members of the target. Its wishes join any the owner already keeps there (at most 100 in all, GROUP_WISHLIST_FULL otherwise), and a claim by someone who is not in the target is let go. Refused with 403 (NOT_GROUP_MEMBER or the public-group code) for a group the user is not in or a public one, and VALIDATION_GROUP_WISHLIST_MOVE for any other target. Tell the user which group will see it and ask first. Returns the groupId it now has.

mute_chat

ChatGPT
Mute or unmute a chat's notifications for the user. A muted chat still shows in the inbox with its unread count; it stops pushing and drops out of the activity feed.

mute_event

ChatGPT
Mute an event the user is in, or unmute it. A muted event stops sending them its notifications and stops counting as unread; nobody else is affected.

mute_group

ChatGPT
Mute a group for the user (no notifications from any of its chats, and its items leave their feed), or unmute it. Only the user is affected and nobody is told.

mutual_friends

ChatGPT
The friends the user shares with someone (a friend id from list_friends), as far as that person's own settings show them: the total, and up to 10 of them by name. Their other friends are not listed.

open_event_chat

ChatGPT
Get the id of the chat of an event or a shout the user can see, making the conversation when a shout has none yet. It does not join the user to the shout or put them down as going. Use it before send_message on a shout nobody has talked in.

open_expense_ledger_chat

ChatGPT
Get the id of a shared-expense ledger's own chat, for the people on the ledger, making it the first time. A group's ledger has its chat among the group's chats; any other ledger's chat stands on its own. People join and leave it by being added to and removed from the ledger. Use it before send_message or read_chat.

open_gift_draw_chat

ChatGPT
Get the id of a gift draw's own chat, for the people taking part in it, making it the first time. A group's draw has its chat among the group's chats; any other draw's chat stands on its own. People join and leave it by joining and leaving the draw. Use it before send_message or read_chat. Never say in it who drew whom.

pause_group_balance

ChatGPT
Pause the balance of a group for the user, or lift the user's own pause. While anyone has it paused, nobody in the group is shown numbers. Lifting only removes the user's own pause; someone else's keeps it paused.

pin_chat

ChatGPT
Pin a chat to the top of the user's inbox, or unpin it. Only the user's own inbox changes.

pin_event_to_group

ChatGPT
Pin an event to a group the user is in, so its members see it on the group's page. pin only shows it, and is for the event's host, or for a guest or an admin of the group where the group lets members pin events; invite_all also invites every member, who are each notified, and is for the host alone. Not for an event that already belongs to a group. Tell the user who will see it, and how many people an invite_all would notify.

pin_update

ChatGPT
Pin one of the user's own updates to the top of their profile, or unpin it. At most three can be pinned; a fourth is refused until one is unpinned.

plan_meals

ChatGPT
Put dishes on a group's menu, up to 14 slots at once. A slot already planned is REPLACED. The dish is found by name among the group's dishes, or added to them; ingredients and favourite, when sent, replace that dish's own. cookId null means nobody cooks; leaving it out keeps the slot's cook. To MOVE a day's other meal into the slot, pass fromMeal: that slot is cleared and its cook comes along. To answer a dish somebody asked for (a wish from get_group_menu), pass its wishId: the wish is then closed.

post_update

ChatGPT
Post an update under the user's name, on their profile and in their friends' feeds. By default every friend sees it, except anyone the user shares less with; pass visibility: "custom" with friend and/or group ids to show it to those only. workoutId posts one of the user's own workouts with it: friends then see its numbers and its route, cut around the user's saved places by their workout privacy zone. A link to one of the user's own watched trips goes to that trip's audience instead. It never reaches anyone who is not their friend, and no push notification is sent. Show the user the text and who will see it before calling. Returns the update with its id.

preview_tagged_photo_on_profile

ChatGPT
For a picture the user is tagged in: how many people would see it on the user's profile with the audience given (audienceCount), how many of those cannot see it today (newViewerCount), and whether its poster allows it (allowCarry). The numbers do not count the wider reach of reachesEveryone.

promote_event

ChatGPT
Give a save the date the user hosts its date and time, which turns it into the invitation: everyone holding the date is told and can now answer. It cannot be turned back. Requires confirm: true, so only call it once the user has confirmed the date.

propose_payment_change

ChatGPT
Propose that a payment someone else recorded on a ledger is changed (who paid whom and how much) or removed. Nothing changes until the person who recorded it approves; they are notified. Proposing again replaces the user's earlier proposal for that payment. Pass remove: true, or all of fromUserId, toUserId and amountMinor.

react_to_album

ChatGPT
Toggle an emoji reaction on one of a group's own albums (a shared album the group syncs included): calling it again with the same emoji takes the reaction back, and the answer says which happened. For a picture in it, use react_to_photo.

react_to_attachment

ChatGPT
Toggle an emoji reaction on a single picture, clip or file of a chat message, in a chat the user belongs to: calling it once adds the reaction, calling it again with the same emoji removes it (reacted says which). react_to_message reacts to the message as a whole. A view-once picture takes no reaction and answers as not found.

react_to_event

ChatGPT
Toggle an emoji reaction on an event or a shout the user can see: calling it again with the same emoji takes the reaction back, and the answer says which happened.

react_to_file

ChatGPT
Toggle an emoji reaction on a file of an event or a group: the same emoji again takes it back, and reacted says which happened. Whoever added the file sees it in their notifications. Pass exactly one of eventId or groupId.

react_to_file_comment

ChatGPT
Toggle an emoji reaction on a comment under a file; the same emoji again takes it back. The comment's author sees it in their notifications. Pass exactly one of eventId or groupId.

react_to_gift_draw_wish

ChatGPT
Add or remove an emoji reaction on one wish on somebody else's wishlist in a draw (from get_gift_draw's wishlists, whose items carry reactions). Everyone reading that list sees a count per emoji, its owner included, but never who reacted.

react_to_message

ChatGPT
Add, remove or toggle an emoji reaction on a message in a chat the user belongs to. By default it toggles: calling it once adds the reaction, calling it again with the same emoji removes it (the response's reacted field says which). Prefer mode:"add" / mode:"remove" when you are re-running over messages you may have already reacted to — a read reports only how many reacted, not who, so a toggle would undo your own earlier reaction. Pass asSystem to attribute the reaction to the app's system (bot) user instead of the authenticated user — requires the 'admin' user right; without it asSystem:true fails. Membership is enforced server-side. Use list_chats and read_chat to find the chat and message ids.

react_to_moment

ChatGPT
Toggle an emoji reaction on a friend's moment (today: a friend arriving in another country): calling it again with the same emoji takes it back, and reacted says which happened. The friend sees it in their notifications.

react_to_moment_comment

ChatGPT
Toggle an emoji reaction on a comment under a moment; the same emoji again takes it back. The comment's author sees it in their notifications.

react_to_photo

ChatGPT
Toggle an emoji reaction on a photo in an event's or a group's gallery: calling it again with the same emoji takes the reaction back, and the answer's reacted says which happened. Pass exactly one of eventId or groupId, and the photo's id from list_photos.

react_to_photo_comment

ChatGPT
Toggle an emoji reaction on a comment under a photo; the same emoji again takes it back. The comment's author sees it in their notifications. Pass exactly one of eventId or groupId.

react_to_profile_file

ChatGPT
Toggle an emoji reaction on a file on a friend's profile: calling it again with the same emoji takes it back, and the answer's reacted says which happened. The file's owner sees it in their notifications.

react_to_task

ChatGPT
Toggle an emoji reaction on a task, e.g. a cheer for a chore a child finished: calling it again with the same emoji takes the reaction back, and the answer's reacted says which happened.

react_to_update

ChatGPT
Toggle an emoji reaction on a profile update the user can see: calling it again with the same emoji takes the reaction back, and the answer's reacted says which happened. The author sees it in their feed and notifications; no push is sent.

react_to_update_comment

ChatGPT
Toggle an emoji reaction on a comment under an update the user can see: calling it again with the same emoji takes it back, and the answer's reacted says which happened. The comment's author sees it in their notifications.

read_chat

ChatGPT
Read messages in one chat the authenticated user belongs to, newest page first (each page ordered oldest to newest). Membership is enforced server-side: reading a chat the user isn't part of fails, and so does a chat the user has locked. To read further back, pass the result's nextCursor as before; a null nextCursor means there is nothing older. To check for what arrived since an earlier read, pass the newest message's createdAt as after: only newer messages come back, and a non-null nextCursor then means more arrived than fit, so read the newest page again. Like opening the chat in the app, reading it marks it read for the user. A message whose text names a link carries linkPreview (the page's title, description and picture) once the link has been read; it is null when the page gave nothing to show.

read_gift_draw_questions

ChatGPT
The two anonymous threads the user has in a drawn draw: asGiver, with the person they give to (named there, and a secret), and asReceiver, with whoever gives to them (never named). Reading marks the other side's messages as read.

recommend_in_group

ChatGPT
Add a recommendation to a private group's list: a public place (placeId, from search_places) or a business by name — one of the two. Never a private person: only a business or a public place, and no phone numbers or addresses in the reason. The user vouches for it by adding it. Something already on the list is refused; vouch for it with vouch_for_recommendation instead.

record_payment

ChatGPT
Record on a shared-expense ledger that one person paid another back, which moves both balances at once. To confirm one of get_expense_ledger's suggested transfers, pass its amount as both amountMinor and expectedAmountMinor: if the ledger has changed since and no longer suggests that payment, the call is refused with EXPENSE_SETTLEMENT_STALE and nothing is recorded — call get_expense_ledger again for the current suggestion. Without expectedAmountMinor any amount is recorded as given. Amounts are integers in minor units (cents). The payer and the payee are both notified, except whichever of them is the user.

remove_chat_member

ChatGPT
Take someone out of a chat whose member list the user curates, as the app's remove from chat does: a group chat started with friends (create_chat) or a private chat inside a group, where the user started it or is a group admin in it (get_chat's canRemoveMembers says whether they may). They stop receiving its messages and it leaves their inbox; they are not sent a push, and getting back needs another member to invite them. The chat's creator cannot be removed, nor can the user themselves. A group's open chats and event chats follow the group or the event, so they are refused here. Requires confirm: true, so only call it once the user has said to remove this person. Get user ids from get_chat.

remove_event_participant

ChatGPT
Take a guest off an event the user hosts, as the app's remove-guest does. They are no longer on the guest list, a waitlist place they held is given up, and their seat goes to the next person waiting; they are not sent a push. It cannot be undone from here — they would have to join or be invited again. The user cannot remove themselves (they decline instead), and an event always keeps at least one host, so the last one cannot be removed. On an event with a trip they leave the trip too, with their own route and entries. Requires confirm: true, so only call it once the user has said to remove this person. Get user ids from get_event's participants.

remove_friend

ChatGPT
End the friendship with someone, for both sides. They stop seeing each other's status, location and friends-only posts, and what each had set up for the other (location and sharing rules, emergency contact) is deleted. The other person is not told. Getting it back needs a new friend request, which is sent from the app, and the deleted settings do not return. Requires confirm: true, so only call it once the user has said to remove this friend — name them back to the user first.

remove_from_event_waitlist

ChatGPT
Take someone out of the waitlist of an event the user hosts. They lose their spot in the queue and are not told. Requires confirm: true, so only call it once the user has said to remove this person. Get user ids from list_event_waitlist.

remove_gift_draw_child

ChatGPT
Remove one of the name-only children the user created. They leave every draw whose names are not drawn yet; in a drawn one the seat stays with the name erased. It cannot be undone.

remove_gift_draw_member

ChatGPT
Take a participant out of a draw before names are drawn: the user themselves (the organiser too, who keeps running it), a child they act for, or, for the organiser, anyone. Their wishes and the exclusions naming them go with them.

remove_group_member

ChatGPT
Take someone out of a group the user administers, as the app's remove-member does. They stop being a member and leave its General chat; they are not sent a push, and getting back needs a new invite unless the group is public. The user cannot remove themselves (use leave_group). On a brand run by a team group, its staff are managed from the team instead. Requires confirm: true, so only call it once the user has said to remove this person. Get user ids from get_group.

remove_group_recommendation

ChatGPT
Take a recommendation off a group's list, with every vouch for it. Allowed for the member who added it and for the group's admins.

remove_photo_subtitles

ChatGPT
Remove one subtitle track from a video in an event's or a group's gallery. It is gone for everyone and cannot be undone, so confirm with the user first and pass confirm: true. Only whoever posted the video may do this. Pass exactly one of eventId or groupId.

remove_photo_tag

ChatGPT
Remove a tag: one the user placed, one naming the user, or any tag on an event or group album picture the user uploaded. It cannot be undone from here, and if the tagged person had put that picture on their own profile, that post goes with it. Nobody is notified.

remove_plus_one

ChatGPT
Take one plus-one off an event: one the user brought, or anybody's on an event the user hosts. Their place goes to the next person waiting. Requires confirm: true, so only call it once the user has said to remove them.

remove_shopping_item

ChatGPT
Take an item off a group's shopping list, or off the user's own shopping list (their To-do space), for everyone, as the app's remove does. To mark it bought instead use set_shopping_item_bought. A repeating item keeps its repeat and comes back on its next due day (one interval after it was last put on the list or bought); stop_shopping_repeat stops that. An item already gone answers with the list as well. Requires confirm: true, so name the item back to the user first. Returns the whole list.

remove_task_proof

ChatGPT
Take the proof photo off a task. The photo is deleted and cannot be brought back; the task stays as it is. Attaching a photo is done in the app.

remove_trip_entry_picture

ChatGPT
Take a picture the user added off a trip entry — their own entry or another traveller's they added to — and out of the event's photos where the entry put it there. Only pictures with canRemove in get_trip; the last thing on an entry with no title or text is refused (TRIPS_STEP_LAST_PICTURE). Adding pictures is done in the app. Requires confirm: true.

remove_trip_participant

ChatGPT
Take someone else off a trip the user started. Their route and entries leave the trip with them, and getting back needs a new invitation. Requires confirm: true, so only call it once the user has said to remove this person. Get user ids from get_trip. On a trip whose people are its event's guests this is refused (TRIPS_EVENT_LINKED): remove them from the event instead.

remove_work_days

ChatGPT
Remove one set of the user's work days. Only call it once the user has asked for it.

remove_work_place

ChatGPT
Remove one of the user's work places. Every set of work days at that place goes with it, including from the agendas of the groups they show them in. Only call it once the user has asked for it.

rename_calendar

ChatGPT
Rename one of the user's own outside calendars (from list_my_calendars). Where it is shared with a group, the group sees the new name.

rename_chat_list

ChatGPT
Rename one of the user's chat lists.

rename_child

ChatGPT
Change the first or last name on a child account the user manages. Only the fields passed change; lastName: null clears it. Everyone who sees the child sees the new name. The answer shows the first name only: a child's last name is saved but never shown to an assistant.

rename_circle

ChatGPT
Rename one of the circles the user made. A built-in circle cannot be renamed.

rename_gift_draw_child

ChatGPT
Change the first name of one of the user's name-only children, or of a name-only child in a draw the user organises. It changes in every draw they are in.

rename_group_file

ChatGPT
Rename a file of a group, such as a track on one of its records, as the group lists it. The file keeps its name in the chat it came from. Pass name: null to go back to the name it was uploaded with. Whoever added the file, the creator of the record it is on and the group's admins may rename it.

rename_shopping_list

ChatGPT
Rename any of a group's lists, its own shopping list included (omit listId for that one), or switch a further list between a shopping list (aisles, stores, the shop trip) and a plain list. Pass at least one of name and shopping. Switching changes how the list is laid out; every item stays. The group's own list is always a shopping list, and a null name takes its name away so it reads as it did before (e.g. 'My shopping list'); a further list always keeps a name. A plain further list's kind (movies, series, music, books) is set with kind, or cleared with null; making a list a shopping list clears it. Returns that list.

rename_task_area

ChatGPT
Rename one of a group's task areas.

reopen_task

ChatGPT
Put a finished or skipped task back to open, whoever ticked it. Its proof photo, if any, is dropped. On a repeating task this also removes the next occurrence the tick wrote, with any edits made to it; when that occurrence has itself been done since, the call is refused with GROUP_TASK_REOPEN_SUPERSEDED and nothing changes.

reorder_album_photos

ChatGPT
Set the order of pictures in one of a group's own albums, for everyone who opens it. Pass picture ids (up to 1000) in the order wanted: they are put in that order in the places they hold between them now, and every picture left out keeps its place. To move a picture to the front, pass the album's first pictures with it. For the album's creator or a group admin.

reorder_inbox_notes

ChatGPT
Set the order of the user's own notes in a group's Out of my head, top to bottom. A note left out keeps its place above the ones passed. Every id must be one of the user's own notes as listed now, or the call is refused.

reorder_my_photos

ChatGPT
Put the user's profile pictures in the order given, which is the order friends see. A picture the list leaves out keeps its place. An id that is not one of the user's own pictures refuses the whole order.

reorder_subtasks

ChatGPT
Put a task's subtasks in the order given. A subtask the list leaves out keeps its place after the named ones; an id that is not one of this task's subtasks is ignored.

report_bug

ChatGPT
Pass a problem with the app, or a wrong answer from Ask Woosh, on to the Woosh team. It is stored for the team only, encrypted, and the user hears back in their Ask Woosh chat when it is picked up and when it ships. Write the description in the user's own words, about the app: leave out other people's names, places and messages, and anything else read about someone else.

request_upload

ChatGPT
Step 1 of adding a picture, a video, music or a file to Woosh. Say where the file is going and its content type; the answer's uploadUrl is valid for 15 minutes and takes the file's bytes as the body of ONE HTTP PUT with the answered Content-Type header (curl -X PUT -H 'Content-Type: image/jpeg' --data-binary @photo.jpg '<uploadUrl>'). You must be able to make that request yourself. If you cannot send a file over HTTP: for a picture up to 700 KB, skip this tool and pass the picture itself as image to set_group_picture, set_event_picture or add_photo; for anything else, tell the user to add it in the app. Nothing appears in Woosh until step 2: pass the answered path to add_photo (target group_photo / event_photo), add_file (group_file / event_file), set_group_picture (group_picture), set_event_picture (event_picture), or send_message's attachments (chat_attachment, with chatId), with the same content type. A gallery takes pictures and videos (mp4, mov, webm); a group's or event's picture takes a picture; a file library and a chat take any file. Refused when the user may not add to that group or event or post in that chat, or their storage is full. Each file is two calls, and a connection makes about 20 changes a minute, so pace a batch. Upload only a file the user asked you to add.

resend_email_confirmation

ChatGPT
Send the confirmation mail again to the email address on the user's profile. Refused when there is no address or it is already confirmed.

reset_door_pass

ChatGPT
Make a new door pass for the user and kill the old one for good: a copy or screenshot of the old pass stops working at once. For when the old one was shared or lost.

reset_linked_album_contributor

ChatGPT
Drop the hand-made choice for one contributor name of a linked album, so the name is matched automatically again (to the one member with that name, if there is exactly one). For whoever linked the album, a group admin or the event's host.

reshare_photos

ChatGPT
Pass pictures from a PUBLIC group or event on to the user's own friends, at most 20 at a time: they reach those friends as reshared by the user. Only pictures the user can see, and only from a public group or event. Only when the user asks.

reshare_update

ChatGPT
Pass a friend's update on to the user's own friends, who then see it in their feeds as shared by the user; or take that back. Only an update its author shared with all their friends can be passed on, never the user's own, a custom-audience one or a workout. Nobody is notified. It shows the update to people its author does not know, so ask the user first.

reshout

ChatGPT
Pass on a shout the user received, so their own friends can see and join it too: they are notified, once. It also puts the user down as going, or files a request to join where the shout takes approval. (Joining a shout usually lets the user's friends find it already, without telling them; this is the step that tells them.) Only a shout that is still running, that somebody has already joined, whose author allows passing on, and not the user's own. By default it goes to all the user's friends; custom limits it to the friends and groups named. A second call sends nothing again. Only when the user asks.

resolve_place

ChatGPT
Turn a Google stub from search_places into something create_event can take. A venue or a region (isAddress: false) is added to Woosh's shared place catalog — or found there — and its place.id is the placeId to pass. A private street address (isAddress: true) is NOT added to the catalog: you get back its location (label, latitude, longitude) to pass to create_event as locationName, latitude and longitude.

respond_to_friend_request

ChatGPT
Accept or decline a friend request the user received (see list_friend_requests). Accepting makes the two of them friends: the new friend can then see the user's status and — as far as the user's Location privacy settings allow — where they are, and the user sees theirs. Confirm with the user before accepting. Declining sends the sender no notification.

restore_event

ChatGPT
Undo cancel_event: put a cancelled event the user hosts back on, as it was. An event whose end has passed cannot be restored. notifyGuests decides whether every guest gets a push saying it is back on.

rsvp_event

ChatGPT
Set the authenticated user's RSVP on an event: accepted (going), declined (not going), maybe, or none (clear your RSVP without leaving — you keep your row, admin rights and access, but drop out of the going/maybe/declined counts; on an invite-only event a non-admin's clear reverts to invited so the invite isn't lost). For approval-gated events, accepting may create a pending join request instead of an immediate yes (the response indicates which). Declining a PUBLIC event also mutes it — its chat and gallery stop counting as unread — and moving back to accepted, maybe or none lifts that mute again; only the event named here is affected, never its parent umbrella or sibling days. Use list_events to find the event's id.

run_gift_draw

ChatGPT
Draw the names, for the organiser: everyone is given one person to give to, and everyone in the draw is notified. It happens once and cannot be undone or repeated, and afterwards nobody can be added or removed. It needs at least 4 people. Check the member list and the exclusions with the user first.

save_event

ChatGPT
Save (bookmark) or un-save an event for the authenticated user. Saving works for any event the user can see, joined or not (visibility-gated server-side). Use list_saved_events / discover_events to find event ids.

save_event_listing

ChatGPT
Bookmark a catalogue listing for the user, or take the bookmark off.

save_gift_draw_wishes_as_list

ChatGPT
Move the user's typed wishes in this draw into a new list of their own space, named name, and link that list as the draw's wishlist — so it can be reused in another draw or edited in their space. Anything already claimed stays claimed.

search_dishes

ChatGPT
Find food and drink places around a point by what is on their menu ("stoofvlees", "ramen") and by kind, atmosphere and dietary needs. Pass at least one of those. The search is kept in the user's recent searches for 30 days, and menus not read yet are read in the background: when status is checking, call get_dish_search with the returned id a little later. The point is a latitude and longitude, from a place the user named; it is rounded to about 100 m.

search_hashtags

ChatGPT
Find hashtags starting with some letters (at least 2), among the updates, events and shouts the user can see: up to 20, most used first, each with how many of those carry it.

search_people

ChatGPT
Find people by name among those the user can already reach — friends, friend requests, contacts on Woosh and friends of friends (each only as far as their own settings allow) — never a stranger. Up to 10 results, each with how they are connected and mutual friends. Names only: a phone number is not accepted.

search_places

ChatGPT
Find a venue or address to hold an event at. Search by name (query) and/or around a point. Answers places — Woosh places, whose id create_event takes as placeId — and, when a name search finds few of those, googleStubs from Google's catalog, which have no Woosh id yet: pass a stub's sourceId to resolve_place to get one. Personal places (people's homes and workplaces) are never returned.

send_appeal

ChatGPT
Appeal one moderation decision about the user, in the user's own words. It goes to Woosh's moderators; a decision can be appealed once. Only when the user asks, and with the text they gave or approved.

send_arrival_reply

ChatGPT
Post "on my way", "running late" (5, 15 or 30 minutes) or "can't make it" in an event's chat as the user, around its start: everyone in that chat sees it and is notified. Each can be said once per event and cannot be taken back. "Can't make it" only says so; change the RSVP with rsvp_event as well. Only when the user asks.

send_emoji

ChatGPT
Send one emoji to a friend, as the app's emoji tap does: they get a push notification with the user's name and the emoji, and it rains on their screen when they open the app. It cannot be taken back. Only when the user asks to send one.

send_gift_draw_question

ChatGPT
Send a message in one of the user's two anonymous threads of a drawn draw: asGiver asks the person they give to something without saying who is asking, asReceiver answers whoever gives to them. The other person is notified. It cannot be edited or deleted, so show the user the text first, and keep anything that would give the giver away out of an asGiver message unless the user wants that.

send_message

ChatGPT
Send a message to a chat the authenticated user belongs to. Membership and posting permissions are enforced server-side: sending to a chat the user isn't part of (or an admins-only chat) fails. Use list_chats to find the chat's id. Pass replyToId to post the message as a threaded reply to an existing message (use read_chat to find the message's id). Pass mentions to @-mention chat members: each entry points at a span of content (start/length, in characters) that names the person, so include that text in content yourself and mark where it is — the mentioned user gets notified. Mention targets must be members of the chat. Pass asSystem to control whether the message is attributed to the app's system (bot) user instead of the authenticated user — requires the 'admin' user right; without it asSystem:true fails. When omitted, the user's persisted post-as-system setting decides. Pass poll to ask a question instead of sending text: a poll is the WHOLE message, so content, mentions and replyToId can't ride along with it (the thread renders a poll as a card that owns the bubble). Use vote_in_poll to answer one. Pass clientId, a key you make up per message, when a send might be retried: a second send with the same key answers with the message already posted instead of posting it twice. Three other kinds of message each go out on their own: forwardOf copies a message the user can read into this chat, marked as forwarded; sharedPostId sends one of the user's own profile updates as a card, which each reader sees only as far as the update's audience lets them; location pins a place the user named; and sharedContactUserId sends one of the user's friends (or the user) as a contact card the readers can save, message or add. Pass attachments to send pictures, videos or files, each first uploaded with request_upload (target chat_attachment, the same chatId); they go with or without content, and not with a poll, a forward, a shared post or a contact.

set_album_photo_prompt_membership

ChatGPT
Join or leave the people an album's picture clock asks: the user alone. Leaving stops the asks for the user and takes them out of the album's chat; what they can see does not change, and they can join again with asked: true.

set_appointment_people

ChatGPT
Set who an appointment in a group's agenda is about — the child a dentist visit is for, say. This REPLACES the set as far as the user can see it ([] clears it); people the user is not shown are kept. Only someone who may edit the event can do this.

set_arrival_replies_auto

ChatGPT
For one event: let Woosh post "on my way" for the user when their phone sets off (true), never do so (false), or follow the user's general setting (null).

set_avatar_from_photo

ChatGPT
Make one of the user's own profile pictures their main picture, the one everybody who may see their picture sees beside their name. It replaces the current one, which is not kept. A video cannot be used. Confirm which picture with the user first.

set_chat_lists

ChatGPT
Set which of the user's chat lists a chat is sorted under. The call states the WHOLE set: a list left out no longer holds the chat, and [] takes it out of every list.

set_event_calendar_sync

ChatGPT
Decide for ONE event the user is in whether it goes in their own calendar: true always, false never (an entry already there is taken out), null to follow their account's calendar setting again.

set_event_cover_from_photo

ChatGPT
Make a picture from an event's gallery its cover, replacing the one it has: everyone who can see the event sees it, on a public event's page too. For whoever may edit the event. Only a still, and not a picture its owner shares with friends only. The old cover stays in the gallery.

set_event_hidden_from

ChatGPT
Set who an event the user hosts is kept from until it starts: they cannot see or find it. The call states the WHOLE list; [] lifts it, and the people on it can then see the event as its audience allows. Only the user's friends can be named, and nobody who hosts it or is already invited. A public event, a shout, a multi-day event or one of its days, and an event that has started cannot be hidden. Confirm the names with the user.

set_event_participant_role

ChatGPT
Make a guest of an event the user hosts a co-host or take that back (host), or let them scan passes and tick guests in at the door, or take that back (doorChecker). Pass exactly one of the two. A co-host can do everything the user can, including edit and cancel the event; an event always keeps at least one host, so the last one cannot be demoted. The door role is granted only to a guest who is going. Get user ids from get_event's participants.

set_event_picture

ChatGPT
Make a picture the event's cover, replacing the one it has. Pass the picture itself as image (base64, up to 700 KB), or the path of one already sent to a request_upload address (target event_picture). It shows wherever the event does, including on its invite page, and it is also added to the event's gallery as a picture. Only a host of the event may.

set_event_theme

ChatGPT
Set or clear the light and/or dark theme of an event the user hosts. Each ref is a built-in { kind: "builtin", name } or a custom { kind: "custom", id } (a theme id from list_themes or create_theme), or null to clear that slot; omit a field to leave it unchanged. Requires event host. Use list_events to find the event id.

set_expense_currency

ChatGPT
Set the currency a shared-expense ledger the user starts begins in. Ledgers that exist keep theirs.

set_favorite_place

ChatGPT
Save a place as one of the user's favourites, or take it off. Saving shows it to nobody (set_favorite_place_on_profile does that); removing it also takes it off their profile. Only a public venue can be saved, not a private address or a region.

set_favorite_place_on_profile

ChatGPT
Show one of the user's saved places on their profile, or take it off. On their profile, friends who can see where they are see it among their favourites. Ask the user before showing one.

set_gift_draw_exclusions

ChatGPT
For the organiser, before names are drawn: the pairs that must not happen (a partner drawing their partner). The list replaces every exclusion; an empty list clears them. Each entry says that userId will not give to excludedUserId; for both directions pass both.

set_gift_draw_picture

ChatGPT
Give a gift draw a picture, replacing the one it has, or remove it with remove: true (the draw goes back to the plain gift icon). Pass the picture itself as image (base64, up to 700 KB). Everyone in the draw sees it on the draw and in their list of draws. Only the person who started the draw may.

set_gift_draw_questions_open

ChatGPT
Stop whoever gives to the user (or to a child they act for) from sending them anonymous questions in a draw, or allow it again.

set_gift_draw_self_managed

ChatGPT
For a child account the user manages in a draw: let the child handle that draw themselves (the user then no longer sees who the child gives to, nor gets the child's notifications for it), or take it back. A child without an account cannot.

set_gift_draw_theme

ChatGPT
Set or clear the light and/or dark theme a gift draw's screen wears for everyone in it. Each ref is a built-in { kind: "builtin", name } or a custom { kind: "custom", id } (a theme id from list_themes or create_theme), or null to clear that slot; omit a field to leave it unchanged. Only the person who started the draw may. Use list_gift_draws to find the draw id.

set_gift_draw_wishes

ChatGPT
Set what the user (or a child they act for) would like, for whoever draws them: up to 20 short wishes. The list replaces the earlier one; an empty list clears it. A line kept word for word keeps the shop product the user picked for it in the app. Once the names are out, whoever drew them hears about new wishes once, after a quiet period following the last change.

set_gift_draw_wishlist_sharing

ChatGPT
How the user's (or a child's) wishlist in a draw is shared and what it links. public true lets everybody in the draw read it, false only whoever drew them. source links one list the user already keeps, read live: {kind:'list', listId} (a list of their own space, from get_gift_draw_wish_sources) or {kind:'wishlist', groupId} (their wishlist in a group); null unlinks it. A source is the user's own seat only, not as.

set_group_balance_baseline

ChatGPT
Record the user's own view of who mostly carries each area of a group's work (the balance's starting point), for the areas passed; an area answered before is replaced. Areas come from get_group_balance (areas). The answers are the user's own view: ask them. Refused while the balance is paused.

set_group_calendar_subject

ChatGPT
Set which member an outside calendar in a group's agenda is about (a child's school calendar, say), or null for nobody. For whoever added the calendar or a group admin.

set_group_member_role

ChatGPT
Make a member of a group the user administers an admin, or make an admin a plain member again. An admin can do everything the user can, including remove members and delete the group; a group always keeps at least one admin. On a brand run by a team group, its staff are managed from the team instead. Get user ids from get_group.

set_group_picture

ChatGPT
Make a picture the group's picture, replacing the one it has. Pass the picture itself as image (base64, up to 700 KB), or the path of one already sent to a request_upload address (target group_picture). Everyone who can see the group sees it. Only someone allowed to edit the group may (its admins, or its members where the group allows that).

set_group_picture_from_photo

ChatGPT
Make a picture from a group's gallery the group's own picture, replacing the one it has. A public group's picture is shown to anyone. For whoever may change the group's picture. Only a still.

set_group_record_tracks

ChatGPT
Set which of the group's files are in a record, in running order. The list replaces the whole tracklist: a file left out goes back to the group's loose files, and an empty list empties the record. Every id must be a file of this group (up to 100). For the record's creator or a group admin.

set_group_theme

ChatGPT
Set or clear the light and/or dark theme of a group the user administers. Each ref is a built-in { kind: "builtin", name } or a custom { kind: "custom", id } (a theme id from list_themes or create_theme), or null to clear that slot; omit a field to leave it unchanged. Requires group admin. Use list_groups to find the group id.

set_joining_from

ChatGPT
For an event with no place of its own (an online one, a call): show the other guests where the user is joining from, in the user's own words ("Ghent", "the office"), or clear it with null. Everyone on the event sees it. Use the words the user gives, never a guess at where they are.

set_leaderboard_hidden

ChatGPT
Take the user off their friends' achievements leaderboards, or put them back. Showing them lets every friend see how many tiers they earned, so ask before turning it back on.

set_ledger_settle_up

ChatGPT
Mark a ledger ready to pay back, or reopen it. Marking it tells everyone who owes something (a notification, no amounts) and starts a weekly reminder for them; reopening stops the reminders. Nothing is locked either way. For the ledger's creator or an admin of the group, event or chat it is attached to. Ask the user before marking it.

set_linked_album_contributor

ChatGPT
Match one contributor name of a linked album to a member of its group or event, so their pictures show as taken by that member, or (userId null) record that the name is nobody there. A choice made here is never changed by the automatic matching. For whoever linked the album, a group admin or the event's host; the person a name is matched to may only say it is not them (userId null). The member must be in the group or event and not blocked either way.

set_my_journey_days

ChatGPT
Set the days the user themselves is on a trip, when they join late or leave early. Each must sit inside the trip's days widened by 2 either side (VALIDATION_TRIPS_JOURNEY_DATES otherwise); null goes back to the trip's own day. Their route records on exactly these days, so moving a day out records the road there or back. Only for a trip the user is on.

set_now_playing_sharing

ChatGPT
Turn on or off showing friends what the user is listening to. On, the friends their settings allow see the track their phone reports; off, it disappears at once. Either way the track showing now is cleared. Ask the user before turning it on.

set_photo_credit

ChatGPT
Say who took a picture or video in a group's or an event's gallery, when that is not the person who posted it: it is then shown as by them, while the poster keeps it. Only the poster can set or change it, and only to someone in that group or event. Pass null to remove the credit, which the credited person may also do for themselves. Pass exactly one of eventId or groupId.

set_photo_profile_adds

ChatGPT
For a picture the user posted: allow tagged people to put it on their own profile, or stop it. Stopping also removes the posts tagged people already made from it, at once and without telling them, so that needs confirm: true.

set_photo_subtitles

ChatGPT
Add a subtitle track to a video in an event's or a group's gallery, or replace the track the video already has in that language. Pass the whole subtitle file as text, in SubRip (.srt) or WebVTT (.vtt) form; timings and words are kept, styling and positioning are not. Everyone who can watch the video can turn the track on. Only whoever posted the video may do this. Pass exactly one of eventId or groupId. The answer lists the video's tracks after the change.

set_place_history_lodging

ChatGPT
Choose whether hotels, hostels and campsites show in the user's own place history and recaps. Off hides the ones already recorded as well; nothing is deleted.

set_place_tip

ChatGPT
Write the user's tip at a place ("order the stoofvlees"), replacing the one they had there. friends shows it to their friends on that place; only_me keeps it to the user. Use the user's own words.

set_planning_share

ChatGPT
Share the user's own To-do list, or one of their other lists (list_shopping_lists on their spaceId), with named friends or with one private group they are in, or make it private again. It replaces who that list is shared with. The people it is shared with can see it and tick things off. A task is not shared: move_task puts it in a group. Tell the user exactly who will see what and ask before sharing or widening.

set_plus_ones

ChatGPT
Set the people the user brings along to an event they are going to. The call states the WHOLE list: an entry with an id keeps that plus-one (renamed to its name), one without adds one, and one left out is removed; [] brings nobody. Refused when the host allows fewer, asks for names, the event is full, or its answer-by date has passed. The current list, with ids, is in get_event.

set_polarsteps_audience

ChatGPT
Change who the steps of one followed Polarsteps trip are posted to: every friend, or only the friends and groups named. It covers the trip's announcement too. A wider reach the trip already has is kept. applyToPosts: true also re-addresses the steps already posted; say so to the user, since people may have seen those.

set_polarsteps_auto_post

ChatGPT
Pause or resume posting the new steps of one followed Polarsteps trip to the user's friends.

set_shopping_item_bought

ChatGPT
Tick an item on a group's shopping list off as bought, or put it back on the list with bought: false. Returns the whole list.

set_shout_audience

ChatGPT
Narrow who can still find one of the user's own shouts, live or over: custom limits it to the friends and groups named. It notifies nobody, and people who were already told about the shout or joined it keep it. tiers drops the named list, and does NOT bring back an "all my friends" audience that custom switched off: after it, the shout is found by the people invited by name or through a group. On a live shout, update_shout with widen: { friends: true } is what reaches all friends again.

set_status

ChatGPT
Set the user's status — "at work", "up for drinks", "at Café Belga" — until a time you choose. It replaces any status they have. Their friends see it on the user's card: the friends their Location privacy settings let see them, minus anyone they share less with or who muted them. Naming a venue (bar, cafe, restaurant, shop, beach, outdoors, festival, or other with your own words) does more: while it is live and the user is at a public place, the people their Location privacy setting "When I post a status saying where I am" covers see where they are. A status naming where they are also ends early once the phone moves away from where it last reported, as in the app. Like a status set in the app, it can match them with friends nearby who are up for the same thing, which can notify those friends. Confirm the wording and the end time with the user. Pass open: true for an open invitation ("up for…") that friends can join; otherwise give a location or at least one activity.

set_strava_auto_post

ChatGPT
Choose whether each activity the user finishes on Strava is posted to their friends on Woosh. On means every future activity reaches them without asking again: confirm that with the user first.

set_suggestion_hidden

ChatGPT
Stop Woosh suggesting someone to the user as a friend, or let it suggest them again. Nobody is told, and it is not a block. Get user ids from friend_suggestions or list_hidden_suggestions.

set_synced_album_credit

ChatGPT
Set who took the pictures of an album an iPhone syncs into a group or an event, or clear it (userId null, so they show as taken by whoever syncs it). Every picture the album already added is re-credited, and new ones carry it too; the answer says how many changed. For whoever syncs it, a group admin or the event's host; the person credited may clear it (userId null) to take their own name off. The member must be in the group or event and not blocked either way.

set_update_audience

ChatGPT
Change who one of the user's own updates is shown to: every friend, or only the friends and groups named. It replaces the whole audience, takes effect at once and notifies nobody. An update about one of the user's watched trips moves that trip's audience with it. Tell the user who will see it and ask before widening it.

set_update_commenting

ChatGPT
Turn new comments off (or back on) under one of the user's own updates. Off, nobody can add one, the user included; the comments already there stay.

set_work_days_shared

ChatGPT
Show the user's own work days in a group's agenda, so the others there see when they work, or stop showing them. Tell the user who is in the group before turning it on.

set_workout_privacy_radius

ChatGPT
Change how much of a workout's route is hidden from other people around the user's saved places (home, work, …). It applies to every workout posted from now on. A smaller radius shows more of where the user starts and ends, and 0 hides nothing — confirm with the user before making it smaller.

set_workout_privacy_zone

ChatGPT
Choose whether a workout's route is cut around one of the user's saved places, by the place's id from get_workout_settings' zones. It applies to every workout posted from now on. Turning a place off shows routes that start or end there in full — confirm with the user before turning one off.

share_calendar_with_group

ChatGPT
Show one of the user's own outside calendars (from list_my_calendars) in a group's agenda: full shows what each entry is, busy only that the user is busy then, and off stops sharing it there. Everyone in the group sees it. Tell the user who is in the group and which detail before sharing.

share_event_photo_to_chat

ChatGPT
Post one of the user's own photos from an event's gallery as a message in a chat that belongs to that event (one the user is in). Everyone in that chat sees it, as a message from the user. Only the photo's own uploader can, and only into that event's chats.

share_inbox_note

ChatGPT
Choose who reads one of the user's own inbox notes: 'private' (only the user), 'people' (the members named in userIds) or 'group' (every member). This REPLACES who could read it before.

share_theme

ChatGPT
Share a theme the user made with a friend, who can then use and copy it but never change it; or stop sharing it. Stopping does nothing while that friend is using the theme: the answer then says retained: true.

share_trip_entry

ChatGPT
Share an entry the user wrote with another trip whose days it falls on, for when two groups travelling separately meet up for a while. The other trip must be one the user or a friend of theirs is travelling on. On a trip the user is on it shows at once; on anyone else's trip it waits until one of that trip's people accepts it. The entry stays on the user's own trip and is edited there. The other trip's people, and whoever can read that trip, then see it. A trip that already said no cannot be asked again.

share_update_again

ChatGPT
Post one of the user's archived updates again as a NEW 24-hour update, with the same words, pictures and audience. The archived one stays in the archive, and every call posts another, so call it once. Ask the user first.

sign_out_child_device

ChatGPT
Sign a child the user manages out of one device (a device id from list_children), or out of every device when no deviceId is passed. The child has to be paired again, in the app, to get back in.

skip_agenda_occurrence

ChatGPT
Remove a single occurrence of a repeating appointment in a group's agenda, for everyone. There is no way to put it back, and the last remaining occurrence cannot be removed (cancel the appointment instead). Removing the first one moves the appointment to its next day, in linked calendars too.

skip_task

ChatGPT
Skip a REPEATING task's open occurrence: it closes without counting as done and earns no points, and the next occurrence is written (answered as next). A task that does not repeat is refused. Undo it with reopen_task.

snooze_task

ChatGPT
Move an open task with a day to a later day, for this time only: a repeating task keeps its later days. A repeating task can be snoozed only to a day before its next occurrence (nextDueOn in list_tasks); that far or further is refused with GROUP_TASK_SNOOZE_PAST_NEXT, so use skip_task instead. To change a task's day for good, use update_task.

start_chat_photo_prompt

ChatGPT
Put a picture clock on a chat: everyone in it is asked, daily or hourly, to take a picture right now, and the answers post into the chat. For anyone in the chat. Not on an event's chat (use start_event_photo_prompt), a group's main chat (use start_group_photo_prompt) or a public room. Tell the user how many people that notifies and how often before calling.

start_dm

ChatGPT
Open the one-to-one conversation with a friend, creating it if there is none, and return its chat id (and whether it is end-to-end encrypted). Use send_message with the id to write in it. Friends only.

start_event_photo_prompt

ChatGPT
Put a picture clock on an event: from then on every guest who has not declined is asked, daily or hourly, to take a picture right now, by notification, until the event ends (an hourly clock runs for at most 24 hours). For a host, and not on a public event. Tell the user how many people that notifies and how often before calling.

start_group_photo_prompt

ChatGPT
Start a picture clock for a group: every member is asked, daily or hourly, to take a picture right now, and the answers land in the group's Moments album, made if there is none. It puts the whole group in that album's chat. For a member of a private group. To put an album the group already has on a clock, pass its albumId. Tell the user how many people that notifies and how often before calling.

start_shopping_trip

ChatGPT
Tell a group the user is going to the shop, so the others can add what they need. The members get a push (at most once per half hour); the trip shows on the list for two hours or until end_shopping_trip. Only call it when the user says they are going. It is for the group's own shopping list. Returns the shopping list.

stop_album_photo_prompt

ChatGPT
Take the picture clock off an album. The album, its chat and its pictures stay. For the album's creator or a group admin.

stop_chat_photo_prompt

ChatGPT
Take the picture clock off a chat. The chat and every picture in it stay. For anyone in the chat.

stop_event_photo_prompt

ChatGPT
Take the picture clock off an event. The gallery and every picture in it stay. For a host.

stop_following_polarsteps_trip

ChatGPT
Stop following a Polarsteps trip: no more steps are posted and Woosh forgets its link. What was already posted stays. Following it again needs the trip's link, in the app.

stop_journey_tracking

ChatGPT
Stop recording the user's own route on a trip. With at (an ISO time, e.g. the homeArrivedAt list_current_journeys gives, or when they say they got home) the route ends there and what was recorded after it is removed; an at on a day after their last day moves their last day to it and fills the road home from their history. Without at the journey just ends now, with nothing filled in. Starting again is done in the app. Requires confirm: true, so only call it once the user has said to stop.

stop_shopping_repeat

ChatGPT
Stop an item from coming back on a group's shopping list by itself (a repeat from get_shopping_list's repeats). An item already on the list stays. It can be set up again with update_shopping_item.

stop_synced_album

ChatGPT
Stop another member's iPhone adding an iCloud shared album's pictures to a group or an event. Pictures already added stay; the phone adds nothing more unless that member connects the album again. For a group admin or the event's host; list_synced_albums lists the albums and who syncs each.

suggest_feature

ChatGPT
Pass an idea for the app on to the Woosh team. It is stored for the team only, encrypted, and the user hears back in their Ask Woosh chat when it is picked up and when it ships. Write the description in the user's own words, about the app: leave out other people's names, places and messages, and anything else read about someone else.

tag_people_in_photo

ChatGPT
Tag friends of the user in a picture the user can see. Each tagged friend gets a notification, and the tag shows to everyone who can see the picture. Anyone who can see an event or group album photo can tag in it; a profile post's or a shout's picture only its author. The user can tag only their own friends, and only friends who allow being tagged and can see the picture; one name that cannot be tagged refuses the whole call. At most 20 tags per picture. Show the user who will be tagged first.

tick_shared_list_item

ChatGPT
Tick an item on a list shared with the user off as bought, or put it back with bought: false. Returns the list.

unblock_brand

ChatGPT
Take a block off a brand page. The follow it ended is not restored.

unblock_user

ChatGPT
Take a block off a person. A friendship the block ended is not restored.

undo_event_check_in

ChatGPT
Mark a guest, or one of their plus-ones, as not arrived after all. For a host or a door checker.

unpin_event_from_group

ChatGPT
Remove an event's pin from a group: it no longer shows on that group's page. Members already invited stay invited, and the thread the pin gave that group is deleted when nobody wrote in it and otherwise stays as an ordinary group chat. For the event's host, whoever pinned it, or a group admin.

unshare_trip_entry

ChatGPT
Take back an entry the user wrote from another trip it was shared with or offered to. It stays on the user's own trip. Requires confirm: true.

update_album

ChatGPT
Change one of a group's own albums: its name, its cover (one of its own pictures, or null for the first in order), or whether it shows on the group's public page. Only the fields passed change. Renaming and the cover are for the album's creator or a group admin; the Moments album cannot be renamed. onPublicPage is for group admins of a public group only, and true shows every picture in the album to anyone on the internet, including any that get_album does not list here, so it needs confirm: true.

update_album_photo_prompt

ChatGPT
Change when an album's picture clock asks. The schedule is replaced: pass the cadence and every time that should hold. Only captureMode is kept when left out. For the album's creator or a group admin.

update_chat

ChatGPT
Change a chat the user runs (its creator, or an admin of its group): its name, or how it works. Only the fields passed change. A direct message and an event's own chat cannot be renamed. isPublic: false makes a group's chat private to its current members and cannot be turned back, so it also needs confirm: true. posting, isAnnouncements, groupPinned and onPublicPage are a group admin's to set; onPublicPage shows the chat on a public group's page to anyone, so ask the user first.

update_chat_photo_prompt

ChatGPT
Change when a chat's picture clock asks. The schedule is replaced: pass the cadence and every time that should hold. Only captureMode is kept when left out. For anyone in the chat.

update_event

ChatGPT
Edit an event the user may edit (its host, or any member when the event lets members edit): its title, description, start/end times, venue, category or what it is about. Only the fields passed change; omit a field to leave it alone. Times are ISO 8601 and endsAt must stay after startsAt. The venue is a Woosh placeId from search_places / resolve_place; pass latitude and longitude only for somewhere that has no place. It also takes the organiser, translations of the title and description, and, for an agenda appointment, the switch to and from a social event and how it repeats. Guests see the change on the event at once and their synced calendars follow; no push is sent. visibility changes who can see it, as the app's edit screen does — ask the user before widening it: "public" makes it discoverable by anyone. On an event that belongs to a group, any visibility other than private takes it out of the group (it stays pinned in the group's list and its guest list opens up), which only a host or an admin of that group may do. A festival day or line-up act takes its festival's audience and is refused, and an event hidden from someone cannot be made public. Use list_events or get_event to find the event id.

update_event_location

ChatGPT
Change a point on an event's venue map, for the event's host. Only the fields passed change; a new position needs both latitude and longitude.

update_event_photo_prompt

ChatGPT
Change when an event's picture clock asks. The schedule is replaced: pass the cadence and every time that should hold. Only captureMode is kept when left out. For a host.

update_event_settings

ChatGPT
Change the settings of an event the user hosts. Only the fields passed change. Four of them change who can see something, so ask the user before widening them: openInviteLink (anyone holding the event's link can open it), showHostPublicly (names the host on a public event), guestListVisibility and guestsCanSharePresence. Who may invite and who may edit are 'admins' (the hosts) or 'members' (any guest). requireApproval makes joiners ask first. The *Enabled switches turn a part of the event on or off for everyone in it.

update_friend

ChatGPT
Change the user's own settings for one friend: mute them (their notifications and feed items stop reaching the user), favourite them, or follow them (extra notifications when they are back on the map or nearby). Only the fields passed change, and the friend is told nothing. Muting unfollows and following unmutes, so not both true at once. Hiding the user's location from a friend, or sharing less with them, is done in the app.

update_gift_draw

ChatGPT
Change a draw's name, budget, exchange day or the language its invites are written in, or attach a draw to the event its presents change hands at: a draw attached to nothing yet (which lets that event's people open it), or a group's draw to an event in that same group. Everyone in the draw, and whoever joins it later, is then invited to the event. Only the fields passed change. Pass budgetMinor: null to clear the budget, and inviteLanguage: null to write invites in the organiser's own app language. membersCanAdd lets everyone in the draw add people and their own children too (off: only the organiser adds). drawAt schedules the draw: at that moment the names are drawn by themselves and everyone is told, as if the organiser pressed draw; null clears it. For the organiser.

update_group

ChatGPT
Change the name and/or description of a group the user may edit (an admin, or any member when the group lets members edit). Omit a field to leave it alone.

update_group_balance_settings

ChatGPT
Change how a group's balance is measured, for everyone in it. Only the fields passed change. signalWeeks: after how many lopsided weeks in a row it speaks up (1 to 8). agreedSplit: the division they agreed on, one whole percentage per person in the balance adding up to 100, or null to go back to an even split. includedMinorIds: the under-18s who count as full participants (the whole list; a child counted in has no badge board). excludedAreaIds: the areas left out of the balance (the whole list). The others in the group see the change, so check with the user first.

update_group_recommendation

ChatGPT
Change the category or the reason of a recommendation the user added, or the name of one written by name (a place's name is the place's). Anybody else's is refused.

update_group_record

ChatGPT
Change a record's name or year (null clears the year), or whether it shows on the group's public page. Only the fields passed change. For the record's creator or a group admin; onPublicPage is for group admins of a public group only, and true lets anyone on the internet open every file in it, including any that get_group_record does not list here, so it needs confirm: true.

update_group_settings

ChatGPT
Change the settings of a group the user administers. Only the fields passed change. Who may invite and who may edit the name are 'admins' or 'members'; who may pin events is 'hosts' (an event's own host) or 'members'. isPublic makes the group findable by anyone in Discover, or private again — ask the user before widening it; a private group can be made public only while the user is its sole member. requireApproval makes joiners ask first; selfJoinEnabled: false closes joining by oneself entirely, so membership is by invitation only — private groups only, since a public group must let people join or ask to; shareLinkEnabled turns the group's share link on or off. The *Enabled switches turn a part of the group on or off for everyone in it. purpose says what a private group is for (it decides which tools the group page offers and what its Overview leads with); it can be switched but not cleared.

update_profile

ChatGPT
Change the user's name, nickname, bio, interests, gender, app language, notification preferences, app layout, calendar sync, or the app's and their profile's theme. Only the fields you pass change. Names, bio and interests are shown to the people the user's identity privacy settings allow; the nickname is what anyone who cannot see their name sees. Privacy, location and who-can-contact-me settings are not changed here — they stay in the app, as do pictures and the birth date. A new email address is mailed a confirmation link.

update_reshout

ChatGPT
Change who a shout the user passed on reaches, or take the pass-on back with none. Nobody is notified, and people who already joined stay. Taking it back stops the user's friends reaching the shout through this pass-on; the user stays on the shout.

update_shopping_item

ChatGPT
Change an item on a group's shopping list, or on the user's own shopping list (their To-do space): its name, quantity, note, shop section or store, or how it repeats. Only the fields passed change. A repeating item comes back on the list by itself every so often; repeat: null stops that and leaves the item where it is. Renaming it to a name already on the list is refused. Returns the whole list.

update_shout

ChatGPT
Edit one of the user's own shouts. This REPLACES what the shout says: pass everything it should say afterwards, as for create_shout, because a field left out is cleared (the title, the activities) and anything this tool cannot set is cleared with it (a place category, a "until I leave" condition, a venue confirmed in the app). The picture stays. A live shout moves to placeId: one made in the app with no meeting place gets this one, and loses the venue name it showed. People who already joined see the new place and end time and are not told. Nobody is notified and the audience is not touched, unless widen adds people: they are notified, and an audience can only grow here. On a shout that is over it corrects the record without changing its place or times, unless revive: true brings it back to life until expiresAt. Read the shout first (list_shouts or get_event) and confirm the result with the user.

update_task

ChatGPT
Edit a task in a group the user belongs to. Only the fields passed change; omit a field to leave it alone. Anyone newly added to assigneeIds is notified. To tick a task off use complete_task instead.

update_task_category

ChatGPT
Rename a category and/or set who carries it. Only the fields passed change. ownerIds REPLACES who carries it ([] for nobody): group members the user may name, never a child account, and none at all in a personal area.

update_task_settings

ChatGPT
Set the time of day a new task reminder opens on for the user: sameDay for a reminder on the due day, before for one on an earlier day. Minutes past midnight on their own clock (480 = 08:00); null goes back to Woosh's default. Existing reminders are not moved.

update_theme

ChatGPT
Update a custom theme the user owns (found via list_themes) — rename it, change its mode, recolor it, adjust its overrides / font / gradient / app icon, or give it (or take away) the opposite ground via altColors. Every field is optional: send only what you want to change; omitted fields are left untouched. mainColors and altColors, when sent, must be the full set of 11 core colors; altColors null removes the second ground and everything describing it. Once a theme carries both grounds, changing mode requires sending mainColors AND altColors in the same call — mode says which ground mainColors holds, so a flip relabels both palettes and either one left unsaid loses a ground. Colors are hex (#rrggbb) or rgb()/rgba() strings. Fails if the theme isn't owned by the user.

update_trip

ChatGPT
Change a trip the user started: the group it is in. Only the fields passed change. A trip is its event: its name, days and privacy are the event's, changed with update_event, and changing them here is refused (TRIPS_DETAILS_FOLLOW_EVENT for name and days, TRIPS_PRIVACY_FOLLOWS_EVENT for visibility) — passing the values it already has is accepted and changes nothing. name, startsOn, endsOn and visibility apply only to a trip left without an event by an older deletion. Only the person who started a trip may edit it.

update_trip_entry

ChatGPT
Edit an entry the user wrote on a trip: its day, title, text or place. Only the fields passed change, and its pictures are left as they are. Someone else's entry is refused.

update_trip_packing_item

ChatGPT
Change an item on a trip's packing list: rename it, say who brings it, or tick it as packed. Only the fields passed change.

update_trip_plan_item

ChatGPT
Change an item on a trip's plan: its name, note, day, time or place, or tick it off as done. Only the fields passed change. Taking its day away takes its time with it.

update_wish

ChatGPT
Change a wish on the user's own wishlist in a group, or on that of a child account they manage there. Anybody else's wish is refused (GROUP_WISHLIST_NOT_YOURS). Only the fields passed change; null or an empty string clears url, price or note. Returns the group's wishlists.

vote_date_poll

ChatGPT
Set which of a date poll's options work for the user. The call states their WHOLE answer: an option left out is unmarked, and [] takes every mark back. Option ids come from get_event's date poll.

vote_in_poll

ChatGPT
Cast, change or retract your vote in a poll someone sent to a chat you belong to. Use read_chat to find the message and its poll: each option carries an id, which is the optionId this takes. Answers with the recomputed tally, so you read the authoritative counts rather than guessing at your own increment. By default voting is a toggle — voting again for the same option takes the vote back; pass mode to state an end state instead, which is what a repeated or unattended run wants. On a single-answer poll a new vote replaces the previous one. Where the client can show it, the result is also drawn as the poll card.

vouch_for_recommendation

ChatGPT
Second a recommendation on a group's list (vouched: true) or take the user's vouch back (false). Nobody is notified.

who_is_nearby

ChatGPT
Which of the user's friends are near them right now — around the user's own current position (if recent) or one of their saved places — e.g. "who is within 500 m of me?" or, with placeKind, "which friends near me are in a bar?". Lists only friends whose live location the user can already see on their Woosh map, with a rounded distance, how long ago their position was updated, and — exactly as the app shows the user — the place they are at and their status. A friend who has hidden their place from the user shows none and never matches placeKind. The radius is rounded up to 500 m or a whole km and capped at 5 km; positions older than an hour are left out. Never a coordinate or an address, and nobody is notified.

whoami

ChatGPT
Returns the authenticated Woosh user's id and the access granted to this connection (client and scopes). Useful to confirm a connection works.

withdraw_photo_reshares

ChatGPT
Take back the user's own reshares of pictures from a group or an event. The pictures themselves stay where they are.

woosh_guide

ChatGPT
How the Woosh app itself works: what a feature does, where a screen or setting is, and who can see what. Use it for any 'how do I', 'where is', 'can I' or 'what does this do' question about the app, before saying something cannot be done, and to tell the user where in the app to do what the other tools cannot. It describes the app, never the user's own data. Screen and button names are the English ones; say them in the user's language. Topics: navigation (tabs, avatar menu, Tools, where every settings screen is); friends (adding, invite link, requests, favorite, mute, circles, remove, block); location-privacy (default, hide from someone, exceptions, show or hide for a while, last known spot); profile-privacy (who sees my posts and online status, who can message, add or find me); events (create, audience, RSVP, invite, hosts, join requests, tickets, cancel); shouts (spontaneous plans now: start, audience, expiry, shake to shout); chats (DMs, group chats, polls, edit/delete, archive, mute, lock, encryption); groups (create, public vs private, joining, admins, settings, albums, leave, delete); household (tasks, shopping list, week menu, wishlists, calendar, inbox notes, responsibilities); planning (personal To-do space, work schedule, calendar subscriptions, Google Calendar); money (splitting costs, settle up, payment details, gift draws); home-and-feed (feed, posts, map filters, camera, notifications inbox, recaps, widgets, shortcuts); safety (SOS alert, block, report, moderation appeals); places-and-travel (your places, privacy places, check-ins, explorer map, place finder, trips, now playing, Strava, achievements); account (plans and AI budget, notifications, language, theme, devices, sign out, delete, children); ask-woosh (what this assistant can and cannot do, confirmations, limits). With no topic it returns an overview of the app and its navigation.

woosh_skills

ChatGPT
Step-by-step playbooks for jobs that take several Woosh tools. When the user's request matches one, read it first and follow its steps. Skills: catch-up (Use when the user asks what they missed in Woosh, what is new, or what needs an answer from them - unread chats, mentions, friend requests, invitations and plans coming up. Reads only, and sums up instead of listing everything.); plan-a-night-out (Use when the user wants to get friends together in Woosh - tonight or on a later day. Picks between a shout for right now, a poll in a group chat when the day is still open, and an event with invitations when the plan is set. Confirms the place, the time and who it goes to before anything is sent.); plan-with-friends (Use when the user wants to plan or catch up with friends in Woosh - upcoming events, RSVPs, what a group chat decided, polls, and shared expenses. Reads first, and confirms with the user before any change other people will see.); weekly-household-reset (Use when the user wants to get their household's week in order in Woosh - what is on the agenda, which tasks are due, what to eat, and the shopping list that follows from it. Works on one of the user's private groups.). With no skill it lists them.

Capabilities

InteractiveWrites

Example Prompts

Click any prompt to copy it.

Similar Apps