Skip to content

Create or update a contact, matched by email

POST
/api/v1/workspaces/{workspace}/contacts/upsert
# REPUTECAST_API_KEY: an API key (rc_live_…) with subscribers:create (and subscribers:edit to update contacts).
# Replace reputecast.example.com with your public URL and your-workspace with your workspace slug.
# List IDs come from GET /api/v1/workspaces/your-workspace/lists.
curl --request POST \
--url https://reputecast.example.com/api/v1/workspaces/your-workspace/contacts/upsert \
--header "Authorization: Bearer $REPUTECAST_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"firstName": "Sam",
"lastName": "Rivera",
"language": "en-US",
"tags": ["trial"],
"lists": ["0192f1c4-3a5b-7c2d-8e9f-1a2b3c4d5e6f"],
"consent": "double"
}'

Permission: subscribers:create

Adds to lists with single or double opt-in. Never adds someone back to a list they left (409 unsubscribed) or a suppressed address (409 suppressed). Updating an existing contact needs subscribers:edit.

workspace
required

Workspace slug

string
/^[a-z0-9][a-z0-9-]{1,62}$/

Workspace slug

Media typeapplication/json
object
company
string
<= 200 characters
consent
string
Allowed values: single double
email
required
string
>= 3 characters <= 254 characters
fields
object
key
additional properties
firstName
string
<= 100 characters
language
string
<= 40 characters
lastName
string
<= 100 characters
lists
Array<string>
<= 20 items
tags
Array<string>
<= 50 items

OK

Media typeapplication/json
object
confirmationSent
required
boolean
contactId
required
string
created
required
boolean
email
required
string
lists
required
Array<object>
object
id
required
string
name
required
string
status
required
string
Allowed values: subscribed pending
tags
required
Array<string>

Example

{
"lists": [
{
"status": "subscribed"
}
]
}

Error

Media typeapplication/problem+json
object
code

Stable error code, e.g. permission_denied

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object>
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

helpers

Members who hold the missing permission

Array<string>
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
meta
object
key
additional properties
permission

The missing permission key

string
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank

Example

{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}