This is the documentation for Reincubate's ricloud API. The API provides users access to their own data in Apple's iCloud and local iTunes backups via the Reincubate Relay app.

For product information see the ricloud API product page.

Key concepts


The API is organised into a set of resources. A client can create, retrieve, update and destroy (CRUD) these to configure, trigger, and monitor operations on the API. See the API resource reference for more details.

Asynchronous processing

The API relies on asynchronous operations for setting up sessions against third-party services and data processing. This gives it the ability to manage a large amount of data demand while interacting with external services responsibly. It also affords extra flexibility to react to fluctuations in response times or degradation in services from third parties.

Storage bucket publishing

Data requested from the API is published directly into a client's bucket on either Google Cloud Storage or Amazon S3. This helps to minimise issues related to scaling data delivery, and also enables faster data retrieval as publishing is less likely to become a bottleneck.

Webhook notifications

Notification of asynchronous operation completion is handled via webhooks, whereby events are sent to a client's server through standard HTTP requests. These events contain information on where to find requested data within a client's bucket, allowing the client to make a decision on when and how to use it.

Key terms

Before plunging into the getting started section, it is helpful to be familiar with a handful of terms and concepts that will be used throughout.


A service describes a collection of data sources available through the API. This includes third-party services, such as iCloud, or Reincubate products, such as asrelay.

Different services will have varying requirements for certain resources on the API, as well as alter the overall lifecycle of API objects. For example, the payload needed to create a session for the iCloud service differs from that needed on the asrelay service.


These are specific sources of data within a service. An iCloud account is the primary source of the iCloud service, whereas a Reincubate Relay app instance is the primary source of the Reincubate Relay service.


A user represents the end-user that is requesting data. In many cases, this will be a user of your application.


A session represents access to a specific source, and one is needed in order to retrieve any information or data from the source through the API.

Creating a session is the equivalent of a 'login' into an iCloud account or 'pairing' with a Reincubate Relay app instance.

The API will execute the session initialisation process asynchronously. This means the call to create a session will return immediately, but the session will not be ready to use until initialisation has completed.


Polls are how users can request data through the API. An active session against the targeted source is needed for a poll to be created.

All polls are processed asynchronously via one or more tasks, and results are published to cloud storage buckets configured on your organisation.


These are the underlying chunks of work performed by the API. When a session is created, it also creates a task in order to perform any initialisation against external services. When a poll is created, it will create at least one task to perform any necessary work.


A result is a reference to data or a file published to a client's storage bucket.

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 7:45 PM GMT.

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

Our awesome support team

Can we improve this article?

We love hearing from users: why not drop us an email, leave a comment, or tweet @reincubate?

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