Hightouch Signups API
The Signups API from Hightouch — 1 operation(s) for signups.
The Signups API from Hightouch — 1 operation(s) for signups.
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/hightouch:hightouch-signups-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: Hightouch Signups API
version: 1.0.0
description: Hightouch Public Rest API to access syncs, models, sources and destinations
contact:
name: Hightouch
url: https://hightouch.com
servers:
- url: https://api.hightouch.com/api/v1
tags:
- name: Signups
paths:
/signups:
post:
operationId: CreateSignup
responses:
'200':
description: Ok
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/CreateSignupResponse'
- $ref: '#/components/schemas/SignupErrorResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/SignupErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/SignupErrorResponse'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/SignupErrorResponse'
'422':
description: Unprocessable
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/SignupErrorResponse'
- $ref: '#/components/schemas/ValidateErrorJSON'
'500':
description: Something went wrong
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: Confirmation could not be sent
content:
application/json:
schema:
$ref: '#/components/schemas/SignupErrorResponse'
description: 'Record a signup: consent for a delivery handle, plus the fields the form
collected.
Whether consent settles immediately or waits for a double opt-in
confirmation is the channel''s configuration, so one call covers both and
the response says which happened.'
summary: Capture a signup
security:
- bearerAuth: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSignupRequest'
tags:
- Signups
components:
schemas:
SignupErrorResponse:
properties:
message:
type: string
code:
type: string
required:
- message
- code
type: object
InternalServerError:
type: string
enum:
- Internal Server Error
ValidateErrorJSON:
properties:
message:
type: string
enum:
- Validation failed
details:
properties: {}
additionalProperties: {}
type: object
required:
- message
- details
type: object
additionalProperties: false
SignupChannel:
type: string
enum:
- email
- sms
description: Delivery channels a signup can consent on.
SignupTraitsRequest:
properties: {}
additionalProperties:
anyOf:
- type: string
- type: number
format: double
- type: boolean
type: object
description: 'A signup''s own fields, as collected by the form. They are written to the
customer''s warehouse and never stored by Hightouch.'
CreateSignupRequest:
properties:
traits:
$ref: '#/components/schemas/SignupTraitsRequest'
optIn:
type: string
enum:
- single
- double
description: 'Force an opt-in style. Omit to let the topic and channel decide; a value
they cannot honor is refused rather than silently resolved.'
source:
type: string
description: Which form or landing page this signup came from.
topicExternalIdentifier:
type: string
topicId:
type: string
description: 'The subscription topic being consented to, by id or external identifier.
Omit both to record consent for the channel itself.'
channel:
$ref: '#/components/schemas/SignupChannel'
handle:
type: string
description: Email address or E.164 phone number, matching `channel`.
required:
- channel
- handle
type: object
CreateSignupResponse:
properties:
status:
type: string
enum:
- subscribed
- doi_pending_confirmation
required:
- status
type: object
description: '`subscribed` means consent settled in this request. `doi_pending_confirmation`
means a confirmation was sent and consent settles when the person answers,
which may be days later.'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: Bearer
x-provenance:
method: harvested
publisher: Hightouch
source: https://api.hightouch.com/api/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)