Getting Started

Welcome to Mycorr, the collaborative data platform designed to improve your productivity and bring structure to your data workflows. If you are someone who works with a lot of data, Mycorr will be a time-saver by centralizing your data and transforming your traditional spreadsheets into powerful, structured, and shareable resources.

This guide will introduce you to the core concepts and features that make Mycorr unique.

Why Choose Mycorr?

  • Real-time collaboration and synchronization

    Work together with other users in real time. See data changes instantly as they happen.

  • Data versioning

    Track every change, create checkpoints, and roll back to previous versions when needed. Our versioning system ensures you never lose important data and can always track your history.

  • Access Management

    Control who can view, edit, or share your resources. Define granular permissions for individuals or teams, ensuring your data stays secure and only accessible to the right people.

  • Integration with external datasources

    Quickly import data from external datasources and keep your data in sync with external sources.

Ready to Get Started ?

  • Learn about Account Management to get access to Mycorr.
  • Explore the Resources section for detailed guides on available resources and how to interact with them.
  • Explore different Data Sources you can bring data from into Mycorr.
  • Check out Data Management to get into the details of different ways to manage your data.
  • Visit API Access to learn about accessing your data from external applications.

Account Management

You can get started into Mycorr journey by creating an account.

If you have a Google or a Github account, you can sign up in a matter of seconds. But even if you don’t, you can still create an account in a few simple steps.

Resources

Mycorr's strength lies in its structured and shareable resources made available to its users. It allows them to organize and collaborate on their data with ease without worrying about conflicts or inconsistencies.

To help you get started, the following section provides an overview of what resources defined in Mycorr and how they are structured inside your workspace. Understanding the structure will make it easier for you to crunch the data.

Start by diving into our Resources Structure for a detailed breakdown.

Structure

In Mycorr, all data is organized in Models and Tables within them. Think of this as databases and tables in traditional systems.

structure

Tables always have a parent model, from which they can be edited. In that model, they exist in their latest state. When tables are shared to other users, they can import the tables into their own models. When a table is imported into a model, it can only be visualized, but not edited.

Learn more about Sharing of Tables.

Models

Think of Models as folders that hold data together in a single common space. A Model contains one or more Tables, displayed on a shared Canvas where you can collaborate with others and see real-time data changes as they happen.

When you create a Model, you are automatically the Owner of it, which is the highest level of access to the Model.

You can create Models in your private workspace, or within Teams you are a part of.

After the Model is created, you can add Tables to it and start working on your data. You can also share the Model with others, allowing them to collaborate on the same data.

Learn all about Sharing of Models.

Tables

Our Tables are just like tables in a database, that you can create, edit and manage within a Model.

A Table is accessed and visualized through Table Views, of which a Table can have as many as you like. For example, you can create one Table Views that are filtered or sorted differently.

table view
Table Views are slices of Tables. Adding a Table View, as its name suggests, creates a new view of the Table, allowing you to visualize and operate on it independently.

Within a Table View, you can:
  • Remove columns
  • Add Columns
  • Remove Rows
  • Add Rows
  • Filter Data
  • Update Data

Any data changes made within a Table View are persisted to the main Table to ensure data consistency between views. Learn more about Data Management.

In this part, we'll cover the way you can share resources in Mycorr and what permissions you can define for each resource.

Sharing Resources

What can you share?

Resources in Mycorr are private by default, meaning that only you can access them when you create them. However, you can share both models and tables with individual Users or Teams you are a part of, and define the level of access they get to the resource.

How can you share?

  • Sharing to Users

In order to share a resource with a group of users, you’ll need their email addresses. By default, once the resource is shared, they will receive both a notification in their Mycorr account and an email with a link to directly access the resource. In other cases, this will depend on the notification settings of the user.

Depending on the access level you choose, the users will be able to directly access the resource as soon as it is shared with them.

  • Sharing to a Team

Alternatively, you can share a resource with a team by selecting one of the teams you are a part of. By doing so, all members of the team will have access to it, as per the access level you have chosen.

Permissions

What are permissions?

Permissions are the settings defined when sharing a resource that determine what actions they can perform on the resource and what access level they have.

How can you set permissions?

When sharing a resource, you can choose from a list of permissions that are available. Each one of the resource has its own set of permissions :

Sharing Models

As the Model Owner, you are the only one who can invite others to collaborate on your Models by sharing it with Users or Teams you are a part of.

When sharing a Model, you can assign one of these two roles :

  • Collaborator : Allows users or teams to edit the Model and Tables within it.
  • Viewer : Allows users or teams to view the Model and its Tables but not make changes.

Neither Collaborators nor Viewers can share the Model. Only you, as the Owner, have the permission to do so.

Revoking Access to a Model

As the Model Owner, you can revoke access to a Model at any given time by removing a User or Team from the shared list.

When revoking access, you can choose to allow the User or Team to keep any table (owned by the model) they imported, or you can choose to remove all those imports. When choosing the second option, you revoke access to the model entirely with all its tables.

