> For the complete documentation index, see [llms.txt](https://help.recart.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.recart.com/developers/public-api/subscriber/retrieve-a-single-subscriber.md).

# Retrieve a single subscriber

One subscriber by internal id — timezone, current segments and, per selected channel, status, dates, acquiring source, country and the opt-in / opt-out history. Phone number, email and names are never returned. To find the id behind a phone number use GET /subscribers?phoneNumber=.

```json
{"openapi":"3.1.0","info":{"title":"Recart API","version":"2023-12"},"tags":[{"name":"Subscriber","description":"Subscribers"}],"servers":[{"url":"https://api.recart.com/app-integrations/2023-12","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Recart-API-Key","description":"It can be obtained in Recart account after contacting Support"}},"schemas":{"Subscriber":{"type":"object","description":"One subscriber — no phone number, email or name. Channel data sits\nunder the channel key; only the channels selected with `channel`\nare present.\n","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["subscribers"]},"attributes":{"type":"object","required":["id","segments","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"Internal ID of the subscriber"},"timezone":{"type":"string","description":"IANA timezone name assigned to the subscriber"},"segments":{"type":"array","description":"Segments the subscriber is a member of right now — no membership history","items":{"type":"object","required":["id","name","type"],"properties":{"id":{"type":"string","description":"ID of the segment"},"name":{"type":"string","description":"Name of the segment as shown in the dashboard"},"type":{"type":"string","description":"segment = dynamic, rule-based; list = manually managed","enum":["segment","list"]}}}},"createdAt":{"type":"string","format":"date-time","description":"When the subscriber record was created — the first time the subscriber was seen on any channel"},"updatedAt":{"type":"string","format":"date-time","description":"Last change to the subscriber record"},"sms":{"type":"object","description":"The subscriber's SMS channel","required":["status","subscriptionSource","optinHistory"],"properties":{"status":{"type":"string","description":"subscribed while the number receives SMS; unsubscribed after any opt-out or cleaning removal","enum":["subscribed","unsubscribed"]},"subscribedAt":{"type":"string","format":"date-time","description":"When the current SMS subscription started; reset by a re-subscribe"},"lastInteractionAt":{"type":"string","format":"date-time","description":"Last inbound event on the channel — the opt-in, a STOP or START keyword reply, or an import touching the record"},"subscriptionSource":{"$ref":"#/components/schemas/SubscriptionSource"},"country":{"type":"string","description":"Country code of the phone number from the carrier lookup"},"optinHistory":{"type":"array","description":"Every opt-in and opt-out event of the channel, oldest first","items":{"$ref":"#/components/schemas/Optin"}}}}}}}},"SubscriptionSource":{"type":"object","description":"Where a subscription or an opt-out came from. For a subscription or\nan optin event `type` is the acquiring source — an opt-in tool type\n(popup, landing-page, embedded-form, keyword) or a non-tool source\n(import, custom-integration, public-api, shopify_checkout, …). For an\noptout event it is the reason: keyword, ai, opt_out_link, manual\n(dashboard), public-api, or a cleaning reason (deactivated_number,\nknown_litigator, landline, reassigned). `id` and `name` are present\nwhen the source is an entity: the opt-in tool (its name) or the\nimport (its file name); name is an empty string when it could not\nbe resolved.\n","required":["type"],"properties":{"type":{"type":"string","description":"Source slug or opt-out reason"},"id":{"type":"string","description":"ID of the opt-in tool or import behind the source"},"name":{"type":"string","description":"Name of the opt-in tool, or file name of the import; empty when unresolved"}}},"Optin":{"type":"object","description":"One opt-in or opt-out event of a channel.","required":["type","createdAt"],"properties":{"type":{"type":"string","description":"optin = the subscriber joined the channel; optout = the subscriber left it","enum":["optin","optout"]},"createdAt":{"type":"string","format":"date-time","description":"When the event happened"},"source":{"$ref":"#/components/schemas/SubscriptionSource"},"sourceUrl":{"type":"string","description":"optin only — the page the opt-in happened on, query string included"},"integrationSlug":{"type":"string","description":"optin only — the integration that created the subscription"}}},"HttpErrorBody":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["id","code","title","detail"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"}}}}}}},"responses":{"HttpError":{"description":"HTTP Error response","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/HttpErrorBody"}}}}}},"paths":{"/subscribers/{id}":{"get":{"summary":"Retrieve a single subscriber","tags":["Subscriber"],"operationId":"getSubscriber","description":"One subscriber by internal id — timezone, current segments and, per\nselected channel, status, dates, acquiring source, country and the\nopt-in / opt-out history. Phone number, email and names are never\nreturned. To find the id behind a phone number use\nGET /subscribers?phoneNumber=.\n","parameters":[{"name":"id","in":"path","required":true,"description":"Internal ID of the subscriber","schema":{"type":"string"}},{"name":"channel","in":"query","description":"Channels to return; each selected channel is a key of the\nresource. Defaults to sms, the only channel served today.\n","schema":{"type":"array","items":{"type":"string","enum":["sms"]},"default":["sms"]}}],"responses":{"200":{"description":"Ok","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Subscriber"}}}}}},"4XX":{"$ref":"#/components/responses/HttpError"},"5XX":{"$ref":"#/components/responses/HttpError"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.recart.com/developers/public-api/subscriber/retrieve-a-single-subscriber.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
