handlediq-com Hold Time API
The Hold Time API from handlediq-com — 1 operation(s) for hold time.
The Hold Time API from handlediq-com — 1 operation(s) for hold time.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/handlediq-com:handlediq-com-hold-time-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: 'HandledIQ: find and book home service Hold Time API'
version: 1.4.1
description: 'HandledIQ runs home service shops (heating and cooling, plumbing, electrical, roofing, pest control, junk removal, demolition and more). For a person''s own AI assistant: find_help with what they need and their ZIP finds the shops near them that do it, each with its own book price, all in, its soonest real open time and its signed record (work finished, callbacks, arrivals kept, ratings). hold_time holds one shop''s time for 10 minutes and that shop texts the person a link; the visit is booked only when the person books it on the shop''s page, never on your word. booking_status says whether they did. Once booked, move_booking has the shop text the person a link to pick a new time, and cancel_booking cancels for free within 3 days of booking, before the visit. Every price is all in, paid after the work. request_service with a shop''s business_id opens HandledIQ''s quote window on it, where the person does the same themselves; get_quote gives one shop''s price and times by its business_id. The same calls speak MCP at https://app.handlediq.com/agents/mcp.'
servers:
- url: https://app.handlediq.com/agents
tags:
- name: Hold Time
paths:
/api/hold_time:
post:
operationId: hold_time
summary: Hold a time and text the link
description: 'Holds one open time from a quote for 10 minutes and has the shop text the person one link to book it. Use it only once the person has picked a price and a time, given their name and US mobile number, and said to go ahead. Side effect: the shop sends one text to that number. Nothing is booked until the person taps Book on the shop''s page, where they also type their street address; you cannot book for them. Calling again with the same choice while the time is held sends no second text. The quote_id may come from any shop find_help or get_quote gave.'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
quote_id:
type: string
description: The quote_id price gave.
option_id:
type: string
description: One of the quote's prices, by its option_id.
time_id:
type: string
description: One of the quote's times, by its time_id.
name:
type: string
description: The person's name, as they gave it.
mobile:
type: string
description: The person's US mobile number, with its area code, as they gave it. The shop texts it once.
required:
- quote_id
- option_id
- time_id
- name
- mobile
additionalProperties: false
responses:
'200':
description: Answered.
content:
application/json:
schema:
allOf:
- type: object
properties:
ok:
const: true
required:
- ok
- type: object
properties:
quote_id:
type: string
state:
type: string
enum:
- priced
- waits_for_owner
- waiting
- ran_out
- declined
- booked
- canceled
- closed
said:
type: string
held_until:
type: string
format: date-time
minutes_left:
type: integer
visit:
type: object
description: 'The booked visit as it stands now: its time, its tech, and what has happened since the yes.'
properties:
when:
type: string
starts_at:
type: string
format: date-time
ends_at:
type: string
format: date-time
tech:
type:
- string
- 'null'
now:
type: string
enum:
- scheduled
- on_the_way
- arrived
- finished
- canceled
description: Where the visit has got to, from the tech's own taps and the visit's close.
on_the_way_at:
type: string
format: date-time
arrived_at:
type: string
format: date-time
finished_at:
type: string
format: date-time
canceled_at:
type: string
format: date-time
promise:
type: object
description: 'The time promised now, and how the arrival measured against it: open (its time has not ended), kept (arrived inside it), early or late (by minutes), missed, canceled, or unrecorded.'
properties:
window_start:
type: string
format: date-time
window_end:
type: string
format: date-time
standing:
type: string
enum:
- open
- kept
- early
- late
- missed
- canceled
- unrecorded
minutes:
type: integer
required:
- window_start
- window_end
- standing
required:
- when
- starts_at
- ends_at
change:
type: object
description: 'A change the person''s assistant asked for once booked: a cancel (done at once, free under the shop''s terms), or a move (the shop texted the person a link, and done once they picked a new time).'
properties:
asked:
type: string
enum:
- cancel
- move
asked_at:
type: string
format: date-time
texted_at:
type: string
format: date-time
done:
type: boolean
required:
- asked
- asked_at
- done
required:
- quote_id
- state
- said
'400':
description: The arguments were not a JSON object.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'404':
description: No such quote or shop.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'409':
description: 'Not now: the quote''s state or the time changed.'
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'422':
description: An argument to fix; the error says which.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'429':
description: Too many calls; the error says when to come back.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
tags:
- Hold Time
components:
schemas:
Failure:
type: object
properties:
ok:
const: false
error:
type: string
required:
- ok
- error