If you decide to allow them to keep the imports of the tables owned by that model, they will retain the versions they already have of the tables, whether they are behind the original versions or up-to-date, but they will no longer receive updates made to the tables.

Sharing Models

As the Model Owner, you can share Tables owned by the Model individually with Users or Teams, you are a part of, even without sharing the entire Model.

When sharing a Table, you can grant one of these two permissions :

  • Can Import : Allows users or teams to import the Table into other Models but not share it with others.
  • Can Reshare : Allows both importing the Table into other Models and sharing it with others.

Only you, as the Model Owner, can share a Table and give the re-share permission. Users or Teams who can reshare a Table can only share it again without the ability to grant the re-share permission to whoever they are sharing it with.

Revoking Access to a Table

As the Model Owner, you can revoke access to a Table at any given time by removing a User or Team from the shared list.

When revoking access, if the User or Team has imported the table elsewhere, you can choose to let them keep the imported copies or remove any import of the table.

If you allow them to keep the importeds, they will retain the version they already have of the table in the model(s) they have imported it into, but they will no longer receive updates made to the table.

Ownership Transfer of a Table

As the Model Owner, you can transfer ownership of a Table to another Model, making it the new Parent Model of the Table.

You can transfer ownership to models you own or to models you are collaborator in.

If the Table is imported in the target model we are transferring ownership to and it is not up-to-date with the latest version of the table in the source model, the table's state in the target model will be fast-forwarded to the latest version at the time of the ownership transfer.

When transferring ownership of a table in a model you are Collaborator in, the model Owner will be notified and would need to accept the ownership transfer request.

Data Sources

In Mycorr, tables can originate from different sources. Tables manually created within a Model are Owned by the Model. But, you can always bring in data from external sources.

You can access the Import section inside a Model where you can find different options :

Other options are doable on the Canvas directly, such as:

Table Import

In the Import section, you will see all the Models you have access to, whether those you own or those that were shared with you. Below each Model, you will find a list of all the tables available there. You can also find a list of Tables that have been explicitly shared with you.

You can reuse those Tables by importing them into the current Model you are working on. In order to do so, you can drag and drop any Table into the Canvas.

If you import Tables from Models where you are a Collaborator or Viewer and the Table is not explicitly shared with you, this action will trigger a request for the Model Owner to share the Table with you. You will need to wait for their approval before you can access the Table.

⚠️ Pending Import Requests

Imported Tables that are waiting for the Model Owner’s response will not appear in the Canvas until the request is approved and you create a Table View based on it.

You can find the pending tables grayed out in the Directory section.

You can choose to cancel the import request at any time.

If you are a viewer of a Model, meaning that you can not edit it, and one of the tables owned by your models have been imported there, you can still control the access to the table.

Data Consistency Across Models

After importing Tables, we make sure that the data in the source Table and the imported Table are consistent across Models.

Whenever changes are made to the original Table, they are detected in the Models where the Table has been imported, allowing you to manually trigger a sync to update the data to the latest state to ensure consistency wherever the Table is.

CSV Upload

You can ingest CSV data into your Models by dragging and dropping a CSV file onto the Canvas.

You can optionally set a specific delimiter (e.g., semicolon, comma, tab…) or header row number for more control over the data you are importing.

⚠️ Note that only .CSV files are accepted for now.

Google Sheets

Another way to import data into your Canvas is by connecting to Google Sheets and granting access to your spreadsheets. Then you can ingest them into your Models.

Inside a Model, in the Import section, you can:

  • Select one or multiple sheets to import into your Model.
  • Each selected sheet is imported as its own Table inside the Model.

Once imported, you can keep the data in sync. Changes made in the original sheet can be detected and you can trigger a sync.

⚠️ See Google Sheets Sync Guidelines. for more information.

Syncing Data from Google Sheets

When importing a Spreadsheet into the Canvas, there will be a button for the created Table that allows users to check for updates in the Spreadsheet. If there are any updates found, the system will automatically update the table with the latest data.

Our strategy accounts for:

  • Rows Addition/Deletion
  • Column Addition/Deletion
  • Value Updates in Cells

But, while we offer robust synchronization system, there are some rules to keep in mind to ensure smooth operations and prevent inconsistencies.

Column Reorder

If you move a lot of columns around in your Spreadsheet, our system will treat them as new columns at new positions rather than reordered columns.

Column Renaming

If you rename a column in your Spreadsheet, our system will treat it as a new column at that position rather than a renamed column.

The synchronization doesn't affect the overall structure of the Table in the Canvas. If changes are detected in the Schema and the Table is updated, you will see the correct new order of columns as they appear in the Spreadsheet.

If you need to make significant structural changes, consider re-importing your spreadsheet or contact support for guidance.

Pasted Data

You can quickly create a new Table by copying and pasting data directly into the Canvas.

A Table will be created and you can start manipulating the data right away.

⚠️ Only Pasted Data is editable. Other external Data sources mentioned are read-only.

Data Management

Mycorr is all about efficiently managing data. The platform is designed to help you organize, track, and collaborate on your data.

For more details on specific aspects of data management, see the sections below:

Data Versioning

