How a contact first joined: the source, UTM parameters and referring page
GET
/api/v1/workspaces/{workspace}/contacts/{contact}/growth
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/contacts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/growth"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/contacts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/growth';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/contacts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/growth \ --header 'Authorization: Bearer <token>'Permission: subscribers:view
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”workspace
required
Workspace slug
string
Workspace slug
contact
required
string format: uuid
Responses
Section titled “Responses”OK
Media typeapplication/json
object
attributed
required
boolean
joinedAt
string format: date-time
leftAt
string format: date-time
leftKind
string
page
required
string
referrer
required
string
source
required
object
carried
string
carriedLabel
string
firstJoin
string format: date-time
formKind
string
hosts
required
Array<string>
importCount
integer format: int64
imported
required
boolean
importedAt
string format: date-time
integration
string
key
required
string
keyPrefix
string
kind
required
string
listChoice
boolean
name
required
string
tookImportDay
integer format: int64
url
string
workflow
string
utmCampaign
required
string
utmMedium
required
string
utmSource
required
string
Example generated
{ "attributed": true, "joinedAt": "2026-04-15T12:00:00Z", "leftAt": "2026-04-15T12:00:00Z", "leftKind": "example", "page": "example", "referrer": "example", "source": { "carried": "example", "carriedLabel": "example", "firstJoin": "2026-04-15T12:00:00Z", "formKind": "example", "hosts": [ "example" ], "importCount": 1, "imported": true, "importedAt": "2026-04-15T12:00:00Z", "integration": "example", "key": "example", "keyPrefix": "example", "kind": "example", "listChoice": true, "name": "example", "tookImportDay": 1, "url": "example", "workflow": "example" }, "utmCampaign": "example", "utmMedium": "example", "utmSource": "example"}default
Section titled “default”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
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}