Cover image for: Sources

A source represents a source of data from a service. For example, an iCloud account is a source of the iCloud service.

Sources can have child sources, such as a rirelay.instance source having multiple rirelay.source sources which can be targeted individually.


name type description
id source ID Resource identifier.
resource string, always source Resource type specifier.
user user ID The user associated with this source.
type string The type of this source, for example icloud.account.
identifier string A unique identifier for the source within the scope of its service.
parent optional, source ID Populated if the source is a child of another.
children list object containing source resources Contains any sub-sources of the source.
state string One of: unvalidated, active, deactivated, blocked, locked.
date_created datetime When the resource was created.


Currently supported types include:

  • icloud.account, the primary source on the iCloud service.
  • rirelay.instance, the primary source on the rirelay service. Corresponds to an instance of the Reincubate Relay application.
  • rirelay.source, a child source of rirelay.instance. Corresponds to a device that the parent Reincubate Relay app has access to.


The value of a source's identifier attribute identifies it uniquely within its service. For an iCloud account this would be the username. For a Reincubate Relay app instance it would be the instance ID.


If the source is a child source this field will point to its parent source object. The top source in this hierarchy is referred to as the primary source.

A child source cannot be created directly via the API, but are automatically created by the API when the appropriate poll is created.


a session has never been successfully created against this source, therefore the API cannot tell if it is a valid source.
the source has been validated and is ready for use.
access to the source has been forbidden by the owning organisation.
access to the source has been forbidden by an API admin.
access to the source has been temporarily restricted by the external service.

Retrieve GET /sources/{source ID}

Using cURL

curl<source ID> \
  -H 'Authorization: Token <your key_token>'

Using ricloud-py

import ricloud

source = ricloud.Source.create(<source ID>)

Sample response

  "id": 1,
  "resource": "source",
  "user": 1,
  "type": "mocks.mock",
  "identifier": "",
  "info": null,
  "parent": null,
  "children": {
      "data": [],
      "has_more": false,
      "total_count": 0,
      "url": "/sources/1/children"
  "state": "active",
  "date_created": "2020-02-20T11:59:03.195527Z"

List GET /sources

name type description
organisation super, organisation ID For API admins to filter by organisation.
user user ID Filter by associated user.
type string Filter by source type.
identifier string Filter by source identifier.
state string Filter by source state.
date_created datetime filter Filter by resource creation date.

Using cURL

curl \
  -H 'Authorization: Token <your key_token>'

Using ricloud-py

import ricloud

sources = ricloud.Source.list()

Update POST /sources/{source ID}

name type description
state string Update the source state.

Using cURL

curl<source ID> \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "state": "deactivated"

Using ricloud-py

import ricloud

source = ricloud.Source.update_with_id(<source ID>, state='deactivated')

# OR

source = ricloud.Source.retrieve(<source ID>)




  • Major The children attribute of the source object is now a nested list object, rather than a simple list attribute.


  • Adds two new source types: rirelay.instance and rirelay.source.

How can we help?

Our support team are here to help!

Our office hours are Monday to Friday, 9 AM to 5 PM GMT. The time is currently 9:38 PM GMT.

We aim to reply to all messages within one working day.

Our awesome support team

© 2008 - 2024 Reincubate Ltd. All rights reserved. Registered in England and Wales #5189175, VAT GB151788978. Reincubate® and Camo® are registered trademarks. Privacy policy & terms.