|
GET
|
/v1/tools/get_convert_currency |
Converts a currency amount |
|
GET
|
/v1/tools/get_geoip_data |
Returns geolocation data from an ipaddress |
|
POST
|
/v1/tools/set_mouseflow_recording |
Enable or disable Mouseflow recording for the current user or for everybody. Requires AccessSpecialFunctions. |
|
GET
|
/v1/community/get_administration_board_options |
Searches live discussion boards for the v2 Administration live-board editor. |
|
GET
|
/v1/community/get_board_about_post_candidates |
Finds board-local top-level posts that can be selected as the board
profile About post. |
|
GET
|
/v1/community/get_chat_actions |
Returns every currently executable action button registered for a chat. |
|
GET
|
/v1/community/get_chat_add_participant_options |
Returns user alias options that the acting user may add to a chat.
Chat hosts only see users who accepted a 1:1 chat with the host. Global
community administrators can search all non-deleted users. The write
endpoint repeats these checks; this endpoint is only for autocomplete UX. |
|
GET
|
/v1/community/get_chat_messages |
Returns the most recent messages for a chat the calling user has access to. |
|
GET
|
/v1/community/get_chat_summary |
Returns an overview of a chat, including participant and media totals. |
|
GET
|
/v1/community/get_chats |
Returns the chats and chat groups visible to the requesting user. |
|
GET
|
/v1/community/get_forum_feed |
Returns one page of posts attached to a single community forum board. |
|
GET
|
/v1/community/get_forum_profile |
Returns public profile metadata for a community forum board. |
|
GET
|
/v1/community/get_location_about_post_candidates |
Finds top-level public community posts connected to a location that can
be selected as the location profile About post. |
|
GET
|
/v1/community/get_location_feed |
Returns one page of public community posts attached to a location profile.
Public-by-design: public location profile feeds are readable by anonymous
viewers; restricted boards are still filtered by Community::GetPostsByBoardID. |
|
GET
|
/v1/community/get_newsfeed |
Returns one page of newsfeed posts as structured JSON. |
|
GET
|
/v1/community/get_newsfeed_comment |
Returns one authorized serialized newsfeed comment after a live comment nudge. |
|
GET
|
/v1/community/get_newsfeed_post |
Returns one full newsfeed post with its direct comments and subcomments expanded. |
|
GET
|
/v1/community/get_newsfeed_replies |
Returns the first N replies for a post (direct children only, oldest-first). |
|
GET
|
/v1/community/get_newsfeed_reply_example |
Returns short AI-generated example replies for the v2 post detail reply composer.
The examples are display-only typewriter prompts. They are never submitted
automatically and are cached by post content, viewer role, and active locale. |
|
GET
|
/v1/community/get_post_action_permissions |
Returns call-time action permissions for one newsfeed post.
This intentionally checks only the selected post, not every feed card |
|
GET
|
/v1/community/get_post_actions |
Returns visible action buttons for one community post. |
|
GET
|
/v1/community/get_post_forum_move_options |
Returns same-intent forum choices for moving a top-level community post. |
|
GET
|
/v1/community/get_post_presence |
Returns signed-in users who have viewed a thread, plus live socket presence for that thread.
Public-by-design: public community boards expose thread viewer identity to readers of that
thread; restricted boards remain gated except for the selected board About thread. |
|
GET
|
/v1/community/get_post_reposts |
Returns people who reposted a visible community post. |
|
GET
|
/v1/community/get_reaction_options |
Returns the emoji reaction allowlist used by posts and chat messages. |
|
GET
|
/v1/community/get_reactions |
Returns emoji reaction totals for a post or chat message. |
|
GET
|
/v1/community/get_repost_composer_context |
Returns the context required to open the composer for a rich repost.
The source post is serialized through the same newsfeed post serializer |
|
POST
|
/v1/community/set_add_post_media |
Adds uploaded media to a post owned by the current user. |
|
POST
|
/v1/community/set_apply_for_board_president |
Applies to lead a community board that does not currently have a president. |
|
POST
|
/v1/community/set_board_about_post |
Sets or clears a community board profile About post and optional image
selections from that post's attached media. |
|
POST
|
/v1/community/set_board_president |
Assigns, clears, approves, or rejects a board president. |
|
POST
|
/v1/community/set_board_secretary |
Assigns or clears a board secretary and delegated board-scoped capabilities. |
|
POST
|
/v1/community/set_chat_action |
Executes a chat action button owned by the calling user. |
|
POST
|
/v1/community/set_chat_add_participant |
Adds one user to a chat.
Hosts may add only users who accepted a 1:1 chat with that host. Global
community administrators may add any non-deleted user by alias. Existing
participants return success without writing a duplicate access row. |
|
POST
|
/v1/community/set_chat_archive |
Archives a chat visible to the calling user.
|
|
POST
|
/v1/community/set_chat_message |
Sends a message into a chat the calling user has access to. |
|
POST
|
/v1/community/set_chat_minimized_unread_dismissal |
Saves the caller's minimized unread chat dismissal through the latest |
|
POST
|
/v1/community/set_chat_mute |
Mutes or unmutes one chat for the requesting user. |
|
POST
|
/v1/community/set_chat_name |
Renames a chat. Only the chat host (Creator-ATUser_ID) may rename. |
|
POST
|
/v1/community/set_chat_pin |
Pins or unpins a chat for the requesting user's v2 chat lists. |
|
POST
|
/v1/community/set_chat_read |
Marks every unread notification belonging to this chat as Read for the |
|
POST
|
/v1/community/set_chat_typing |
Relays ephemeral chat typing presence to other participants. |
|
POST
|
/v1/community/set_create_poll_answer_for_question |
Create a new answer option for the Question |
|
POST
|
/v1/community/set_create_poll_question_for_post |
Create a new poll question for the Post |
|
POST
|
/v1/community/set_create_post |
Composer endpoint - creates a post (or top-level reply) in a board.
Wraps Community::CreatePost so iOSAndroid and the v2 web client
share one path. Throttled to one post per 15 seconds per session
(same as the legacy APIcreate_post.php). |
|
POST
|
/v1/community/set_create_review |
Creates a verified review post for a location or a post-sale counterparty review request. |
|
POST
|
/v1/community/set_delete_post |
Deletes a community post when the viewer has delete rights. |
|
POST
|
/v1/community/set_location_about_post |
Sets or clears a location profile About post and optional image
selections from that post's attached media. Any signed-in user may set
the selected intro; only the post author may change the selected post
title. |
|
POST
|
/v1/community/set_newsfeed_filter_state |
Saves the signed-in viewer's per-feed v2 newsfeed filter state. |
|
POST
|
/v1/community/set_post_action |
Executes a visible action button for one community post. |
|
POST
|
/v1/community/set_post_forum |
Moves a top-level community post into another forum with the same composer intent. |
|
POST
|
/v1/community/set_post_public_release_date |
Sets or clears the public release date for a top-level community post. |
|
POST
|
/v1/community/set_reaction |
Sets, switches, or removes the caller's emoji reaction. |
|
POST
|
/v1/community/set_record_post_big_view_open |
Records that the viewer opened the immersive newsfeed post view. |
|
POST
|
/v1/community/set_record_post_view |
Records that the viewer has seen a newsfeed post. |
|
POST
|
/v1/community/set_report_post |
Reports a community post to moderators. |
|
POST
|
/v1/community/set_submit_vote_for_question |
Saves a poll answer |
|
POST
|
/v1/community/set_thumbs_up |
Toggles the current user's legacy thumbs-up reaction on a post. |
|
POST
|
/v1/community/set_track_chat_mention_click |
Records a click on a venueuser mention inside a chat message.
Used by the v2 chat dock before normal navigation. Venue clicks can make
the sender eligible for the existing short direct-hire bid window. |
|
POST
|
/v1/community/set_track_mention_click |
Records a click on a post's tagmention chip. |
|
POST
|
/v1/community/set_url_preview |
Fetches, sanitizes, and stores a URL preview for an authenticated rich-input composer action.
The preview fetch happens only on behalf of the creator before send. The
saved card stores titledescriptionsite metadata and, when available, a
locally cached image ATMedia record. Readers render only persisted
metadatalocal media and never fetch remote preview assets. |
|
GET
|
/v1/external_messaging/get_billing_settings |
Returns billing settings and the selected default AT funding account. |
|
GET
|
/v1/external_messaging/get_channels |
Returns supported external messaging channels. |
|
GET
|
/v1/external_messaging/get_delivery_health |
Returns delivery health counters for the API user. |
|
GET
|
/v1/external_messaging/get_events |
Returns the event timeline for a message. |
|
GET
|
/v1/external_messaging/get_identities |
Returns sender identities owned by the API user. |
|
GET
|
/v1/external_messaging/get_identity_dns_status |
Returns expected and last observed DNS state for an identity. |
|
GET
|
/v1/external_messaging/get_message |
Returns a queuedsent message by numeric ID or UUID. |
|
GET
|
/v1/external_messaging/get_messages |
Returns recent messages for the API user. |
|
GET
|
/v1/external_messaging/get_suppressions |
Returns active suppressions for the API user. |
|
POST
|
/v1/external_messaging/set_billing_account |
Sets the default AT account used to pay for accepted production messages. |
|
POST
|
/v1/external_messaging/set_identity |
Creates an email sender identity and returns the DNS records needed for verification. |
|
POST
|
/v1/external_messaging/set_identity_verify_dns |
Checks DNS records for an email sender identity and marks it verified when required records are present. |
|
POST
|
/v1/external_messaging/set_mta_event |
Records an internal first-party MTA event for a message. |
|
POST
|
/v1/external_messaging/set_send |
Queues an external message. Phase one supports email only.
Production email requires a verified sender identity and is charged after
the first-party MTA records smtp_accepted. Sandbox messages are free and
do not submit to the MTA. |
|
POST
|
/v1/external_messaging/set_suppression |
Adds a user-level suppression for a recipient. |
|
POST
|
/v1/user/get |
Searches all user aliasses |
|
GET
|
/v1/user/get_alternative_access_userlist |
List of users who can access this account |
|
GET
|
/v1/user/get_alternative_session_lifetime_presets |
Returns a commonly used list of preset values |
|
GET
|
/v1/user/get_community_verification_center |
Returns the acting user's community verification center payload.
This powers the native v2 account verification center. The invitee
verification flow remains the existing verify{uuid} route; this
endpoint only exposes the owner's current status, share link, editable
verification details, and verifier strength list. |
|
GET
|
/v1/user/get_details |
Returns details of the acting API User |
|
GET
|
/v1/user/get_evaluate_permission |
Returns the current value of the requested permission |
|
GET
|
/v1/user/get_profile |
Returns a public profile payload for a user, suitable for rendering a
profile screen or sharing externally. The response is viewer-aware:
sensitive metrics (chargeback rate, vendor balances, U2U transfers, ...)
are only included when the calling API user has the
AccessSpecialFunctions permission. Anonymous callers receive the public
subset.
Public-by-design: profile pages are public unless the owner has set a
visibility threshold; privatesensitive fields are gated before they are
added to the response. |
|
GET
|
/v1/user/get_profile_about_post_candidates |
Finds public community posts that can be selected as the current user's
profileAbout Me post. |
|
GET
|
/v1/user/get_profile_about_post_profiles |
Returns the public profiles currently using a community post as their
profileAbout Me post.
Public-by-design: the newsfeed already exposes the aggregate profile-use
count on public post cards. This endpoint only returns profiles the
current viewer is allowed to open under the profile visibility settings. |
|
GET
|
/v1/user/get_profile_additional_metrics |
Returns the expanded, non-hero metrics for a profile.
Public-by-design: this mirrors the public profile metric rules unless the
owner has set a visibility threshold. Sensitive metrics remain gated by the
existing AccessSpecialFunctions checks inside LoadProfileContent. |
|
GET
|
/v1/user/get_profile_media_gallery |
Returns image media for the public profile gallery from the selected
About Me post only.
Public-by-design: profile pages are public unless the owner has set a
visibility threshold. Locked profiles return an authorization error. |
|
GET
|
/v1/user/get_profile_sales_history |
Returns v2 profile sales history scoped for the acting viewer.
AccessSpecialFunctions users see all buyerseller trades for the target user. Normal users see only trades where they were the counterparty, or all of their own trades when inspecting their own profile. |
|
GET
|
/v1/user/get_profile_setup |
Returns the acting user's reusable v2 profile setup onboarding payload. |
|
GET
|
/v1/user/get_profile_setup_city_options |
Searches city homebase options for the reusable profile setup insert. |
|
GET
|
/v1/user/get_profile_setup_status |
Returns the acting user's lightweight v2 profile setup status.
This intentionally skips display context such as suggested users, communities, seller venue stats, verifier lists, and venue detail cards. |
|
GET
|
/v1/user/get_profile_visibility_preview |
Previews which public medalusergroup tiers can see a profile at a given
importance-points threshold, including the highest-ranked verified users
by total importance points. |
|
GET
|
/v1/user/get_profile_visitors |
Returns signed-in visitors for a profile.
Auth: the profile owner needs Permission::SeeProfileInsights to see their
own visitor identities. Administrators with
Permission::AccessSpecialFunctions can inspect other profiles. Anonymous
or IP-only profile views are counted in the aggregate but are never
exposed here. |
|
GET
|
/v1/user/get_relationship_block_list |
Returns users blocked by the current viewer. |
|
GET
|
/v1/user/get_relationship_controls |
Returns the current viewer's blockmute controls for a target user. |
|
GET
|
/v1/user/get_transaction_history |
Returns transaction history for the user |
|
GET
|
/v1/user/get_user_to_user_chat_tag_id |
Returns the chat id for the user-to-user chat |
|
GET
|
/v1/user/get_usergroup_memberships |
Returns medal and usergroup memberships for an inspected user. |
|
GET
|
/v1/user/get_verification_invite |
Returns the public invite payload for a verify{uuid} community verification link.
Public-by-design: possession of the verification UUID is the invite authorization.
This endpoint exposes only the target identity details already shown to anyone
opening the invite and the acting viewer's ability to cast a verification vote. |
|
POST
|
/v1/user/set_avatar |
Sets the user's avatar (an emoji). Replaces the legacy
modulescommunitychangeprofile.php flow with a v2-friendly apiv1 surface
that the v2 user-profile "MY ACCOUNT" panel can call directly. The v1
page stays in place as the non-v2 fallback.
Reuses \AT\User::SetUserAvatar(), which already strips non-emoji characters
and writes only when a single grapheme remains -- we do not re-implement
that validation here. |
|
POST
|
/v1/user/set_bid_user_to_user_chat_request |
Starts or reopens a bid customer chat after checking bid chat availability.
Preserves the legacy customer-chat rule: the viewer must be the buyer or current holder of the bid,
the target must be the bid counterparty, and the direct user-to-user chat must be available for that pair. |
|
POST
|
/v1/user/set_community_verifiable_details |
Sets the users community verifable details, each change will reset all community verifications |
|
POST
|
/v1/user/set_delete |
Deletes the requesting user after email-code confirmation.
The confirmation code must be requested through userset_request_delete_code
and must match the code sent to the email address on file. Deletion is
blocked when any active non-corporate user account has a negative currency
balance. |
|
POST
|
/v1/user/set_grant_access |
Give another user access to this account |
|
POST
|
/v1/user/set_initiate_suspension |
Initiates the user suspension process |
|
POST
|
/v1/user/set_permission_default_payload |
Sets the default payload for one permission. |
|
POST
|
/v1/user/set_permission_override |
Sets or clears a direct permission override for one user. |
|
POST
|
/v1/user/set_profile_about_post |
Sets or clears the current user's profileAbout Me community post and
optional image selections from that post's attached media. |
|
POST
|
/v1/user/set_profile_chat_settings |
Updates whether the current user's profile accepts new low-friction chat requests.
Existing marketplace-required chats and transactionsupport chats are not disabled by this setting. |
|
POST
|
/v1/user/set_profile_homebase |
Saves the acting user's profile setup homebase city. |
|
POST
|
/v1/user/set_profile_intent |
Updates the current user's profile intent. |
|
POST
|
/v1/user/set_profile_setup_follows |
Follows or unfollows profile setup users, boards, and locations, including boards derived from seller in-list venues when following. |
|
POST
|
/v1/user/set_profile_visibility |
Updates the current user's profile visibility threshold.
The threshold is based on a viewer's cached total importance points. A
threshold of 0 means "Any" and keeps the profile visible to everyone. |
|
POST
|
/v1/user/set_referred_user |
Link a user to be a referred |
|
POST
|
/v1/user/set_reinstate |
Reinstate user privileges |
|
POST
|
/v1/user/set_relationship_block |
Blocks or unblocks a user for optional user-to-user contact. |
|
POST
|
/v1/user/set_relationship_mute |
Mutes or unmutes a user for viewer-side chat urgency. |
|
POST
|
/v1/user/set_relationship_note |
Saves or clears the current viewer's private note about a target user.
The note is private to the current viewer and is not shown to the target user. |
|
POST
|
/v1/user/set_request_delete_code |
Sends an account deletion confirmation code to the email address on file.
The code is stored in the existing ATUser.AuthCode fields with AuthCodeOrigin
set to DeleteUser, and expires after 15 minutes. |
|
POST
|
/v1/user/set_revoke_alternative_access |
Revoke another user's access to this account. |
|
POST
|
/v1/user/set_user_to_user_chat_decision |
Accepts or denies a pending user-to-user profile chat request. |
|
POST
|
/v1/user/set_user_to_user_chat_request |
Starts or reopens a user-to-user profile chat request.
If the existing marketplace chat permission already allows the pair, the chat is immediately sendable.
Otherwise the target user receives an in-chat request decision and the requester may send one opening message. |
|
POST
|
/v1/user/set_verify |
Verifies another user |
|
GET
|
/v1/marketdata/get_city_hot_list |
Returns the most-traded venues in a given city, with rank-change deltas.
Powers the per-city Hot List page at market-data. |
|
GET
|
/v1/marketdata/get_continent_country_top |
Returns the top cities of an editorial continent, grouped by country.
Editorial continents are: NA (North America incl. CanadaMexico), EU (Europe),
AS (Asia, excluding Middle East), MEA (Middle East & Africa), SA (South America),
OC (Oceania). |
|
GET
|
/v1/marketdata/get_highest_converting_locations |
Returns the best converting venues, indicating the most demand for listings |
|
GET
|
/v1/marketdata/get_map_points |
Returns signed-in Market Data map points for overview and city Hot List map panels. |
|
GET
|
/v1/marketdata/get_most_bids_least_asks |
Returns locations with the highest bids vs listing ratio |
|
GET
|
/v1/marketdata/get_most_underserved_locations |
Returns locations with the most bids and the least number of listings in the past 30 days |
|
GET
|
/v1/marketdata/get_most_viewed_locations_with_least_listings |
Returns the most viewed locations with the least amount of listings |
|
GET
|
/v1/marketdata/get_recently_viewed |
Returns signed-in caller-scoped recently viewed listings, marketplace
locations, cities, communities, profiles, plus viewer-owned My Plans and
active request tiles when available.
Public-by-design: anonymous callers do not read sessionIP recently
viewed history and receive the trending fallback instead. Signed-in
callers receive only their own user-scoped history, caller-owned plan and
pending-request summaries, and profile views recorded for that caller.
It exposes no private history, plans, or requests for other users. |
|
GET
|
/v1/marketdata/get_required_inventory_forecast |
Returns inventory that may have high chance of selling based on historical data |
|
GET
|
/v1/marketdata/get_toplist |
Returns locations with the most bids and the least number of listings in the past 30 days |
|
GET
|
/v1/marketdata/get_trending_near |
Returns the cities trending closest to a given latlong.
Resolves the closest city via ATAirport proximity, then returns cities
within that city's continent ordered by distance, using activity as the
tie-breaker. Used by the
Market Data page's "Trending near you" row. |
|
GET
|
/v1/marketdata/get_wall_of_fame |
Returns all public Wall of Fame leaderboards for the requested scope and timeframe.
Public-by-design: Wall of Fame cards expose public user aliases, avatars,
selected public profilebanner images, profile links, ranks, transaction
counts, and rounded amount labels only.
Raw transaction and bonus amounts stay internal to the cached ranking helper. |
|
GET
|
/v1/marketdata/get_wall_of_fame_list |
Returns one public Wall of Fame leaderboard.
Public-by-design: the response intentionally excludes exact raw cents and
only emits rounded public amount labels plus public user identity fields
and selected public profilebanner images. |
|
GET
|
/v1/marketdata/get_world_top |
Returns the top cities worldwide ordered by recent trading activity.
Used by the Market Data overview page's "World's Top N" header section. |
|
GET
|
/v1/beta_program/get_invite_commission_preview |
Return the legacy invite-friends commission preview as structured data,
using the authenticated user's current commission permissions. |
|
GET
|
/v1/beta_program/get_invites |
Return the authenticated user's beta invite summary, including remaining
credits, return credits from redeemed codes, active unused codes, and
redeemed codes with claimant details. |
|
POST
|
/v1/beta_program/set_create_contextual_invite_link |
Create a reusable invite link with optional onboarding context. While the
beta invite gate is enabled, the link carries a beta code; when the gate
is later disabled, the same link shape still carries referralcontext. |
|
POST
|
/v1/beta_program/set_create_invite_code |
Create one unused beta invite code if the authenticated user has invite
credits remaining. Creating an unused code consumes one visible credit. |
|
POST
|
/v1/beta_program/set_revoke_invite_code |
Revoke an unused beta invite code owned by the authenticated user.
Revoking an unused code returns one visible invite credit. |
|
POST
|
/v1/beta_program/set_send_administration_invite_code |
Create an admin-issued beta invite code for a logged-in beta interest row
and notify the target user with the code. Requires AccessSpecialFunctions. |
|
GET
|
/v1/concierge/get_available_listing_container |
Returns the exact-match direct-listing container for the v2 composer.
Public-by-design: read-only renderer for already-public listing availability; listing purchase and offer placement keep their existing authpayment gates. |
|
GET
|
/v1/concierge/get_available_listings |
Returns sanitized direct listings for the v2 composer buy flow. |
|
GET
|
/v1/concierge/get_bid_listing_container |
Returns the reusable v2 listing composer mounted for a held bid fill. |
|
GET
|
/v1/concierge/get_buy_container |
Returns the rich HTML + executable JS envelope for the v2 composer's |
|
GET
|
/v1/concierge/get_categorize_request |
Parses a free-form composer request into a per-intent checklist state. |
|
GET
|
/v1/concierge/get_classify_category |
Classifies a composer request into one active marketplace category before |
|
GET
|
/v1/concierge/get_classify_intent |
Classifies the high-level intent of a free-form composer string into one of eight buckets so the v2 Intent Composer can pick the right rich UI BEFORE firing the heavier get_categorize_request parse. Uses a thinfast model (gpt-4.1-mini) and returns {intent: "buy" | "sell" | "editorial" | "review" | "socialize" | "sharePlans" | "market_data" | "events"} plus optional postTarget for author-centered regular posts. The model prompt says "community_discussion" for the legacy internal "socialize" bucket so it is not confused with sharePlans.
|
|
GET
|
/v1/concierge/get_composer_board_options |
Searches discussion boards available to the current viewer for the v2 |
|
GET
|
/v1/concierge/get_comps |
Returns comparable-pricing data (slider Hot Zone bounds, fill-probability buckets, recent-fill marquee HTML) for a parsed concierge request. Wraps APIGetComps.php. The composer reads MetaData.BidSliderData for slider minmaxvaluehotZone and DOMElements.MedianBidPriceTicker.innerHTML for the recent-fills marquee verbatim. |
|
GET
|
/v1/concierge/get_copy_request_share |
Returns the exact composer request text and whitelisted optional share
state for a UUID-backed shared composer link.
Public-by-design: possession of the opaque copy request UUID is the share credential; the response excludes row IDs, user IDs, sessions, parser payloads, and media. |
|
GET
|
/v1/concierge/get_global_concierge_count |
Returns the global count of available "fill-bid" concierges, used by the v2 Intent Composer's empty state ("{N} concierges waiting for requests"). Wraps the same library call modulesconciergeindex.php uses inline (\AT\ATLocation::GetNumberBidFillers). |
|
GET
|
/v1/concierge/get_intent_composer_result |
Runs the full v2 Intent Composer parse pipeline in one request. This
preserves the same modular stages as the granular endpoints, but calls
them inside PHP so the browser avoids classify -> categorize -> |
|
GET
|
/v1/concierge/get_listing_container |
Returns the rich HTML + executable JS envelope for the v2 composer's |
|
GET
|
/v1/concierge/get_listing_edit_container |
Returns the reusable v2 listing editor mounted for an off-market seller listing or rejected listing resubmit. |
|
GET
|
/v1/concierge/get_listing_price_context |
Returns sell-side price guidance for a listing draft. |
|
GET
|
/v1/concierge/get_localized_bidamount_and_fee |
Returns the fee-inclusive bid amount, standardpremium fees, and legal disclaimer strings for a given bid amount + location. The displayed CTA copy ("Offer $171 to N concierges") uses BidAmountInclStandardFee 100, NOT the raw slider value. Wraps APIget_localized_bidamount_and_fee.php. |
|
GET
|
/v1/concierge/get_location_options |
Returns venuelocation options for reusable v2 composer selectors. |
|
GET
|
/v1/concierge/get_location_sellers |
Returns the seller list, race-statement, and summary metrics ("Secured N times", "starts working in N seconds", "X concierges will race...") for a parsed concierge request at a specific bid amount. Wraps APIget_location_sellers.php. The SummaryStatement and UserStatement fields come back as pre-rendered HTML and are intended to be dropped into the composer's stat slots verbatim. |
|
GET
|
/v1/concierge/get_personalized_available_listings |
Returns saved-city-market direct listings for the signed-in viewer's composer. |
|
GET
|
/v1/concierge/get_placeholder_examples |
Returns entries for the v2 Intent Composer typewriter. |
|
GET
|
/v1/concierge/get_review_location_options |
Returns venuelocation options for the v2 Intent Composer review panel. |
|
POST
|
/v1/concierge/set_bid_listing |
Updates the draft bid answer linked to a held bid and completes or submits the fill. |
|
POST
|
/v1/concierge/set_copy_request_share_state |
Saves the current optional, whitelisted composer share state for a
UUID-backed request row immediately before the browser shares the link.
Public-by-design: logged-out composers can share; writes still require matching SearchRequestID + CopyRequestUUID plus the authenticated owner or same PHP session. |
|
POST
|
/v1/concierge/set_listing_media |
Uploads a listing image and creates an ATMedia row that can be used by |
|
POST
|
/v1/concierge/set_search_request_media |
Stores ATMedia ids uploaded through the v2 Intent Composer on the |
|
GET
|
/v1/location/get_category |
Returns the locations category type (f.i. Restaurant or Prepaid-Restaurant) and the required field list for listings of this category. |
|
GET
|
/v1/location/get_category_list |
Searches all categories |
|
GET
|
/v1/location/get_city_list |
Searches all cities |
|
GET
|
/v1/location/get_comparable_trades |
Returns comparable price information for any inventory type and date. |
|
GET
|
/v1/location/get_inventory_types |
Returns the inventory types available for the requested location. |
|
GET
|
/v1/location/get_list |
Searches all location aliasses |
|
GET
|
/v1/location/get_metric_history |
Returns history of location metrics across a defined timeframe |
|
GET
|
/v1/location/get_metrics |
Returns detailed 90 day location trading metrics |
|
GET
|
/v1/location/get_new_location_duplicate_options |
Returns possible existing locations before a user proposes a missing venue.
Public-by-design: read-only same-site duplicate suggestions are shown before submit so logged-out users can see whether a venue already exists before authentication. |
|
GET
|
/v1/location/get_profile |
Returns public profile metadata and regulation-derived capabilities for a location. |
|
GET
|
/v1/location/get_related_location_list |
Returns locations that are related to locationAlias |
|
POST
|
/v1/location/set |
Create a Location |
|
POST
|
/v1/location/set_confirm_proposed_location |
Confirms a proposed missing location. Three distinct eligible confirmations promote it into ATLocation. |
|
POST
|
/v1/location/set_custom_region |
Splits a larger geographical area into a smaller one |
|
POST
|
/v1/location/set_general_opening_hours |
Set a locations opening hours. |
|
POST
|
/v1/location/set_inventory_type |
Creates a location-specific inventory type when no existing type has the requested name. |
|
POST
|
/v1/location/set_listing |
Submits a new listing for review or if the user has the Permission::SelfReviewListings the listing will be approved.
If the timeframe and price matches a vacant bid, the bid will be filled automatically.
Please keep in mind that account limits apply as posted in the permission overview of your account. |
|
POST
|
/v1/location/set_proposed_location |
Posts a proposed missing location to a city board for community verification. |
|
POST
|
/v1/location/set_subscribe_to_city_area_priority_bids |
Subscribe to Concierge Bids for the Area |
|
POST
|
/v1/location/set_subscribe_to_location_priority_bids |
Subscribe to Insider Bids |
|
POST
|
/v1/location/set_unlock_exact_listing_times |
Unlock Exact Listing Times |
|
POST
|
/v1/location/set_unsubscribe_from_city_area_priority_bids |
Unsubscribe from Concierge Bids for the Area |
|
POST
|
/v1/location/set_unsubscribe_from_location_priority_bids |
Unsubscribe from Insider Bids |
|
GET
|
/v1/events/get_event |
Return the editable event payload for the rich event card editor.
Requires the caller to be the event originator or hold GlobalCommunityAdministration. |
|
GET
|
/v1/events/get_event_associated_venues |
Returns venues associated with an event (i.e. venues that benefit from
demand lift during the event's date window). Reads from the
ATLocationEvents/ATLocation join table populated by
set_event_venue_association. |
|
GET
|
/v1/events/get_event_candidates |
Search existing public-facing real-world events for composer attachment.
Public-by-design: read-only public event picker candidate search for composer attachment. |
|
GET
|
/v1/events/get_event_categories |
Search existing event categories for the v2 composer event picker.
Public-by-design: read-only public event picker category list for composer attachment. |
|
GET
|
/v1/events/get_event_location_options |
Search physical-location choices for the rich event card map picker.
Requires the caller to be the event originator or hold GlobalCommunityAdministration. |
|
GET
|
/v1/events/get_event_occurrences |
Return detailed occurrence rows for a selected public event.
Public-by-design: read-only public event picker occurrence list for composer attachment. |
|
GET
|
/v1/events/get_event_place_details |
Resolve a Google placeaddress suggestion for the rich event card map picker.
Requires the caller to be the event originator or hold GlobalCommunityAdministration. |
|
GET
|
/v1/events/get_event_summary |
Returns a single event resolved by URL slug. Includes the owning post URL
so callers can route the user into the existing forum viewer for the
full event view (per the events feature design — there is no dedicated
event detail page; the forum viewer is the event viewer). |
|
GET
|
/v1/events/get_events_in_city |
Returns real-world events whose effect radius covers a given city, OR
whose pinned venue (Event-ATLocation_ID) is in that city, OR whose
associated venues (ATLocationEvents/ATLocation) include any venue in
that city.
"In range" is computed as ST_Distance_Sphere(EventLocation, cityCenter)
<= EffectRadiusInMeters, where the city center is the IsScheduled=1
airport's Coordinates (falling back to any airport row for the slug). |
|
GET
|
/v1/events/get_events_near |
Returns the top real-world events near a given latlong, ranked by
geographic proximity then by next upcoming occurrence.
Distance is computed against EventLocation (POINT) using ST_Distance_Sphere.
Events pinned to a venue (Event-ATLocation_ID set, EventLocation null) fall
back to the venue's coordinates via a sub-join. |
|
GET
|
/v1/events/get_top_events |
Returns the top real-world events globally, ranked by next upcoming occurrence.
Filters to events with EventLocation set or Event-ATLocation_ID set so
recurring weekday demand patterns and national holidays are excluded. |
|
POST
|
/v1/events/set_create_event |
Create a real-world event from the v2 composer event picker.
Requires CreateEvent. The permission defaults to true so staff can disable
it only for users who abuse event creation. |
|
POST
|
/v1/events/set_event |
Edit an existing event. Empty -1 sentinel values mean "leave unchanged."
Requires the caller to be the event originator or hold GlobalCommunityAdministration.
Use "__clear__" for optional stringlist fields that should be cleared. |
|
POST
|
/v1/events/set_event_category |
Create a reusable event category from the v2 composer event picker.
Requires GlobalCommunityAdministration because event categories are global
taxonomy, not per-post user content. |
|
POST
|
/v1/events/set_event_location |
Creates or proposes a missing location from an event surface, then keeps
the resulting location tied to that event.
Signed-in users with CreateEventLocationDirectly (or GlobalCommunityAdministration)
createmerge the ATLocation immediately. Other signed-in users create an
event-linked new-location proposal post that follows the normal confirmation
workflow; once promoted, the location is linked to the event automatically. |
|
POST
|
/v1/events/set_event_occurrence |
Create a datetime occurrence for an existing event from the composer picker.
Requires CreateEvent, the same default-on abuse-control permission used
for event creation. Event originators and GlobalCommunityAdministration
may also add rows through the normal event-edit permission path. |
|
POST
|
/v1/events/set_event_venue_association |
Add or remove an association between an event and a venue (ATLocation).
Tags drive demand projections and the venue-transaction royalty. |
|
GET
|
/v1/partner/get_bulk_availability_template |
Get the CSV columns and example row for bulk venue availability imports. |
|
GET
|
/v1/partner/get_inventory |
Get location-specific inventory types and linked community posts for a managed venue. |
|
GET
|
/v1/partner/get_listing_regulation_policy |
Get the venue listing-regulation override policy for a managed venue. |
|
GET
|
/v1/partner/get_location_claim_options |
Search venues that can be selected for a partner management claim. |
|
GET
|
/v1/partner/get_location_dashboard |
Get overview demand, listing, sales, and conversion signals for a managed venue. |
|
GET
|
/v1/partner/get_location_inventory_forecast |
Get a managed venue's inventory forecast using the same market-insight engine as the seller forecast, without public API pricing. |
|
GET
|
/v1/partner/get_location_likeness_group |
Get saved similar restaurants and suggested related restaurants for a managed venue forecast. |
|
GET
|
/v1/partner/get_location_likeness_options |
Search restaurants that can be added to a managed venue's similarity group. |
|
GET
|
/v1/partner/get_location_livestream |
Get the featured livestream post for a managed venue. |
|
GET
|
/v1/partner/get_locations |
Get the venue locations this user can manage through partner roles, global community administration, or the legacy location-user grant. |
|
GET
|
/v1/partner/get_opening_hours |
Get weekly recurring opening-hour windows for a venue the current user may edit. |
|
GET
|
/v1/partner/get_team |
Get active team members, pending invites, and recent partner audit events for a managed venue. |
|
POST
|
/v1/partner/set_bulk_availability |
Validate or create bulk dated availability for a managed venue. Created rows become normal ATAppointment listings. |
|
POST
|
/v1/partner/set_delete_location |
Preview or delete a location for failing community standards. Deletion is admin-only and applies new-location reward penalties when applicable. |
|
POST
|
/v1/partner/set_inventory_type |
Create or update a location-specific inventory type for a managed venue. |
|
POST
|
/v1/partner/set_inventory_type_post_link |
Link a community post to a venue inventory type. |
|
POST
|
/v1/partner/set_listing_regulation_policy |
Save the venue listing-regulation override policy. Only venue OwnersAdmins, legacy venue managers, and global community administrators may save. |
|
POST
|
/v1/partner/set_location_claim_request |
Request management access to a location. The request is sent to GlobalCommunityAdministration users in a chat with approvereject action buttons. |
|
POST
|
/v1/partner/set_location_likeness_group |
Save the managed venue's similarity group used by partner inventory forecasts. |
|
POST
|
/v1/partner/set_location_livestream_post |
Feature a location-connected community post as the venue livestream station, or create a new station post and feature it. |
|
POST
|
/v1/partner/set_opening_hours |
Validate or save weekly recurring split opening hours for a managed venue. |
|
POST
|
/v1/partner/set_team_invite |
Create or accept a role-scoped venue team invite. Creating an invite preserves normal referral attribution through the returned URL's v parameter. |
|
POST
|
/v1/partner/set_team_member_remove |
Remove a user from a venue team. |
|
POST
|
/v1/partner/set_team_member_role |
Add an existing user to a venue team or change that user's partner role. |
|
GET
|
/v1/sidebar/get_plans_render |
Returns only the server-rendered "My Plans" block plus the matching
plans state. Used by the v2 shell to defer the expensive city-grouped
travel-plans fetch until after the initial page render.
Auth: plans are personal; anonymous callers receive ErrorUnauthorized. |
|
GET
|
/v1/sidebar/get_render |
Returns server-canonical rendered HTML for the v2 sidebar plus the
matching state struct. The client's contract is to replace the inner
HTML of the sidebar aside element with Payload.html and update
window.ATV2ShellState.sidebar with Payload.state — there is no
client-side render, ever.
Use this after any mutation that affects the sidebar's structure or
data (pinunpin, plans sortgroup toggle, app addedremoved). For pure
active-state changes triggered by inline navigation, prefer
window.ATV2Sidebar.applyActiveKey() instead — it's a DOM toggle and
doesn't need a roundtrip. |
|
GET
|
/v1/sidebar/get_state |
Returns the current state of the v2 sidebar — the same struct that is
embedded in window.ATV2ShellState.sidebar at SSR time. Use this when
the client needs to re-derive its in-memory model without re-parsing
the rendered HTML.
Pass the page's currently-active sidebar key as activeNavKey so the
server can mark the right item active in the response. The expanded
collapsed submenu set is read server-side from the
`atv2_sidebar_expanded` cookie — pass nothing for that. |
|
POST
|
/v1/sidebar/set_expanded |
Toggle the expandcollapse state of a top-level submenu and persist
the choice to the user's `atv2_sidebar_expanded` cookie. Returns the
post-mutation {html, state} so the client can swap the rendered nav
block.
The cookie is the source of truth for SSR re-renders. JS may
optimistically toggle [hidden] in the DOM before this call returns;
the swap reconciles either way. |
|
POST
|
/v1/sidebar/set_plans_view |
Persist the user's preferred sort mode for the v2 sidebar's "Your
Plans" block (city-grouped appointments). The choice is written to
the `atv2_sidebar_plans_view` cookie so subsequent SSR renders pick
it up; the response carries the freshly-rendered {html, state} so
the client can swap the rendered nav + plans without a follow-up. |
|
GET
|
/v1/notification/get_detail |
Returns the full non-chat notification payload for a modal or deep link.
Chat notifications are intentionally excluded; those belong to the v2
Messageschat dock flow. |
|
GET
|
/v1/notification/get_list |
Returns the most recent notifications for the authenticated user.
The result is a single list sorted newest-first. Each item carries a
readState ('Created' | 'Pushed' | 'SentViaEmail' | 'Read') and an
isUnread boolean so consumers can render new vs. read in one pass.
Pagination: pass offset to fetch older pages. MetaInformation.hasMore
is true only when another page exists beyond the returned items.
Calling this endpoint does NOT mark any notifications as read — use
notificationset_readstate for that. |
|
GET
|
/v1/notification/get_preview |
Returns a compact, authenticated preview for one notification.
Used by the ATV2 realtime preview banner after the WebSocket nudge
tells the browser which notification row changed. The socket carries
only the notification ID; this endpoint re-reads the row under the
acting user so notification and chat text never travels on the
unauthenticated WebSocket channel.
Calling this endpoint does NOT mark the notification as read. |
|
GET
|
/v1/notification/get_recipients |
Returns recipientread-state information for one non-chat notification. |
|
POST
|
/v1/notification/set_action |
Executes a non-chat notification action button owned by the caller.
Preferred clients send actionButtonID from get_detailget_list. For
older notification actions that never created an action row, send
notificationID plus actionButtonName; the server re-reads the row and
validates the action before execution. |
|
POST
|
/v1/notification/set_all_read |
Marks every unread non-chat notification for the authenticated user as
read. The native v2 notifications dashboard calls this once on open so
the page behaves like an inbox visit rather than only marking the first
lazy-loaded page.
Chat notifications are intentionally excluded; the v2 chat dock owns
chat-read timing so merely opening the notifications dashboard does not
clear message unread state. |
|
POST
|
/v1/notification/set_delete |
Soft-deletes one notification owned by the authenticated user.
The notification row remains in ATNotifications for audithistory, but
DeletedDate is set so native v2 notification lists and unread counts no
longer show it. |
|
POST
|
/v1/notification/set_readstate |
Changes the visibility of the notifications in the ID list
In the portal private listings appear in the private section and public in 'Publicly traded listings' |
|
GET
|
/v1/bookmarks/get_list |
Returns the authenticated user's active bookmarks, ordered by their
chosen sort (drag-reorderable on the v2 Bookmarks page). Empty array
for users with no bookmarks; ErrorInvalidUser for anonymous callers. |
|
POST
|
/v1/bookmarks/set_add |
Add (or refresh) a bookmark for the authenticated user. Idempotent on
URL: if the user already has a live bookmark for the supplied url, the
existing row is returned (with title description updated to the new
values) instead of creating a duplicate.
The url must be either http(s) absolute or root-relative ("foobar").
Anything else (javascript:, data:, mailto:, naked schemes) is rejected
with ErrorBadParameters so untrusted page code can't smuggle exotic
urls into the user's collection.
Canonical v2 newsfeed post URLs populate Cache-ATDiscussionPosts_ID so
the feed can count how many users bookmarked a post without parsing URLs.
A user's first bookmark for a v2 forum post sends the post author a
push-only Priority notification tagged back to that discussion post. |
|
POST
|
/v1/bookmarks/set_remove |
Remove a bookmark owned by the authenticated user. This is a hard
delete. Removing a bookmark that doesn't exist or isn't owned by this
user returns Error rather
than silently succeeding, so client UI can distinguish "deleted" from
"wasn't yours to delete". |
|
POST
|
/v1/bookmarks/set_reorder |
Replace the user's bookmark sort order with the supplied id list. IDs
not currently owned by the user (or already deleted) are silently
skipped; any owned bookmarks not present in the list keep their
relative order, appended after the supplied ones — defensive in case
the client view is stale. |
|
GET
|
/v1/trusted_client/get_invite_preview |
Preview safe Trusted Client invite terms and status for a code.
Public-by-design: invite entry needs to show whether a code is usable before checkout; the payload excludes recipient identity and commission terms. |
|
GET
|
/v1/trusted_client/get_invites |
Return the authenticated user's Trusted Client invite-code management summary. |
|
POST
|
/v1/trusted_client/set_claim_invite_code |
Claim a Trusted Client invite code for the signed-in user, or return a sign-in preview for a guest.
Public-by-design: logged-out code entry must show the same safe terms and sign-in action without mutating the invite. |
|
POST
|
/v1/trusted_client/set_create_invite_code |
Create an unclaimed Trusted Client invite code.
The signed-in person who enters the code claims it and becomes tied to the creator. |
|
POST
|
/v1/trusted_client/set_register_interest |
Register interest in Trusted Client access for a logged-in user or guest email.
Public-by-design: no-code visitors need a lightweight way to express interest without an invite. |
|
POST
|
/v1/trusted_client/set_revoke_invite_code |
Revoke an unused Trusted Client invite code owned by the authenticated creator. |
|
POST
|
/v1/trusted_client/set_send_administration_invite_code |
Create an unclaimed administration Trusted Client invite code for an interest row.
Requires AccessSpecialFunctions. |
|
GET
|
/v1/seller/get_capabilities |
Returns the acting seller's current capability limits and readiness. |
|
GET
|
/v1/seller/get_dashboard |
Returns the seller dashboard overview for the acting user. |
|
GET
|
/v1/seller/get_listing_intelligence |
Returns listing-level customer view trends and pricing intelligence for listings owned by the acting seller. |
|
GET
|
/v1/seller/get_market_insight_location_report |
Returns a sellability report for one venue in My Sales Market Insights.
The report groups likely sellable inventory by inventory type, date, and timeframe,
then adds active public competition already listed for each row. |
|
GET
|
/v1/seller/get_market_insight_locations |
Returns ranked venues for one seller market insight city.
The payload is loaded separately from the main market insights response so large venue
strips can hydrate as each market tile comes into view. |
|
GET
|
/v1/seller/get_market_insights |
Returns forward-looking seller market insights for the selected time window.
The payload ranks city markets using same-calendar-window historical transaction demand from
prior years, current marketplace demand, upcoming public events, popularity
pressure, active supply mix, and the acting seller's coverage. |
|
GET
|
/v1/seller/get_market_notification_rank |
Returns the acting seller's current notification rank for one location. |
|
GET
|
/v1/seller/get_market_notifications |
Returns the acting seller's market notification location list grouped by continent and city. |
|
GET
|
/v1/seller/get_onboarding_location_options |
Searches venues for the seller onboarding in-list selector.
Public-by-design: prospective sellers can search venues before signing in. |
|
GET
|
/v1/seller/get_onboarding_profile |
Returns selected venue stats, related venues, and sponsor matches for seller onboarding.
Public-by-design: prospective sellers need to understand their opportunity before signing in. |
|
GET
|
/v1/seller/get_onboarding_teammate_invite_link |
Builds a personal teammate invite link for a related venue. |
|
GET
|
/v1/seller/get_performance_dashboard |
Returns seller-private CRM and performance intelligence for the acting user. |
|
GET
|
/v1/seller/get_reward_list |
Returns active seller rewards. |
|
GET
|
/v1/seller/get_sponsorships |
Returns sponsorship status for the acting seller. |
|
GET
|
/v1/seller/get_supply_assessment |
Returns a four-state supply assessment for listing-creation guardrails.
Use this before creating new supply to see whether a venue or exact inventory slot has
room_for_supply, good_supply, oversupply, or no_estimation. The endpoint is authenticated
because supply guidance can include seller-facing market context. |
|
GET
|
/v1/seller/get_traderpoint_event_gaps |
Returns paginated event-gap cities for the acting seller's matched markets. |
|
GET
|
/v1/seller/get_traderpoint_leadership_opportunities |
Returns community leadership opportunities for the acting seller's matched markets. |
|
GET
|
/v1/seller/get_traderpoint_overview |
Returns the lightweight Earn Traderpoints workbench overview for the acting seller.
The payload includes account balance, spam-rate status, Market Insights pricing,
new-location reward status, and route destinations. Heavy opportunity lists are
loaded through dedicated lazy endpoints. |
|
GET
|
/v1/seller/get_work_queue |
Returns seller drafts, listings, submissions, active held or shortlisted bids, reviews, and transfer tasks. |
|
POST
|
/v1/seller/set_close_sponsorship_request |
Closes the acting seller's pending sponsor request for the selected medal. |
|
POST
|
/v1/seller/set_onboarding_inlist |
Saves the acting seller's onboarding in-list. |
|
POST
|
/v1/seller/set_onboarding_sponsor_request |
Requests a seller onboarding sponsor, replacing the acting user's pending request when needed. |
|
POST
|
/v1/seller/set_onboarding_sponsor_request_cancel |
Cancels the acting seller's pending onboarding sponsor request. |
|
POST
|
/v1/seller/set_request_sponsor_switch |
Opens or reopens the acting seller's sponsor-change request chat for an approved sponsorship. |
|
POST
|
/v1/seller/set_sponsorship_note |
Saves the acting sponsor's public concierges sponsorship message. |
|
GET
|
/v1/portfolio/get_last_order_list_id |
Returns the order list that has been used last by the api user |
|
GET
|
/v1/portfolio/get_listings |
Returns all listings in the users portfolio. |
|
GET
|
/v1/portfolio/get_my_appointments_grouped_by_city |
Returns the authenticated viewer's appointments grouped by city, with
separate counts for upcoming (Date >= today) and past (Date < today)
rows. Powers the v2 sidebar's "My Plans" block.
Each group carries the city's IATA-style group code, display name,
and emoji from ATAirport (joined via ATLocation.ATAirport_CityGroupCode,
which is a denormalized cache column on ATLocation — no extra join to
ATAirport in the count query).
Filters applied (always):
- CurrentOwner-ATUser_ID = the authenticated viewer (self-only;
no peer-user param by design).
- DeletedDate IS NULL on ATAppointment and ATLocation.
- Status is one of the active My Plans appointment states returned
by Appointment::GetMyPlansAppointmentStatuses().
- ATAirport_CityGroupCode populated (rows without a city are
dropped silently — they cannot be grouped meaningfully).
Sort: groups are returned in the requested order. "upcoming" puts
cities with the most upcoming appointments first (ties broken by
total count). "name" sorts alphabetically by city display name. |
|
GET
|
/v1/portfolio/get_my_calendar_items |
Returns every time-bound item belonging to the viewer that falls in the
window [from, to], normalized into the CalendarItem shape consumed by
modulesv2travel_plans?view=calendar.
P1 covers bids and appointments — the two types backed by an existing
per-user fetcher. Location events, transactions, livestreams and
contract deadlines plug in as additional foreach-blocks once their
helpers exist (see CALENDAR_DESIGN.md §5). |
|
GET
|
/v1/portfolio/get_my_travel_plan_archived |
Archived travel plans for the v2 "My Plans" archive view.
Returns a newest-first list of the viewer's archived appointments, each
carrying the city payload used by the normal My Plans landing page. |
|
GET
|
/v1/portfolio/get_my_travel_plan_detail |
Per-city travel plan detail — the v2 city detail page's data source.
Returns the city's display data plus the viewer's appointments and
active bids in that city, filtered to the requested time window
(upcoming = on-or-after today, past = before today, archived = archived plans).
Both lists are returned in the row shape that templatesportfolio
_card_appointment.html and _card_active_bid.html expect, so the v2
page can call those partials directly with no field translation.
Scale: per-user row counts are small. Both legacy library calls
(`Bids::GetBidsByUserID`, `Appointment::GetAppointmentsByUserID`)
scan only the user's rows; the per-city + per-window filter runs in
PHP. Hard-capped at 200 rows per source. |
|
GET
|
/v1/portfolio/get_my_travel_plan_upcoming |
All-upcoming travel plans — the v2 "My Plans" landing page data.
Returns a flat chronological list of the viewer's upcoming items
(confirmed appointments + selling listings + active bids + seller-sold upcoming sales) within the next $days, each carrying
the city it belongs to so the SSR view can group-render by city.
Per-user bounded; hard-capped at 200 items per source. |
|
GET
|
/v1/portfolio/get_my_travel_plans |
Travel plans by city — the v2 sidebar's "My Plans" data source.
Returns one group per city the viewer has activity in, where activity
is the union of:
- My Plans appointments owned by or shared with the viewer
(ATAppointment.Status IN ('Approved','Private','Unlocked','In Transfer')).
- Active bids placed by the viewer (ATTransaction.Status='PENDING'
with a non-null ATBids_ID).
- Upcoming reservations the viewer sold, sourced from completed
ATTransaction rows where the viewer was the cached seller.
Each group's `upcomingCount` `pastCount` are the sum of appointment
and bid counts; the per-source breakdown is also returned so the UI
can render "2 trips · 3 bids" without another call.
Scale: at hundreds of thousands of bidsappointments globally, both
subqueries must seek by user-leading indexes:
- ATAppointment(`CurrentOwner-ATUser_ID`) — singleton index.
- ATTransaction(`Cache-Buyer-ATUser_ID`) — singleton index.
The bid count runs against ATTransaction alone (no ATBidsATLocation
join) by reading the denormalized `Cache-ATAirport_CityGroupCode`
column. Per-user row counts are small, so the post-seek filter and
GROUP BY are cheap. |
|
GET
|
/v1/portfolio/get_order_list_items |
Returns the order list items for $orderListID |
|
GET
|
/v1/portfolio/get_order_lists |
Returns all available orderlists |
|
GET
|
/v1/portfolio/get_valid_location_identifiers |
Searches available location identifiers for purposes of creating a buy order |
|
POST
|
/v1/portfolio/mint_calendar_feed_token |
Returns the viewer's iCalendar subscription URL, minting a token on
first call. Idempotent — subsequent calls return the same URL until
the user explicitly revokes via set_revoke_calendar_feed_tokens.
The URL is intentionally returned as plain HTTPS; clients flip the
scheme to webcal: when they want to trigger a system "Subscribe?"
prompt (iOS Safari, macOS Mail). See CALENDAR_DESIGN.md §6. |
|
POST
|
/v1/portfolio/set_archive_my_travel_plan |
Archives an owned reservation from v2 My Plans.
Archived plans are hidden from the upcomingpast city tabs and collected
under the Archived Plans view. |
|
POST
|
/v1/portfolio/set_bulk_bid_order |
Create a Bulk Buy Order
IN BETA - NOT YET FUNCTIONAL
The algorithm will place bids automatically pricing will be decided on a bid-per-bid basis but will never exceed or subsceed the minium bid price. |
|
POST
|
/v1/portfolio/set_delete_order_list |
Delete order list |
|
POST
|
/v1/portfolio/set_delete_order_list_item |
Deletes an order list item |
|
POST
|
/v1/portfolio/set_my_travel_plan_share_details |
Updates or removes a community share for an owned My Plans appointment. |
|
POST
|
/v1/portfolio/set_order_list |
Create a new order list |
|
POST
|
/v1/portfolio/set_order_list_item |
Saves an order list item |
|
POST
|
/v1/portfolio/set_rename_order_list |
Rename order list |
|
POST
|
/v1/portfolio/set_revoke_calendar_feed_tokens |
Revokes every active calendar-feed token for the viewer. Use this when
the user clicks "Regenerate URL" in the Sync sheet — call mint after
to issue a fresh one. |
|
POST
|
/v1/portfolio/set_suggest_list_to_user |
Returns the order list that has been used last by the user |
|
POST
|
/v1/portfolio/set_unarchive_my_travel_plan |
Restores an owned archived reservation from v2 My Plans.
The plan returns to its most recent non-archived status when that status
is still supported by My Plans; otherwise it falls back to Private. |
|
POST
|
/v1/portfolio/set_unlock_private_appointment |
Unlocks a private reservation for personal use from v2 My Plans.
Unlocking reveals the exact start time and confirmation details. After a
reservation is unlocked, resale must go through the regular offer and
review process again. |
|
POST
|
/v1/portfolio/set_update_order_list_item_quantity |
Updates the quantity of an item |
|
GET
|
/v1/bid/get_list |
Returns all available bids with a reporting delay of 5 minutes. |
|
GET
|
/v1/bid/get_pickup_requirements |
Returns the seller pickup state and confirmation data for one bid. |
|
POST
|
/v1/bid/set |
Places a bid
Please note that users are required to hold the API Developer medal to access automated buying.
A minimum balance of $50 per automatically purchased listings that have not passed by at least 72 hours is required to cover for no-show refunds.
Example: If 100 listings for the next 30 days have been purchased the users main account must reflect an available balance (which can be a combination of credit limit and balance) of at least $5,000 to cover for no show refunds.
use /v1/account/set_add_funds to programatically fund your account |
|
POST
|
/v1/bid/set_cancel |
Cancels an active bid |
|
POST
|
/v1/bid/set_drop |
Release a bid currently held by the acting seller. |
|
POST
|
/v1/bid/set_feedback |
Send seller feedback for a bid, such as no connection or bid too low. |
|
POST
|
/v1/bid/set_move_ownership |
Give a Bid to Another User
This function lets an eligible sponsor pass a held bid to one of their approved Concierge medal teammates.
If your contact is not on AT yet: |
|
POST
|
/v1/bid/set_note |
Save the acting seller's private note for a bid. |
|
POST
|
/v1/bid/set_pickup |
Pick up and hold a bid for the acting seller. |
|
POST
|
/v1/bid/set_reservation_contact |
Saves the bidder-specified reservation contact details for an active bid. |
|
POST
|
/v1/bid/set_shortlist |
Shortlist or un-shortlist a bid for the acting seller. |
|
GET
|
/v1/reservation/get_detail |
Returns a native v2 reservation payload for the acting viewer.
Public-by-design: anonymous share links reveal teaser metadata only; exact reservation details require sign-in. |
|
POST
|
/v1/reservation/set_accept_sharecode |
Accepts a share code for the acting signed-in user. |
|
POST
|
/v1/reservation/set_approve_review |
Approves a native reservation review for the acting reviewer. |
|
POST
|
/v1/reservation/set_begin_review |
Begins native reservation review for the acting reviewer. |
|
POST
|
/v1/reservation/set_cancel_transfer_service |
Cancels transfer service for the acting buyer's reservation, including transfer work already in progress. |
|
POST
|
/v1/reservation/set_reject_review |
Rejects a native reservation review for the acting reviewer. |
|
POST
|
/v1/reservation/set_request_transfer_service |
Requests transfer service for the acting buyer's reservation. |
|
GET
|
/v1/auth/get_sessions |
Return the authenticated user's active sessions, with the current
browser session marked for display on the native v2 Session Manager. |
|
POST
|
/v1/auth/set_all_sessions_removed |
Remove every active session owned by the authenticated user, including
the current browser session. The browser cookie is expired and the
response includes signedOut=true. |
|
POST
|
/v1/auth/set_other_sessions_removed |
Remove every active session except the current browser session. The
viewer remains signed in on this device and receives a refreshed list. |
|
POST
|
/v1/auth/set_session_removed |
Remove one active session owned by the authenticated user. If that
session is the current browser session, the browser cookie is expired
and the response includes signedOut=true. |
|
GET
|
/v1/listing/get_competing_listings |
Lists competing listings in a certain timeframe, along with pricing information |
|
GET
|
/v1/listing/get_portfolio_listings |
Legacy alias for /v1/portfolio/get_listings |
|
POST
|
/v1/listing/set_archive |
Archive Listing
|
|
POST
|
/v1/listing/set_begin_transfer |
Start working on a transfer-service listing. |
|
POST
|
/v1/listing/set_cancel_bid |
Cancels a bid |
|
POST
|
/v1/listing/set_cancel_transfer_service |
Cancel transfer service for a seller-owned listing. |
|
POST
|
/v1/listing/set_complete_transfer |
Mark a transfer-service listing as successfully transferred. |
|
POST
|
/v1/listing/set_create_from_template |
Creates an appointment from a template,
only appointments owned by api user may be copied. |
|
POST
|
/v1/listing/set_delete_review |
Take a listing out of review and delete it. |
|
POST
|
/v1/listing/set_fail_transfer |
Mark a transfer-service listing as failed. |
|
POST
|
/v1/listing/set_fill_bid |
Fills a bid with a portfolio bid answer that is either off market or publicly available
to fill a bid with a new bid answer please use /v1/location/set_listing |
|
POST
|
/v1/listing/set_market_visibility |
Changes the visibility in the market.
In the portal private listings appear in the private section and public in 'Publicly traded listings' |
|
POST
|
/v1/listing/set_price |
Changes the current listing price |
|
POST
|
/v1/listing/set_purchase |
Purchase a listing |
|
POST
|
/v1/listing/set_unarchive |
Restore an archived listing to its previous market visibility. |
|
POST
|
/v1/listing/set_update |
Updates an off-market seller listing using the same structured listing fields as the v2 listing composer. |
|
GET
|
/v1/floorplan/get_by_id |
Returns one floorplan by ID with all floors, layouts, and areas
hydrated. Used by the editor JS to refresh state after a write.
Public-by-design: the floorplan tree itself isn't sensitive (the
editor surface gates its own write actions via permissions). |
|
GET
|
/v1/floorplan/get_floor |
Single-floor detail (architecture SVG + the floor's Active layout
with all areas). Used by the editor when switching between floors.
Public-by-design: same rationale as `get_for_location`. |
|
GET
|
/v1/floorplan/get_for_event |
Returns Active floorplans linked to an `ATLocationEvents` row via
`ATFloorplans.ATLocationEvent_ID`.
Public-by-design: floorplans are reused across modules and apps; no
sensitive content lives on this surface. |
|
GET
|
/v1/floorplan/get_for_location |
Returns the Active floorplans linked to an `ATLocation` via the direct
`ATFloorplans.ATLocation_ID` column, with all floors, the currently-
Active layout per floor, and every area on that layout. Returns an
empty list (still wrapped in Success) when no Active floorplan covers
the venue.
Multiple floorplans may cover the same venue (different creators,
different perspectives). Consuming surfaces typically render the
first Active result; finer attribution comes via the area-level tag
`ATLocation.ATFloorplanArea_ID`.
Public-by-design: floorplans are reused across modules and apps; no
sensitive content lives on this surface. |
|
GET
|
/v1/floorplan/get_license_for_app |
License lookup for a (floorplan, app) pair. Resolution order:
1. Per-app override row in `ATFloorplanLicenses` (Status='Active').
2. Wildcard row (`ATApps_ID IS NULL`, Status='Active').
3. Fall through to the `Permission::FloorplanAreaTradeRoyaltyPct`
default for the floorplan originator.
Public-by-design: app renderers can inspect published floorplan terms. |
|
GET
|
/v1/floorplan/get_link_candidates |
Creator-only link picker for floorplan creation. Returns normalized
`ATV2SearchSelect` options for venues, events, or both. `results` is
returned as a compatibility alias for older `ATV2Search` callers. |
|
GET
|
/v1/floorplan/get_pending_review_list |
Moderation queue: floorplans waiting for review. Gated by
`Permission::CanReviewFloorplanSubmissions`. |
|
POST
|
/v1/floorplan/set_approved |
Approve a Submitted floorplan, promoting it to Active. Floorplans are
not exclusive per venueevent -- multiple Active floorplans may share
the same direct link -- so no supersede pass runs at this layer; the
moderator can manually mark an older floorplan as Superseded if a true
replacement is intended.
Gated by `Permission::CanReviewFloorplanSubmissions`. |
|
POST
|
/v1/floorplan/set_areas |
Replace every area on a layout with the supplied list. The whole-list
replace is intentional: the editor sends its current state, the
server is the single source of truth on disk. Existing areas are
soft-deleted (`DeletedDate=NOW()`) and the supplied rows are
inserted fresh; this preserves historical attribution because the old
area IDs aren't reused, but tagged ATLocationATLocationEvent rows
pointing at deleted areas will need re-tagging by the operator. |
|
POST
|
/v1/floorplan/set_event_area |
Tag an `ATLocationEvent` with a floorplan area. Same gate as
`set_location_area`. |
|
POST
|
/v1/floorplan/set_floor |
Upsert a floor (architecture SVG, viewbox, name, order). Pass
ATFloorplanFloor_ID = 0 to create a new floor under the supplied
floorplan; non-zero updates the existing row. Architecture SVG is
sanitised before write so user-pasted blobs can't smuggle scripts. |
|
POST
|
/v1/floorplan/set_imported_svg |
Import a pasteduploaded SVG fragment as the architecture layer of a
floor. The fragment is sanitised server-side: script elements, event
handlers (onload, onclick, ...), foreignObject elements, external
references, and unsafe URL schemes are stripped before write.
Optional autoExtractAreas mode walks the cleaned tree for rect,
polygon, circle, and path elements that carry either a title child
or a data-atv2-label attribute, and inserts each
into the floor's currently-Active layout as a draft area, ready for
the creator to assign categories to. |
|
POST
|
/v1/floorplan/set_layout |
Upsert a layout. Pass `ATFloorplanLayout_ID = 0` to create a new
layout under the supplied floor; non-zero updates the existing row.
When the resulting status is `Active`, ANY other Active layout on the
same floor flips to `Historical` in the same write -- there can be
exactly one Active layout per floor at a time. |
|
POST
|
/v1/floorplan/set_location_area |
Tag an `ATLocation` with a floorplan area so trades against that
venue inherit area attribution for royalty purposes. Gated either
by floorplan ownership OR `Permission::LocationAdministration`. |
|
POST
|
/v1/floorplan/set_new |
Direct creation entry point. Transactionally creates an ATFloorplans
row (Draft), plus an initial ATFloorplanFloor ("Ground") and an
initial ATFloorplanLayout ("Default", Active) so the editor has
somewhere to draw immediately. Gated by `Permission::CanCreateFloorplan`.
At least one of `ATLocation_ID` or `ATLocationEvent_ID` is required.
Both may be supplied. |
|
POST
|
/v1/floorplan/set_rejected |
Reject a Submitted floorplan with a reviewer note. Gated by
`Permission::CanReviewFloorplanSubmissions`. |
|
POST
|
/v1/floorplan/set_submitted_for_review |
Move a Draft floorplan into the moderation queue. Owner-only. |
|
GET
|
/v1/appsv2/get_about_post_candidates |
Finds public community posts that can be selected as an app's
About my app post. Eligibility mirrors the profileAbout Me selector. |
|
GET
|
/v1/appsv2/get_checkout_url |
Returns an inline custom-article checkout URL for paid app access. |
|
GET
|
/v1/appsv2/get_list |
Returns the list of published user-created apps for the appstore.
Public-by-design: the appstore is a public browse surface; paid apps
only expose storefront metadata here, while app access is enforced by
modulesv2_app_host and \AT\ATAppsV2::ViewerCanAccess(). |
|
GET
|
/v1/appsv2/get_my_apps |
Returns apps owned by the current viewer for the App Store setup UI. |
|
POST
|
/v1/appsv2/set_about_post |
Sets or clears an app's About my app post. |
|
POST
|
/v1/appsv2/set_create |
Create a new user-published app row in the v2 appstore. |
|
POST
|
/v1/appsv2/set_update |
Update a user-owned v2 app's storefront setup. |
|
GET
|
/v1/medal/get_achievement_bonus_types |
Searches all available requirements |
|
GET
|
/v1/medal/get_administration_medal_map |
Returns the administration medal builder map. |
|
GET
|
/v1/medal/get_administration_medal_sprite_ai_suggestion |
Requests an AI-generated sprite wizard suggestion without writing it. |
|
GET
|
/v1/medal/get_administration_medal_tier_details |
Returns requirement and achievement bonus editor data for one medal tier. |
|
GET
|
/v1/medal/get_available_medal_categories |
Searches all available medal categories on the platform |
|
GET
|
/v1/medal/get_available_medals |
Searches all available medals on the platform |
|
GET
|
/v1/medal/get_available_permissions |
Searches all available requirements |
|
GET
|
/v1/medal/get_available_requirements |
Searches all available requirements |
|
POST
|
/v1/medal/set_achievement_bonus |
Create a bonus for the Medal
The bonus defined below will be granted to people who achieve the Medal for the first time. |
|
POST
|
/v1/medal/set_administration_medal_category |
Saves category-level medal metadata and wizard defaults. |
|
POST
|
/v1/medal/set_administration_medal_category_create |
Creates a top-level administration medal category. |
|
POST
|
/v1/medal/set_administration_medal_path |
Saves a medal category path from an ordered low-to-high tier list. |
|
POST
|
/v1/medal/set_administration_medal_sprite_apply |
Applies a sprite wizard config by writing deterministic SVG files and medal metadata. |
|
POST
|
/v1/medal/set_administration_medal_submedal |
Saves one submedal's visible metadata and optional sprite override. |
|
POST
|
/v1/medal/set_administration_medal_submedal_create |
Creates a horizontal submedal under an exact parent medal tier. |
|
POST
|
/v1/medal/set_administration_medal_tier |
Saves one medal tier's visible metadata and optional sprite override. |
|
POST
|
/v1/medal/set_administration_medal_tier_achievement_bonus |
Adds or updates one achievement bonus on a medal tier. |
|
POST
|
/v1/medal/set_administration_medal_tier_achievement_bonus_delete |
Removes one achievement bonus from a medal tier. |
|
POST
|
/v1/medal/set_administration_medal_tier_create |
Creates a medal tier inside a top-level medal category. |
|
POST
|
/v1/medal/set_administration_medal_tier_requirement |
Adds or updates one auto-grant requirement link on a medal tier. |
|
POST
|
/v1/medal/set_administration_medal_tier_requirement_delete |
Removes one auto-grant requirement link from a medal tier. |
|
POST
|
/v1/medal/set_create_medal |
Create A New Medal |
|
POST
|
/v1/medal/set_delete_achievement_bonus |
Delete the Achievement Bonus |
|
POST
|
/v1/medal/set_edit_medal |
Edit Medal |
|
POST
|
/v1/medal/set_grant_user_medal |
Manually grants a medal tier to a user.
This is an administrator override: requirements are bypassed, the grant is marked with the acting admin and comment, and automatic ungrant is disabled. |
|
POST
|
/v1/medal/set_link_permission |
Link a permission to the Medal |
|
POST
|
/v1/medal/set_link_requirement |
Link a requirement to the Medal |
|
POST
|
/v1/medal/set_permission_payload |
Sets a direct permission payload for a usergroup. |
|
POST
|
/v1/medal/set_request_medal_sponsorship |
Request Medal Sponsorship |
|
POST
|
/v1/medal/set_sponsor_user |
Sponsor A Medal for
will be recommended for the medal you define below. |
|
POST
|
/v1/medal/set_unlink_permission |
Delete the Medal Permission link |
|
POST
|
/v1/medal/set_unlink_requirement |
Delete the Medal Requirement link |
|
POST
|
/v1/aichat/get |
Gets messages for a user thread |
|
GET
|
/v1/aichat/get_status |
Gets messages for a user thread |
|
POST
|
/v1/aichat/set |
Sends a message to an AI chat |
|
POST
|
/v1/aichat/set_clear |
Clear chat history |
|
GET
|
/v1/account/get_corporate_account_list |
Returns platform corporate accounts for Administration inspection tools.
This endpoint is admin-only and intentionally ignores impersonation for
account ownership: the list contains corporate AppointmentTrader ledger
accounts that can be selected as the platform counterparty. |
|
GET
|
/v1/account/get_corporate_transaction_summary |
Returns corporate account transaction totals for a date range, optionally with matching ledger rows.
Admin tools inspect another user's transactions through the dispatcher
impersonationUserAlias parameter. The selected corporate account is a
platform account; the effective API user is used as the counterparty filter. |
|
GET
|
/v1/account/get_incoming_payment_session |
Returns details of the incoming payment session and information on whether it has been completed or is still pending. |
|
GET
|
/v1/account/get_ledger |
Returns paginated ledger entries for one account owned by the acting API user.
Admin tools should access another user's ledger through the dispatcher
impersonationUserAlias parameter; this endpoint still validates the account
against the effective API user. |
|
GET
|
/v1/account/get_list |
Returns all available user accounts including their balances and if applicable credit limits in the smallest possible currency unit |
|
POST
|
/v1/account/set_start_incoming_payment_session |
Creates an incoming payments session which will be credited to API users main account. |
|
GET
|
/v1/external_services/get_status |
Returns the external-service registry with live health-check results. |