---
title: "Create a Data Source"
method: POST
path: "/gdc/dataload/dataSources"
tags: ["cloudresource"]
---

# Create a Data Source

`POST /gdc/dataload/dataSources`

## Request

- Base URL: `https://secure.gooddata.com`
- URL: `https://secure.gooddata.com/gdc/dataload/dataSources`
- Auth: none declared

Create a Data Source. The currently authenticated user of the GoodData platform will become the owner of the newly created Data Source.</br>
**Request body parameters** </br>
* `name` (string) specifies the name of the Data Source.
* `prefix` (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies the prefix that defines what tables and views will be populated to the GoodData platform. **Example:** `pre_`
* `alias` (string) specifies the alias of the Data Source; can be considered a secondary identifier.
* `connectionInfo` (string) specifies the type of the data warehouse or object storage service. Specify one of the following:
    * `redshift`
    * `snowflake`
    * `bigQuery`
    * `postgres`
    * `mssql`
    * `mysql`
    * `s3`
    * `blobStorage`
    * `generic`
* `url` (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies the JDBC connection string that is used to connect to the data warehouse.
* `authentication` specifies authentication information that is used to connect to the data warehouse.
    * (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) Basic user-password authentication
        * `userName` (string) specifies the user who is used for the connection.
        * `password` (string) specifies the user's password. When returned in the response, the password is not visible and is replaced with an empty string.
    * (Snowflake only) Key-pair authentication
        * `userName` (string) specifies the user who is used for the connection.
        * `privateKey` (string) specifies private key in ??? format
        * `passPhrase` (string, optional) specify passphrase to decrypt private key
    * (Redshift only) IAM key-based access control authentication
        * `dbUser` (string) specifies the Redshift database user.
        * `accessKeyId` (string) specifies the access key ID for the IAM user who is authorized to access the Redshift data warehouse.
        * `secretAccessKey` (string) specifies the secret access key for the IAM user. When returned in the response, the secret access key is not visible and is replaced with an empty string.
    * (BigQuery only) Service account authentication
        * `clientEmail` (string) specifies the BigQuery user email.
        * `privateKey` (string) is the private key for the BigQuery user. When returned in the response, the private key is not visible and is replaced with an empty string.
    * (Azure SQL Database or Azure Synapse Analytics) Azure Active Directory user-password authentication
        * `userName` (string) specifies the user who is used for the connection.
        * `password` (string) specifies the user's password. When returned in the response, the password is not visible and is replaced with an empty string.
* `database` (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies the name of the database where the schema you want to use is located.
* `schema` (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics; string) specifies the name of the schema where data marts are located.
* `warehouse` (string; Snowflake only) specifies the name of the Snowflake data warehouse (computing unit) for integrating queries.
* `project` (string; BigQuery only) specifies the name of the BigQuery project.
* `params` (generic only) specifies parameters as a key/value pair.
* `secureParams` (generic only) specifies secure parameters as a key/value pair. When returned in the response, the values of the secure parameters are not visible and are replaced with empty strings.
* `s3` (S3 only) specifies the S3 location where your configuration file is stored (you may or may not also use this S3 location to store the source data).
    * `bucket` (string) specifies the name of the S3 bucket.
    * `accessKey` (string) specifies the access key to the S3 bucket.
    * `secretKey` (string) specifies the secret key to the S3 bucket. When returned in the response, the secret key is not visible and is replaced with an empty string.
    * `region` (string; optional) specifies the code of the region of the S3 bucket. If not set, defaults to `us-east-1`. For the list of the region codes, see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).
    * `serverSideEncryption` (boolean) specifies whether server-side encryption is enabled.
* `blobStorage` (Azure Blob Storage only) specifies the Azure Blob Storage location and authentication information that is used to connect to the object storage service.
    * `container` (string) specifies the name of the container.
    * `rootPath` (string) specifies the path to the source data.
    * `connectionString` (string) specifies the connection string to the Azure Blob Storage location.
* `sslMode` (PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) specifies the SSL mode to use when connecting to the database. Can be `prefer`, `require`, or `verify-full`.
    * `prefer` enables encryption if the server supports encryption.
    * `require` connects only if the server supports encryption.
    * `verify-full` connects to a server you specify only if it supports encryption and is trusted.
 * `databaseType` Specifies which SQL product to use depending on what value is used for `connectionInfo`. (string)
    * To use Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics Data Sources, `connectionInfo` must be to `mssql`. The value of databaseType can be one of either `SQLServer`, `AzureSQL`, or `SynapseSQL`.
    * To use a MongoDB BI Connector data source, `connectionInfo` must be set to `mysql` and the value of `databaseType` must be set to `MongoDBConnector`.

## Request body

- DataSource1
  - `dataSource` DataSourceCommon, required
    - `name` string, required
    - `prefix` string
    - `alias` string
    - `connectionInfo` union, required
      - Snowflake
        - `snowflake` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - KeyPairConnectionAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `warehouse` string, required
      - Redshift
        - `redshift` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - RedshiftIAMAuthentication
              - …
          - `database` string, required
          - `schema` string, required
      - BigQuery
        - `bigQuery` object, required
          - `project` string, required
          - `schema` string, required
          - `authentication` BigQueryServiceAccountAuthentication, required
            - `serviceAccount` object, required
              - …
      - Postgres
        - `postgres` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-ca' | 'verify-full'
      - MSSQL
        - `mssql` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - ActiveDirectoryPasswordAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'SQLServer' | 'AzureSQL' | 'SynapseSQL', required
      - MySQL
        - `mysql` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'MongoDBConnector' | 'MySQL'
      - Generic
        - `generic` object, required
          - `params` object
          - `secureParams` object
      - S3
        - `s3` object, required
          - `bucket` string, required
          - `accessKey` string, required
          - `secretKey` string
          - `region` string
          - `serverSideEncryption` boolean, required
      - BlobStorage
        - `blobStorage` object, required
          - `connectionString` string, required
          - `container` string, required
          - `path` string
      - ADS
        - `ads` object, required
          - `instance` string, required
          - `exportable` boolean, required

## Response `201`

Created - create new data source

- DataSource
  - `dataSource` DataSourceResponse, required
    - `name` string, required
    - `prefix` string
    - `alias` string
    - `connectionInfo` union, required
      - Snowflake
        - `snowflake` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - KeyPairConnectionAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `warehouse` string, required
      - Redshift
        - `redshift` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - RedshiftIAMAuthentication
              - …
          - `database` string, required
          - `schema` string, required
      - BigQuery
        - `bigQuery` object, required
          - `project` string, required
          - `schema` string, required
          - `authentication` BigQueryServiceAccountAuthentication, required
            - `serviceAccount` object, required
              - …
      - Postgres
        - `postgres` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-ca' | 'verify-full'
      - MSSQL
        - `mssql` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - ActiveDirectoryPasswordAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'SQLServer' | 'AzureSQL' | 'SynapseSQL', required
      - MySQL
        - `mysql` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'MongoDBConnector' | 'MySQL'
      - Generic
        - `generic` object, required
          - `params` object
          - `secureParams` object
      - S3
        - `s3` object, required
          - `bucket` string, required
          - `accessKey` string, required
          - `secretKey` string
          - `region` string
          - `serverSideEncryption` boolean, required
      - BlobStorage
        - `blobStorage` object, required
          - `connectionString` string, required
          - `container` string, required
          - `path` string
      - ADS
        - `ads` object, required
          - `instance` string, required
          - `exportable` boolean, required
    - `id` string, required
    - `owner` string, required
    - `domain` string
    - `lastModified` string, required
    - `links` object, required
      - `self` string, uri, required
      - `parent` string, uri, required
      - `dataMapping` string, uri
      - `buildModelMapping` string, uri
      - `generateModel` string, uri
      - `generateOutputStage` string, uri
      - `validateConnection` string, uri

## Other responses

- `302`: Found
- `400`: Bad Request

---

[API](https://skmtc.dev/gooddata/apis/gooddata-api-documentation.md) - [All operations](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/revisions/e5dc0ee6ab00?raw)
