[Development Guides Home](/guides) >> [Quickstart Development Guide](/guides/quickstart-development-guide)

# Tutorial - Replace a cPanel API 1 Function With a UAPI Function

## Introduction

This tutorial shows how to replace a deprecated cPanel API 1 function with a [UAPI function](/cpanel/introduction) in a cPanel integration or [plugin](/guides/guide-to-cpanel-plugins). The system sends you a notification if any of your cPanel plugins or custom cPanel integrations use cPanel API 1 functions.

To retrieve a list of cPanel API 1 functions that run on your system, call the following WHM API 1  functions.

* [`get_api_calls`](/openapi/whm/operation/get_api_calls/)
* [`get_api_pages`](/openapi/whm/operation/get_api_pages/)


For more information, read our [Guide to Replacing cPanel API 1 Functions with UAPI Equivalents](/guides/guide-to-replacing-cpanel-api-1-functions-with-uapi-equivalents) documentation.

## Replace a cPanel API 1 function in LiveAPI Perl

The following examples replace the cPanel API 1 `SetLang::setlang` function with the UAPI `Locale::set_locale` function.

### Open the file

Open the `.live.pl` file that contains the cPanel API 1 function. The code will resemble the following example:


```
#!/usr/bin/perl

# Instantiate the Cpanel::LiveAPI object.
use Cpanel::LiveAPI ();

print "Content-type: text/html\r\n\r\n";

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

print $cpliveapi->header("Set the server's locale to English.");

# Call the function
my $response = $cpliveapi->api1('SetLang', 'setlang', ['en'] );

print $cpliveapi->footer();

$cpliveapi->end();
```

### Replace the cPanel API 1 function with its UAPI function equivalent

Locate the line that contains the cPanel API 1 function. This will resemble the following example:


```
# Call the function
my $response = $cpliveapi->api1('SetLang', 'setlang', ['en'] );
```

Replace that line with the appropriate UAPI function.

The example below uses LiveAPI's `uapi()` method to call UAPI's [`Locale::set_locale`](/openapi/cpanel/operation/set_locale/) function.


```
# Call the function
my $response = $cpliveapi->uapi(
    'Locale', 'set_locale',
    {
        'locale' => 'en',
    }
);
```

### Set the function's return

This example directs the system to return the following:

* The `{'cpanelresult'}{'result'}` node of the last response that the system returned. The format of this data varies based on the last call that the system performed.
* An error message if the system encounters an error when it calls the function.
* A success message if the function succeeds.



```
my $result = $response->{'cpanelresult'}{'result'};

if (!$result->{status}) {
    # There is an error
    print "The API request failed due to the following error(s):<br>\n";
    print join("<br>\n", $result->{'errors'});
}
else {
    print 'Success';
}
```

## Replace a cPanel API 1 function in LiveAPI PHP

### Open the file

Open the `.live.php` file that contains the cPanel API 1 function. The code will resemble the following example:


```
<?php

require_once "/usr/local/cpanel/php/cpanel.php";

// Connect to cPanel - only do this once.
$cpanel = new CPANEL();
echo $cpanel->header("Set the server's locale to English.");

//Call the function.
$result = $cpanel->api1('SetLang', 'setlang', ['en'] );

echo $cpanel->footer();

?>
```

### Replace the cPanel API 1 function with its UAPI function equivalent

Locate the line that contains the cPanel API 1 function. This will resemble the following example:


```
//Call the function.
$result = $cpanel->api1('SetLang', 'setlang', ['en'] );
```

Replace that line with the appropriate UAPI function.

The example below uses LiveAPI's `uapi()` method to call UAPI's [`Locale::set_locale`](/openapi/cpanel/operation/set_locale/) function.


```
//Call the function.
$response = $cpanel->uapi(
    'Locale', 'set_locale',
    array(
        'locale' => 'en',
    )
);
```

### Set the function's return

The following example directs the system to return of the following:

* The `['cpanelresult']['result']` node of the last response that the system returned. The format of this data varies based on the last call that the system performed.
* An error message if the system encounters an error when it calls the function.
* A success message if the function succeeds.



```
$result = $response['cpanelresult']['result'];
if ( !$result['status'] ) {
    // There is an error.
    echo "The API request failed due to the following error(s):,br>\n";
    echo join("<br>\n", $result['errors']);
}
else {
    echo 'Success';
}
```

## Completed code

When you finish this tutorial, your code will resemble the following examples:

### LiveAPI Perl


```
#!/usr/bin/perl

# Instantiate the Cpanel::LiveAPI object.
use Cpanel::LiveAPI ();

print "Content-type: text/html\r\n\r\n";

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

print $cpliveapi->header("Set the server's locale to English.");

#Call the function
my $response = $cpliveapi->uapi(
    'Locale', 'set_locale',
    {
        'locale' => 'en',
    }
);

my $result = $response->{'cpanelresult'}{'result'};

if (!$result->{status}) {
    # There is an error
    print "The API request failed due to the following error(s):<br>\n";
    print join("<br>\n", $result->{'errors'});
}
else {
    print 'Success';
}

print $cpliveapi->footer();

$cpliveapi->end();
```

### LiveAPI PHP


```
<?php

require_once "/usr/local/cpanel/php/cpanel.php";

//Connect to cPanel - only do this once
$cpanel = new CPANEL();
echo $cpanel->header("Set the server locale to English.");

//Call the function
$response = $cpanel->uapi(
    'Locale', 'set_locale',
    array(
        'locale' => 'en',
    )
);

$result = $response['cpanelresult']['result'];
if ( !$result['status'] ) {
    // There is an error
    echo "The API request failed due to the following error(s):<br>\n";
    echo join("<br>\n", $result['errors']);
}
else {
    echo 'Success';
}

?>
```