# cPanel API 2 Functions - SSL::gencsr

Warning:
The cPanel API 2 system is deprecated. We **strongly** recommend that you use [UAPI](/cpanel/introduction) instead of cPanel API 2.

## Description

This function generates a certificate signing request (CSR).

- The system saves the new CSR to the cPanel account's certificate
directory.
- Certificate Authorities may have additional requirements for CSR
information.
- Use the [`SSL::listcsrs`](/cpanel-api-2/cpanel-api-2-modules-ssl/cpanel-api-2-functions-ssl-listcsrs/) function to retrieve the new CSR's information.


Warning:
We **strongly** recommend that you use the following [UAPI](/cpanel/introduction/) function instead of this function: - [`SSL::generate_csr`](https://api.docs.cpanel.net/openapi/cpanel/operation/generate_csr/) — This function generates a certificate signing request (CSR).

Note:
You **must** install a key for the host **before** you call this function.

Important:
When you disable the *Calendars and Contacts*, *Receive Mail*, *Web Disk*, *Webmail*, **and** *Web Server* [roles](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles), the system **disables** this function.

## Examples

### WHM API (JSON)


```undefined syntaxhighlighter-pre
https://hostname.example.com:2087/cpsess###########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=SSL&cpanel_jsonapi_func=gencsr&city="Houston"&company="cPanel"&companydivision="Documentation"&country="US"&email="user@example.com"&host="example.com"&state="Texas"&password="12345luggage"
```

Note:
For more information, read our [Calls from the WHM API](/whm/use-whm-api-to-call-cpanel-api-and-uapi) documentation.

### LiveAPI PHP Class


```undefined syntaxhighlighter-pre
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.

// Generate a new CSR for example.com.
$generate_new_csr = $cpanel->api2(
    'SSL', 'gencsr',
    array(
        'city'            => 'Houston',
        'company          => 'cPanel',
        'companydivision' => 'Documentation',
        'country'         => 'US',
        'email'           => 'user@example.com',
        'host'            => 'example.com',
        'state'           => 'Texas',
        'password'        => '12345luggage',
    )
);
```

Note:
For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system/#guide-to-the-liveapi-system).

### LiveAPI Perl Module


```undefined syntaxhighlighter-pre
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.

# Generate a new CSR for example.com.
my $generate_new_csr = $cpliveapi->api2(
    'SSL', 'gencsr',
    {
        'city'            => 'Houston',
        'company          => 'cPanel',
        'companydivision' => 'Documentation',
        'country'         => 'US',
        'email'           => 'user@example.com',
        'host'            => 'example.com',
        'state'           => 'Texas',
        'password'        => '12345luggage',
    }
);
```

Note:
For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system).

### cPanel Tag System (deprecated)

Warnings:
- cPanel tags are **deprecated**. We **strongly** recommend that you **only** use the [LiveAPI](/guides/guide-to-the-liveapi-system) system to call the cPanel APIs. Examples are **only** present in order to help developers move from the old cPanel tag system to our [LiveAPI](/guides/guide-to-the-liveapi-system).
  - cPanel API 2 calls that use cPanel tags vary in code syntax and in
their output.
  - For more information, read our [Deprecated cPanel Tag Usage](/cpanel-api-2/cpanel-api-2-deprecate-cpanel-tag-usage/) documentation.


### Command Line


```undefined syntaxhighlighter-pre
cpapi2 --user=username SSL gencsr city=Houston company=cPanel companydivision=Documentation country=US email=username%40example.com host=example.com state=Texas password=12345luggage
```

div
Notes:

- You **must** URI-encode values.
- `username` represents your account-level username.
- You **must** include the `--user=username` option.
- For more information and additional output options, read our [Guide to cPanel API 2](/cpanel-api-2/) documentation or run the `cpapi2 --help` command.
- If you run CloudLinux™, you **must** use the full path of the
`cpapi2` command:

```undefined syntaxhighlighter-pre
/usr/local/cpanel/bin/cpapi2
```




### Output (JSON)


```undefined syntaxhighlighter-pre
{
  "cpanelresult": {
    "apiversion": 2,
    "func": "gencsr",
    "data": [
      {
        "output": "Certificate Signing Request generated!",
        "result": 1
      }
    ],
    "event": {
      "result": 1
    },
    "module": "SSL"
  }
}
```

Note:
Use cPanel's *[API Shell](https://docs.cpanel.net/cpanel/advanced/api-shell-for-cpanel)* interface (*cPanel >> Home >> Advanced >> API Shell*) to directly test cPanel API calls.

## Parameters

table
thead
tr
th
strong
Parameter
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
code
city
td
em
string
td
p
strong
Required
p
The CSR owner's city.
td
The name of the city in which the CSR owner resides.
td
code
Houston
tr
td
code
company
td
em
string
td
p
strong
Required
p
The CSR owner's company name.
td
The name of the CSR owner's company.
td
code
cPanel
tr
td
code
companydivision
td
em
string
td
p
The CSR owner's division or department within the company.
p
This parameter defaults to an empty string.
td
The name of the CSR owner's division or department.
td
code
Documentation
tr
td
code
country
td
em
string
td
p
strong
Required
p
The CSR owner's country.
td
p
The country's 
a
two-letter abbreviation
. You 
strong
must
 use the 
strong
abbreviation
. 
strong
Do not
 use the country's full name. 
td
code
US
tr
td
code
email
td
em
string
td
p
The CSR owner's email address.
p
This parameter defaults to an empty string.
td
A valid email address.
td
code
user@example.com
tr
td
code
host
td
em
string
td
p
strong
Required
p
The CSR's hostname.
td
p
A valid domain or subdomain name.
p
br
td
code
example.com
tr
td
code
state
td
em
string
td
p
strong
Required
p
The CSR owner's state.
td
p
The state's full name. You 
strong
must
 use the full name. 
strong
Do not
 use the state's abbreviation. 
td
code
Texas
tr
td
code
password
td
em
string
td
p
The CSR password.
p
This parameter defaults to an empty string.
td
A secure password.
td
code
12345luggage
## Returns

table
colgroup
col
col
col
col
col
thead
tr
th
strong
Return
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
code
output
td
em
string
td
A message of success or a reason for failure.
td
ul
li
code
Certificate Signing Request generated!
li
A string that describes the error.
td
code
This is an error message.
tr
td
code
result
td
em
Boolean
td
p
Whether the function succeeded.
td
ul
li
code
1
 — The function succeeded.
li
code
0
 — The function failed.
td
code
1