One of the most important features in Mycorr is data versioning, which ensures that every significant change to your table is tracked and recoverable. This ensures a robust collaboration and provides the ability to restore previous states of your tables.

Table Versions

Each Table has a Snapshot at any given version. A Table Snapshot holds the Table Version, the Table Meta and the Table Schema at that version.

The Table Meta includes the metadata about rows, and on the other hand, the Table Schema includes the metadata about columns and the overall schema of the table.

Each data operation performed on a table, such as editing the schema, rows or modifying the data itself, results in the creation of a new Table Version. This ensures that you always have a complete history of meaningful changes.

Operations that do not affect the data or schema, such as resizing the table views, do not increment the Table Version.

Checkpoints

You can define a checkpoint for any table version. A checkpoint acts as a restorable point in your table's history.

Each table version can have one checkpoint.

Checkpoints can be deleted at any time.

Aliases

Aliases provide a way to give a table version a human-friendly name. When you rename a checkpoint, you are creating or updating an alias.

You can create many aliases for a Table Version, and you can set one of them as the default name for the Table Version.

Aliases can be deleted at any time.

Restoring and Checking Out

  • Owned Tables: If the Table is Owned, meaning that you are working in it's parent Model, you can restore it to any checkpoint, effectively rolling back to that point in history.
  • Imported Tables: For tables you have imported from other Models, you can only view a certain checkpoint, not restore or modify the original table.

Data Filtering

Data Commits

Teams

You can kick-off collaboration the right way by creating a Team and inviting members on board. By doing so, you get to collectively manage resources with different users within a single shared workspace.

You, as a user, can create a team or be invited to one at any given time. We distinguish two roles within a Team :

Admin

This is the highest access-level. When creating a Team, you are automatically assigned as the Admin.

An Admin is a member who has full control over the Team and can perform most of the actions within the Team.

Member

When you are invited to a Team, you are assigned as a Member.

Unless you are assigned the Admin role alongside the invitation or later on, you will have limited administrative access to the Team but you can still contribute to the resources within the Team and collaborate effectively.

Depending on the Team role you have, you can perform different actions within the Team. Learn about Team Management

Creating a Team

When creating a Team, here are the steps you can follow:

  1. Access the Teams section from the left sidebar menu.
  2. Click on the "Create Team" button.
  3. Enter the Team's required metadata.
  4. Click on the "Create" button to create the Team.

For Team's Metadata, only the name is required. The description is optional and the color will be set to default if not specified.

You can invite members to your Team alongside the creation or you can add them later from the Team's page.

Team Management

Inside a team, Mycorr maintains the same fundamental structure, but adds a layer where models are grouped together in a shared workspace.

For team management, we distinguish two types of roles : Team-Level Roles and Model-Level Roles that are inherited through team membership.

Team-Level Roles

Team-level roles determine what administrative actions users can perform within the team structure itself.

ActionsAdminMember
Edit Team Metadata
Delete Team
Leave Team

An admin can only leave a team if they are not the last admin in the team.

ActionsAdminMember
View Members
Add Members
Delete Members
Update Member Roles

Model-Level Roles

Users inherit model-specific permissions based on their team membership and also their relationship to the models themselves.

Creating a Model within a Team

You can directly create a Model inside the Team and set the team's access-level to the Model. By doing so, all team members will inherit it.

The access-level of a team to a Model could either be a Collaborator or a Viewer. See what actions each role can perform on the Model.

If you are already a collaborator of the model outside of the team, meaning that the model was explicity shared with you, and the model is shared with the team with viewer access only, you will have the highest level of access. In this case, you will be a collaborator of the model inside the team.

Not only you can manually create models inside a team, but you can also link one of your models from your private workspace to a team, and similarily set the access-level of the team to this model.

Models Management within a Team

ActionAdminMember
Add Models
View Models
Edit ModelsOnly Owner/CollaboratorOnly Owner/Collaborator
Dissociate ModelsOnly Owner

Dissociating a model means that the model will no longer be shared with the team, but remains in the user's private workspace.

API Access

Mycorr provides multiple ways for users to access their data from external applications :

Personal Access Tokens

Personal Access Tokens (PATs) are secure API credentials that allow you to authenticate and access your data in Mycorr from external applications. They are implemented using JWT (JSON Web Tokens), making them encrypted, secure and easy to use.

Creating a Personal Access Token

Step 1: Navigate to Access Page

  1. Log into your mycorr account.
  2. Navigate to the Access section in the left menu.
  3. Click on Generate button.

Step 2: Configure Your Token

  1. Name: Give your token a descriptive name.
  2. Scope: Choose the level of access needed :
    • Read: Access to view data and resources
  3. Expiration: Set an expiration date of the token.

Step 3: Save your Token

Important: Once your token is generated, make sure to copy and save it immediately. For security reasons, you won't be able to view it again.

Mycorr SDKs

Access your Mycorr data programmatically using official SDKs.

Available SDKs

Python SDK (pymycorr)

The official Python client for accessing Mycorr table data programmatically. It uses Apache Arrow for efficient data transfer and returns data as pandas or polars DataFrames.

