# cPanel API 2 Functions - Ftp::addftp

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 creates an FTP account.

Warning:
We **strongly** recommend that you use the following [UAPI](/cpanel/introduction/) function
instead of this function:

- [`Ftp::add_ftp`](/openapi/cpanel/operation/add_ftp) — This function creates an FTP account.


Important:
When you disable the [*FTP* role](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=Ftp&cpanel_jsonapi_func=addftp&user=user&pass=12345luggage&quota=12345&homedir=userftp
```

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.

// Add new FTP user "user" with password "12345luggage"
$add_ftp = $cpanel->api2(
    'Ftp', 'addftp',
 array(
        'user'    => 'newuser',
        'pass'    => '12345luggage',
        'quota'   => '12345',
        'homedir' => 'newuserftp',
 )
);
```

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.

# Add new FTP user "user" with password "12345luggage"
my $add_ftp = $cpliveapi->api2(
    'Ftp', 'addftp',
{
        'user'    => 'newuser',
        'pass'    => '12345luggage',
        'quota'   => '12345',
        'homedir' => 'newuserftp',
   }
);
```

Note:
For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system/#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 Ftp addftp user=user pass=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
```


br
Output (JSON)


```undefined syntaxhighlighter-pre
{
    "cpanelresult": {
        "apiversion": 2,
        "func": "addftp",
        "data": [{
            "reason": "OK",
            "result": 1
        }],
        "event": {
            "result": 1
        },
        "module": "Ftp"
    }
}
```

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
Parameters
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
code
user
td
em
string
td
p
strong
Required
p
The FTP account's username.
td
A valid username.
td
code
user
tr
td
code
pass
td
em
string
td
p
strong
Required
p
The new password.
td
A valid password.
td
code
12345luggage
tr
td
code
domain
td
em
string
td
p
The user's associated domain.
p
This parameter defaults to the cPanel account's primary domain.
td
span
A domain that the cPanel account owns.
td
code
example.com
tr
td
code
quota
td
em
integer
td
p
The new FTP account's quota.
p
This value defaults to 
code
0
, which grants an unlimited quota.
td
ul
li
A positive integer.
li
code
0
 — Unlimited quota.
td
code
12345
tr
td
code
homedir
td
em
string
td
p
The path to the user's home directory.
p
If you do not specify a path, the FTP account uses the cPanel account's home directory.
td
A valid path, relative to the account's home directory.
td
code
userftp
## Returns

table
thead
tr
th
strong
strong
Return
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
code
reason
td
em
string
td
p
A reason for failure.
p
This function only returns a 
code
reason
 value if it failed.
td
p
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