# 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"a=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