Installation

pip install pymycorr

⚠️ Requires Python 3.10 or higher.

Authentication

pymycorr authenticates using a personal access token. You can provide it in three ways:

  1. Environment variable — set MYCORR_API_TOKEN in your shell:
export MYCORR_API_TOKEN="your-api-token"
  1. .env file — create a .env file in your project directory:
MYCORR_API_TOKEN=your-api-token
  1. Constructor parameter — pass the token directly:
from pymycorr import MyCorr

client = MyCorr(token="your-api-token")

To generate a token, see Personal Access Tokens.

⚠️ Never commit API tokens to version control. Use environment variables or a .env file that is listed in your .gitignore.

Quick Start

from pymycorr import MyCorr

# Initialize the client (reads MYCORR_API_TOKEN from env)
client = MyCorr()

# Fetch a table as a pandas DataFrame
df = client.get_table("your-table-id")
print(df.head())

# Fetch a specific version
df_v2 = client.get_table("your-table-id", version=2)

# Fetch as a polars DataFrame instead
df_polars = client.get_table("your-table-id", engine="polars")

# Get table metadata without downloading data
info = client.get_table_info("your-table-id")
print(info["schema"])

API Reference

MyCorr(url=None, token=None, env_file=None, progress="auto")

Creates a new client instance.

ParameterDescription
urlAPI endpoint. Defaults to the Mycorr production URL.
tokenAPI token. If not provided, reads from MYCORR_API_TOKEN env variable.
env_filePath to a .env file. Defaults to .env in the current directory.
progressProgress display: "auto", True, or False.

get_table(table_id, version=None, engine="pandas", progress=None)

Fetches table data as a DataFrame.

ParameterDescription
table_idThe table identifier (found in the table URL).
versionVersion number (int) or alias ("latest", "stable"). Defaults to the latest version.
engine"pandas" (default) or "polars".
progressOverride the client-level progress setting for this request.

get_table_info(table_id, version=None)

Returns table metadata and schema as a dictionary, without downloading the full dataset.

ParameterDescription
table_idThe table identifier.
versionVersion number or alias. Defaults to the latest version.

Error Handling

pymycorr raises specific exceptions for different error scenarios:

ExceptionDescription
TableNotFoundErrorThe requested table does not exist or you don't have access.
QuotaExceededErrorYour egress quota has been exceeded.
TableConversionErrorFailed to convert the data to a DataFrame.
StreamingErrorError during data streaming.
TableAPIErrorBase exception for all API errors.
from pymycorr import MyCorr
from pymycorr.exceptions import TableNotFoundError

client = MyCorr()

try:
    df = client.get_table("your-table-id")
except TableNotFoundError:
    print("Table not found — check the table ID and your permissions.")

Billing

Plans

Legal

Terms of Service

1. Acceptance of Terms

