Changes to the Showami API and webhooks, by release.
See the API documentation for the full reference, or fetch the OpenAPI spec to diff it yourself.
PUT /api/v1/showings/showing_amendment/{id} and status: withdraw. Withdrawn requests don't block a new one.
422 and rejects it with rejection_reason showing_time_passed.
withdrawn_at and rejection_reason on GET /api/v1/showings/showing_amendment/{id} and the showing_amendment webhook.
POST /api/v1/showings/{showing_id}/showing_issue accepts task lists, until the task list is picked up for payout. Task lists accept the sa_no_show, unsatisfactory_showing, incomplete and other issue types.
external_id per property, copied onto the showing created when the request is accepted.
POST /api/v1/showings/showing_amendment returns the new request (with id and status). The GET adds status, requested_at, accepted_at and rejected_at.
showing_amendment webhook, with showing_amendment_created and showing_amendment_updated events.
POST /api/v1/showings/showing_amendment, and GET and PUT /api/v1/showings/showing_amendment/{id}.
POST /api/v1/showings/rescheduling validates the requested time with the same rules as a new showing, in the showing's time zone: between 8 am and 8:45 pm, on a 15 minute interval, at least one hour from now and no more than seven days out.
showing_type 3) can no longer be created. Past appraisals still appear in responses with showing_type appraisal.
confirmed_at on the showing response: when the showing was first confirmed.
429 Too Many Requests responses.
Idempotency-Key header on POST /api/v1/showings, POST /api/v1/tasks, POST /api/v1/rentals and POST /api/v1/consumers/showings, so a create can be retried without a duplicate booking. A replay returns 200 with the original showing(s) and an Idempotent-Replayed: true header.
/openapi.json.
? suffix on Showing boolean fields, error message as a string or an array, the 400/404 error body, previously undocumented Showing and Profile fields, the integer enums for showing_type, buyer_type and who_schedules, and the Quality Audit task type. Property Data Collection requests are documented under POST /api/v1/showings.
blocked_on_platform value for favorite_or_blocked_status on GET /api/v1/showings/requests, for agents blocked by Showami. It takes precedence over the other values.
cancelable on the showing response.
is_repost and original_showing_id on showing webhook payloads, so a showing reposted after "Edit and Repost" or an agent cancellation can be tied back to the original.
buyer_external_id and warnings on the POST /api/v1/tasks response.
external_id of its earliest task. A different external_id on another task is ignored and returned as a warning.
restricted_user_ids when creating showings, rentals, tasks, property data collections and consumer showings. Restricted agents aren't notified about the request; naming one as a preferred agent returns 422.
external_app_url on Property Data Collection requests and responses.
DELETE /api/v1/users (Close Account). An account can't be closed while it has pending showings.
favorite_or_blocked_status (none, favorited or blocked) on the showing agent in GET /api/v1/showings/requests.
POST /api/v1/showings/{showing_id}/visitors and DELETE /api/v1/showings/{showing_id}/visitors/{id} to manage the buyers or tenants on a showing.
review_allowed from GET /api/v1/showings.
POST /api/v1/organizations/users returns 400 when the organization doesn't allow Showing Agents and agent_type is showing_agent or both.
notes and public_notes are limited to 2,000 characters by default; Showami can raise an organization's limit up to 10,000.
PUT /api/v1/showings/{showing_id}/tip to add or change a tip on a showing or task list.
PUT /api/v1/task_acceptance/{task_id} takes commit (not status), including the acknowledge value, and can return 422.
GET /api/v1/showings/requests filters and ordering: q[order_by] (showing_at or updated_at), q[sort_direction], q[showing_at_from], q[showing_at_to], q[statuses][] and q[buyer_external_id].
exclude_fields query parameter on the showing and showing request endpoints, to leave avatar_base64 out of the response.
POST /api/v1/tasks returns the created task list in body.
external_app_url on task lists.
request_completion_status (yes, no or partially) on Property Data Collection check-outs.
GET /api/v1/showing_acceptance_prediction: confidence.total_showings counts independent showing opportunities, and the probability is discounted for thin history.
confidence on GET /api/v1/showing_acceptance_prediction, describing the history behind the prediction (geography_type, geography_key, total_showings, distance_miles).
visitors on showing and rental requests and responses: every buyer or tenant on the showing.
buyer_name, buyer_phone, buyer_type, the tenant_* fields and tenants, in favor of visitors.
GET /api/v1/showing_acceptance_prediction uses ZIP or city history with a distance-adjusted rate, and supports every showing type.
duration applies to Property Data Collection showings; appraisals removed from the docs.
DELETE /api/v1/rentals/{rental_id}/tenants/{id} can remove any tenant, including the one the rental was created with, as long as one tenant remains.
GET /api/v1/showings/{showing_id}/showing_issue and GET /api/v1/showings/{showing_id}/showing_issue/{id}.
DELETE /api/v1/rentals/{rental_id}/tenants/{id} to remove a tenant from a rental.
id in the add tenant response and in the rental's tenants.
POST /api/v1/rentals/{rental_id}/tenants to add a tenant to a rental after it's created.
external_app_url on showing requests and responses, and a read-only external_app_icon_path.
closed_without_payment showing status.
occurred_at on webhook payloads. It stays the same across delivery retries.
agent_checkin webhook (agent_checkin_created).
showing_videos on the showing response.
prefers_contact_via_messaging? on the showing response.
should_mask_agent_email? on the showing response.
X-Webhook-Signature header with an HMAC-SHA256 signature of the request body.
notes, public_notes and access_information are returned as links.
GET, HEAD and OPTIONS; other methods return 403.
GET /api/v1/organizations/reports and GET /api/v1/organizations/reports/{id} to list and download organization reports.
/api/v1 path.
type parameter (resolved or showing_agent_issue) on PUT /api/v1/showings/{showing_id}/showing_issue/{id}.
PUT /api/v1/showings/{showing_id}/showing_issue/{id} to resolve a showing issue, and the incomplete issue type, which holds payment until it's resolved.
GET and POST /api/v1/showings/{showing_id}/messages.
POST /api/v1/showings/{showing_id}/showing_issue.
notes and public_notes limit raised from 1,000 to 2,000 characters.
showing_type 8), created through POST /api/v1/showings.
POST /api/v1/showings/{showing_id}/counter_proposal_acceptance and POST /api/v1/showings/{showing_id}/counter_proposal_rejection.
buyer_external_id on the showing_rescheduling webhook.
desired_commision from POST /api/v1/users/referrals.
both value for the referral client_type.
POST /api/v1/showings/{showing_id}/initiating_agent_cancel.
showing_agent_cancellation and initiating_agent_cancellation on the showing response.
buyer_external_id on showings, and GET /api/v1/showings/by_buyer_external_id to look showings up by it.
rejection_reason, required when declining a reschedule request, and returned on the reschedule request.
GET /api/v1/showings/{showing_id}/counter_proposal, with an include_rejected parameter.
showing_external_id on the showing_feedback webhook.
POST /api/v1/organizations/users and DELETE /api/v1/organizations/users to add users to and remove users from an organization.
GET /api/v1/showing_acceptance_prediction.
counter_proposal webhook.
GET /api/v1/showing_requests/{showing_request_id}/feedbacks and the showing_feedback webhook.
PUT /api/v1/users/favorite_user/{user_id} and PUT /api/v1/users/blocked_user/{user_id}.
GET /api/v1/price_suggestions.
met_buyer and mls are optional when creating a showing.
task_type and showing_ends_at, and no longer take duration, mls or who_schedules.
POST /api/v1/tasks to create a task list and PUT /api/v1/task_acceptance/{task_id} to accept one.
POST /api/v1/users/referrals.
POST /api/v1/refresh_tokens to refresh it.
showing, showing_rescheduling and message) and the possible showing statuses.
PUT /api/v1/showings/rescheduling/{showing_rescheduling_id} to accept or decline a reschedule request.
POST /api/v1/showings/rescheduling.
nar_buyer_agreement on showing requests.
GET /api/v1/showings/requests/{showing_request_id}.
price values are now $45 to $400.
GET /api/v1/showings/{showing_id}.
POST /api/v1/consumers to create a consumer account and POST /api/v1/consumers/showings to request showings for one.
POST /api/v1/showings returns the created showings in body.
PUT /api/v1/showings/{showing_id}/buyers_agent_cancel and the showing time_zone parameter.
GET /api/v1/rentals/{rental_id}.
original_showing_id and external_id on showing and rental responses.
who_schedules, schedule_details and external_id on showing requests.
GET /api/v1/rentals and PUT /api/v1/rentals/{rental_id}/cancel.
time_zone on POST /api/v1/rentals.
POST /api/v1/rentals to create rental showings.
notes limit raised from 400 to 1,000 characters.
showing_type, met_buyer, public_notes, access_information and duration on showing requests.
reschedulable on showings (March 2021).
GET /api/v1/showings, GET /api/v1/showings/opportunities and GET /api/v1/showings/requests (December 2020).
POST /api/v1/showings to create showings (December 2019).