By accessing or using MyCorr ("Service"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, you must not access or use the Service.

These Terms constitute a legally binding agreement between you and Recons Ltd, a company incorporated in England and Wales with its registered office in London, United Kingdom ("Recons Ltd", "we", "us", or "our").

You must be at least 16 years of age to use the Service. By using the Service, you represent and warrant that you are at least 16 years old. If you are using the Service on behalf of an organisation, you represent and warrant that you have the authority to bind that organisation to these Terms.

2. Definitions

  • "Content" means any data, text, files, schemas, table structures, database configurations, or other materials that you upload, create, store, or transmit through the Service.
  • "Service" means the MyCorr web application, including all features, tools, and APIs provided at alpha.mycorr.app or any successor domain.
  • "User" means any individual who accesses or uses the Service, whether as a registered account holder or otherwise.

3. Description of Service

MyCorr is a collaborative data modelling and database management platform that enables teams to model database schemas, manage data with real-time synchronisation, and handle data imports from various sources including CSV, Parquet, and Google Sheets.

4. Alpha/Beta Disclaimer

The Service is currently in an ALPHA/BETA development phase. This means:

  • The Service is provided for evaluation and testing purposes.
  • Features may be incomplete, contain errors, or behave unexpectedly.
  • Features may be added, changed, or removed at any time without notice.
  • Data loss or corruption may occur. You are solely responsible for maintaining backups of your Content.
  • The Service may experience downtime, interruptions, or performance degradation.
  • We make no guarantees regarding uptime, availability, or reliability during the alpha/beta phase.
  • We reserve the right to discontinue the Service, or any part of it, at any time without notice or liability.
  • We may reset, delete, or migrate data at any time during the alpha/beta phase.

YOU ACKNOWLEDGE AND AGREE THAT THE SERVICE IS IN AN ALPHA/BETA STAGE AND THAT YOUR USE OF THE SERVICE IS AT YOUR OWN RISK.

5. User Accounts

  • (a) You must authenticate using Google OAuth to create an account. You are responsible for maintaining the security of your Google account credentials.
  • (b) You are responsible for all activities that occur under your account.
  • (c) You must notify us immediately at support@mycorr.app if you become aware of any unauthorised use of your account.
  • (d) You may not create multiple accounts for the same individual.
  • (e) We reserve the right to suspend or terminate accounts that we reasonably believe are compromised or being misused.

6. User Responsibilities

You agree to:

  • Provide accurate and complete information when using the Service.
  • Use the Service only for lawful purposes and in compliance with all applicable laws and regulations.
  • Comply with all applicable data protection laws when storing personal data of third parties in the Service.
  • Not use the Service in any manner that could damage, disable, overburden, or impair the Service.

7. Acceptable Use

You agree not to:

  • Attempt to gain unauthorised access to the Service, other user accounts, or any systems or networks connected to the Service.
  • Interfere with or disrupt the Service or servers or networks connected to the Service.
  • Upload, transmit, or store any malicious code, viruses, or harmful content.
  • Use the Service to store or process data that is subject to specific regulatory requirements (such as protected health information under HIPAA or payment card data under PCI DSS) unless you have independently ensured compliance with those requirements.
  • Scrape, crawl, or use automated means to access the Service without our prior written consent.
  • Reverse engineer, decompile, disassemble, or otherwise attempt to derive the source code of the Service.
  • Circumvent, disable, or interfere with any security features of the Service.
  • Use the Service to infringe upon the intellectual property rights of any third party.
  • Impersonate any person or entity or misrepresent your affiliation with any person or entity.
  • Use the Service for any illegal or unauthorised purpose.

8. User Content and Data Ownership

  • (a) You retain all ownership rights in your Content. We do not claim ownership of any Content you upload, create, or store through the Service.
  • (b) By using the Service, you grant us a limited, non-exclusive, worldwide, royalty-free licence to use, copy, store, transmit, and display your Content solely to the extent necessary to provide, maintain, and improve the Service.
  • (c) You are solely responsible for the legality, reliability, appropriateness, and intellectual property ownership of your Content.
  • (d) You represent and warrant that you have all necessary rights and permissions to upload and use your Content through the Service.
  • (e) We may remove or disable access to Content that we reasonably believe violates these Terms or applicable law.

9. Intellectual Property

The Service, including its original content, features, functionality, design, source code, and underlying technology, is owned by Recons Ltd and is protected by international copyright, trademark, patent, trade secret, and other intellectual property laws. Our trademarks and trade dress may not be used in connection with any product or service without our prior written consent.

10. Feedback and Suggestions

If you provide us with any feedback, suggestions, ideas, or recommendations regarding the Service ("Feedback"), you hereby assign to us all rights, title, and interest in such Feedback. We shall be free to use, disclose, reproduce, licence, and otherwise distribute and exploit the Feedback without restriction or obligation to you of any kind.

11. Third-Party Services

The Service integrates with third-party services, including Google (for authentication, Google Sheets import, and cloud storage). Your use of these third-party services is subject to their respective terms of service and privacy policies. We are not responsible for the availability, accuracy, or content of any third-party services, and we do not warrant or endorse any third-party services.

12. Privacy

Your privacy is important to us. Our collection and use of personal data is governed by our Privacy Policy, which is incorporated into these Terms by reference. By using the Service, you consent to the collection and use of your data as described in the Privacy Policy.

13. WARRANTY DISCLAIMERS

THE SERVICE IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, RECONS LTD EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO:

  • IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  • WARRANTIES THAT THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE.
  • WARRANTIES THAT THE RESULTS OBTAINED FROM USE OF THE SERVICE WILL BE ACCURATE OR RELIABLE.
  • WARRANTIES THAT DEFECTS IN THE SERVICE WILL BE CORRECTED.
  • WARRANTIES THAT THE SERVICE WILL BE FREE FROM VIRUSES OR OTHER HARMFUL COMPONENTS.
  • WARRANTIES REGARDING THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY CONTENT OR INFORMATION PROVIDED THROUGH THE SERVICE.

THE SERVICE IS IN AN ALPHA/BETA PHASE AND MAY CONTAIN BUGS, ERRORS, AND INCOMPLETE FEATURES. YOU ACKNOWLEDGE THAT THE ENTIRE RISK ARISING OUT OF YOUR USE OF THE SERVICE REMAINS WITH YOU.

NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED FROM US OR THROUGH THE SERVICE SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THESE TERMS.

NOTHING IN THESE TERMS SHALL EXCLUDE OR LIMIT ANY WARRANTY THAT CANNOT BE LAWFULLY EXCLUDED OR LIMITED UNDER APPLICABLE LAW, INCLUDING THE LAWS OF ENGLAND AND WALES.

14. LIMITATION OF LIABILITY

TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW:

  • (a) IN NO EVENT SHALL RECONS LTD, ITS DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, OR AFFILIATES BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS, LOSS OF REVENUE, LOSS OF DATA, LOSS OF BUSINESS OPPORTUNITIES, LOSS OF GOODWILL, OR COST OF PROCUREMENT OF SUBSTITUTE SERVICES, ARISING OUT OF OR IN CONNECTION WITH YOUR USE OF OR INABILITY TO USE THE SERVICE, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, OR ANY OTHER LEGAL THEORY, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  • (b) OUR TOTAL AGGREGATE LIABILITY FOR ALL CLAIMS ARISING OUT OF OR RELATING TO THESE TERMS OR YOUR USE OF THE SERVICE SHALL NOT EXCEED THE TOTAL AMOUNT OF FEES PAID BY YOU TO US DURING THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO THE CLAIM. IF YOU HAVE NOT PAID ANY FEES, OUR MAXIMUM LIABILITY SHALL BE ZERO POUNDS STERLING (GBP 0).
  • (c) THE LIMITATIONS IN THIS SECTION APPLY REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT LIABILITY, OR OTHERWISE, AND SHALL SURVIVE ANY TERMINATION OR EXPIRATION OF THESE TERMS.

NOTHING IN THESE TERMS SHALL EXCLUDE OR LIMIT LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY NEGLIGENCE, FRAUD OR FRAUDULENT MISREPRESENTATION, OR ANY OTHER LIABILITY THAT CANNOT BE LAWFULLY EXCLUDED OR LIMITED UNDER THE LAWS OF ENGLAND AND WALES.

15. Indemnification

You agree to indemnify, defend, and hold harmless Recons Ltd, its directors, officers, employees, agents, and affiliates from and against any and all claims, liabilities, damages, losses, costs, and expenses (including reasonable legal fees) arising out of or in connection with:

  • Your use of the Service.
  • Your Content or any data you store, process, or transmit through the Service.
  • Your violation of these Terms.
  • Your violation of any applicable law or regulation.
  • Your violation of any third-party rights, including intellectual property rights or data protection rights.
  • Any claim by a third party related to personal data you stored in the Service.

16. Termination

  • (a) You may terminate your account at any time by using the account deletion feature in the Service or by contacting us at support@mycorr.app.
  • (b) We may suspend or terminate your account at any time, with or without cause, and with or without notice, including but not limited to violations of these Terms.
  • (c) Upon termination, your right to use the Service will immediately cease. We may delete your Content and account data in accordance with our data retention policies as described in the Privacy Policy.
  • (d) All provisions of these Terms that by their nature should survive termination shall survive, including but not limited to warranty disclaimers, limitation of liability, indemnification, and governing law.

17. Modifications to Terms

We reserve the right to modify these Terms at any time. When we make material changes, we will update the version number and effective date of these Terms and notify you through the Service. Material changes will require you to review and re-accept the updated Terms before continuing to use the Service. Your continued use of the Service after re-accepting the updated Terms constitutes your agreement to the changes.

18. Dispute Resolution

  • (a) If any dispute arises out of or in connection with these Terms or your use of the Service, you agree to first attempt to resolve the dispute informally by contacting us at support@mycorr.app. We will attempt to resolve the dispute through good-faith negotiation for a period of thirty (30) days.
  • (b) If the dispute cannot be resolved informally, either party may refer the dispute to mediation in accordance with the Centre for Effective Dispute Resolution (CEDR) Model Mediation Procedure.
  • (c) If the dispute is not resolved through mediation within sixty (60) days, either party may bring proceedings in the courts of England and Wales.

19. Governing Law

These Terms shall be governed by and construed in accordance with the laws of England and Wales. Subject to the dispute resolution process in Section 18, the courts of England and Wales shall have exclusive jurisdiction over any disputes arising under these Terms.

If you are a consumer resident in the European Union, you shall also benefit from any mandatory provisions of the law of the country in which you are resident, and nothing in these Terms affects your rights as a consumer to rely on such mandatory provisions.

20. Severability

If any provision of these Terms is found to be invalid, illegal, or unenforceable by a court of competent jurisdiction, such provision shall be modified to the minimum extent necessary to make it valid and enforceable, or if modification is not possible, shall be severed from these Terms. The remaining provisions shall continue in full force and effect.

21. Entire Agreement

These Terms, together with the Privacy Policy, constitute the entire agreement between you and Recons Ltd regarding your use of the Service, and supersede all prior and contemporaneous agreements, proposals, representations, and understandings, whether written or oral.

22. Contact

If you have any questions about these Terms, please contact us at:

Recons Ltd London, United Kingdom support@mycorr.app

Privacy Policy

1. Introduction and Data Controller

This Privacy Policy explains how Recons Ltd ("Recons Ltd", "we", "us", or "our"), a company incorporated in England and Wales with its registered office in London, United Kingdom, collects, uses, shares, and protects your personal data when you use the MyCorr service ("Service").

Recons Ltd is the data controller for the personal data we collect directly from you in connection with your use of the Service. Where you store personal data of third parties in the Service, you are the data controller for that data and Recons Ltd acts as a data processor on your behalf (see Section 13).

This policy applies to all users of the Service worldwide. We comply with the UK General Data Protection Regulation (UK GDPR), the EU General Data Protection Regulation (EU GDPR), and the California Consumer Privacy Act (CCPA) as applicable.

2. Information We Collect

We collect the following categories of personal data:

  • (a) Account Information: your name and email address, obtained through Google OAuth when you sign in to the Service.
  • (b) User-Generated Content: database schemas, table data, model configurations, and any other data you upload, create, or store through the Service. This content is controlled by you and may contain personal data of third parties.
  • (c) Usage Data: session metadata, including when multiplayer collaboration sessions start and end. This data is used solely for system monitoring and service improvement.
  • (d) Technical Data: IP address, browser type and version, device information, and operating system. This data is collected automatically by our web servers.
  • (e) Cookie Data: session authentication cookies necessary for the operation of the Service (see Section 10).

3. How We Collect Information

We collect personal data in the following ways:

  • Directly from you: when you sign in via Google OAuth, create content, or contact us.
  • Automatically: through cookies, server logs, and session monitoring when you use the Service.
  • From third parties: your name and email address from Google when you authenticate via Google OAuth.

Under the UK GDPR and EU GDPR, we process your personal data on the following legal bases:

  • (a) Performance of a Contract (Article 6(1)(b)): processing necessary to provide you with the Service, including account creation, authentication, data storage, and collaboration features.
  • (b) Legitimate Interests (Article 6(1)(f)): processing necessary for our legitimate interests, including service security, system monitoring, performance optimisation, and service improvement. Our legitimate interests do not override your fundamental rights and freedoms.
  • (c) Consent (Article 6(1)(a)): where you have given specific consent for certain processing activities, such as optional features or communications. You may withdraw consent at any time.
  • (d) Legal Obligation (Article 6(1)(c)): processing necessary to comply with applicable laws, regulations, or legal processes.

5. How We Use Your Information

We use your personal data for the following purposes:

  • To provide, operate, and maintain the Service.
  • To authenticate your identity and manage your account.
  • To enable real-time collaboration features, including multiplayer sessions.
  • To monitor and improve the performance, security, and reliability of the Service.
  • To communicate with you about your account, including service updates and security notices.
  • To respond to your requests and provide customer support.
  • To comply with applicable laws and legal obligations.
  • To enforce our Terms of Service and protect our rights.

We do not use your personal data for automated decision-making or profiling. We do not use your Content to train machine learning models.

6. Data Sharing and Subprocessors

We do not sell your personal data. We do not share your personal data with third parties for their own marketing purposes.

We share personal data with the following categories of service providers (subprocessors) who assist us in operating the Service:

  • (a) Google Cloud Platform (Google LLC): cloud infrastructure hosting, authentication (OAuth), Google Sheets integration, and cloud storage. Data is hosted in Google Cloud Frankfurt (europe-west3), European Union.
  • (b) Postmark (ActiveCampaign LLC): transactional email delivery for service-related communications.
  • (c) Infrastructure providers: database and caching services operated on our cloud infrastructure.

All subprocessors are bound by data processing agreements and are required to protect your personal data in accordance with applicable data protection laws.

We may also disclose your personal data if required to do so by law, regulation, legal process, or governmental request, or if we believe in good faith that disclosure is necessary to protect our rights, your safety, or the safety of others.

7. International Data Transfers

Your personal data is hosted on Google Cloud Platform in Frankfurt, Germany (europe-west3), within the European Union.

If you access the Service from outside the European Union or United Kingdom, your data will be transmitted to and stored on servers in the EU. The UK has an adequacy decision with the European Union, permitting data transfers between the UK and EU without additional safeguards.

For transfers to jurisdictions outside the EU/UK that do not have an adequacy decision, we rely on appropriate safeguards such as Standard Contractual Clauses approved by the European Commission or the UK Information Commissioner's Office.

8. Data Retention

We retain your personal data as follows:

  • (a) Account data (name, email): retained for as long as your account is active. Upon account deletion, your account data is deleted within 30 days.
  • (b) User-generated content (schemas, table data): retained for as long as your account is active. Upon account deletion, your content is deleted in accordance with our data lifecycle policies.
  • (c) Session metadata: retained for 7 days for system monitoring purposes, then automatically deleted.
  • (d) Server logs (including IP addresses): retained for 30 days for security and debugging purposes, then automatically deleted.
  • (e) Backup data: retained for up to 30 days after the original data is deleted, then purged.

We may retain certain data for longer periods where required by applicable law or to resolve disputes.

9. Your Rights

Depending on your location, you have the following rights regarding your personal data:

UK and EU Residents (UK GDPR / EU GDPR)

  • Right of Access: you may request a copy of the personal data we hold about you.
  • Right to Rectification: you may request that we correct inaccurate or incomplete personal data.
  • Right to Erasure: you may request that we delete your personal data, subject to certain exceptions.
  • Right to Restriction: you may request that we restrict the processing of your personal data in certain circumstances.
  • Right to Data Portability: you may request a copy of your personal data in a structured, commonly used, machine-readable format.
  • Right to Object: you may object to our processing of your personal data based on legitimate interests.
  • Right to Withdraw Consent: where processing is based on consent, you may withdraw consent at any time without affecting the lawfulness of prior processing.
  • Right to Lodge a Complaint: you have the right to lodge a complaint with the UK Information Commissioner's Office (ICO) at ico.org.uk, or with your local EU supervisory authority.

California Residents (CCPA)

  • Right to Know: you may request information about the categories and specific pieces of personal data we have collected about you.
  • Right to Delete: you may request that we delete the personal data we have collected from you, subject to certain exceptions.
  • Right to Opt-Out: we do not sell your personal data. If this changes, we will provide a clear opt-out mechanism.
  • Right to Non-Discrimination: we will not discriminate against you for exercising your CCPA rights.

Exercising Your Rights

To exercise any of these rights, please contact us at support@mycorr.app. We will respond to your request within 30 days (UK/EU GDPR) or 45 days (CCPA). We may request verification of your identity before processing your request.

You may also export your data directly from the Service using the built-in export features.

10. Cookies

We use only essential cookies necessary for the operation of the Service:

  • Session Cookie: an authentication cookie that identifies your logged-in session. This cookie is set when you sign in via Google OAuth and expires when your session ends or after 7 days of inactivity.

We do not use tracking cookies, analytics cookies, advertising cookies, or any third-party cookies. We do not use any web beacons, pixel tags, or similar tracking technologies.

Because we use only strictly necessary cookies, no cookie consent banner is required under UK or EU law.

11. Data Security

We implement appropriate technical and organisational measures to protect your personal data, including:

  • Encryption of data in transit using TLS/HTTPS.
  • Encryption of data at rest.
  • Fine-grained access controls using role-based authorisation.
  • Regular security reviews and monitoring.
  • Access to personal data limited to authorised personnel on a need-to-know basis.
  • Secure authentication via Google OAuth (we do not store passwords).

While we take reasonable measures to protect your data, no method of electronic transmission or storage is completely secure. We cannot guarantee absolute security.

12. Children's Privacy

The Service is not directed at individuals under the age of 16. We do not knowingly collect personal data from children under 16. If we become aware that we have collected personal data from a child under 16, we will take steps to delete such data promptly. If you believe we have collected data from a child under 16, please contact us at support@mycorr.app.

13. Data Processing Terms

This section sets out the terms under which Recons Ltd processes personal data on your behalf when you act as a data controller by storing personal data of third parties in the Service.

  • (a) Roles: when you store personal data of third parties in the Service, you are the data controller and Recons Ltd is the data processor. You determine the purposes and means of processing; we process such data only on your documented instructions.
  • (b) Scope of Processing: we process your third-party data solely to provide, maintain, and secure the Service. We do not access, use, or disclose such data for any other purpose unless required by applicable law.
  • (c) Security Measures: we implement appropriate technical and organisational measures as described in Section 11 to protect all data processed through the Service.
  • (d) Sub-Processing: we engage the subprocessors listed in Section 6 to assist in providing the Service. We will notify you of any changes to our subprocessors by updating Section 6 of this Privacy Policy. You may object to a new subprocessor by ceasing to use the Service.
  • (e) Breach Notification: in the event of a personal data breach affecting data we process on your behalf, we will notify you without undue delay, and in any event within 72 hours of becoming aware of the breach, providing the nature of the breach, the categories of data affected, and the measures taken to address it.
  • (f) Audit Rights: upon reasonable written request and subject to appropriate confidentiality obligations, we will make available to you information necessary to demonstrate our compliance with these data processing terms.
  • (g) Data Return and Deletion: upon termination of your account, you may export your data using the built-in export features of the Service. Following your request for account deletion, we will delete all data processed on your behalf in accordance with the retention periods set out in Section 8.
  • (h) Data Protection Impact Assessments: upon reasonable request, we will provide you with information necessary to carry out a data protection impact assessment.

14. Your Obligations When Storing Third-Party Data

If you use the Service to store, process, or manage personal data of third parties (for example, customer records, employee data, or contact information), you acknowledge and agree that:

  • You are the data controller for such data and bear full responsibility for compliance with all applicable data protection laws.
  • You must have a lawful basis for collecting and processing such data.
  • You must inform the relevant data subjects about the processing of their data, including the fact that their data is stored using the Service.
  • You must respond to and fulfil any data subject requests (access, deletion, rectification, etc.) relating to such data.
  • You must not store special category data (racial or ethnic origin, political opinions, religious beliefs, health data, biometric data, etc.) or criminal offence data in the Service unless you have ensured compliance with the additional requirements of applicable data protection law.
  • Recons Ltd acts as a data processor only and accepts no responsibility or liability for your compliance with data protection laws regarding third-party data you store in the Service.

15. Changes to This Policy

We may update this Privacy Policy from time to time. When we make material changes, we will update the version number and effective date at the top of this policy and notify you through the Service. Material changes will require you to review and re-accept the updated policy before continuing to use the Service.

We encourage you to review this Privacy Policy periodically.

16. Contact

If you have any questions about this Privacy Policy or our data practices, or if you wish to exercise any of your data protection rights, please contact us at:

Recons Ltd London, United Kingdom support@mycorr.app

For data protection matters, you may also contact the UK Information Commissioner's Office (ICO) at ico.org.uk.