Update API key
$client->updateApiKey(string apiKey, [ // All the following parameters are optional 'acl' => array, 'validity' => integer, 'maxQueriesPerIPPerHour' => integer, 'maxHitsPerQuery' => integer, 'indexes' => array, 'referers' => array, 'queryParameters' => string, 'description' => string, ])
We released a new version of the PHP API client in public beta. Read the beta documentation for more information.
We released a new version of the JavaScript API client in public beta. Read the beta documentation for more information.
We released a new version of the Java API client in public beta. Read the beta documentation for more information.
You’re currently reading the JavaScript API client v4 documentation. Check the migration guide to learn how to upgrade from v3 to v4. You can still access the v3 documentation.
You’re currently reading the Ruby API client v2 documentation. Check the migration guide to learn how to upgrade from v1 to v2. You can still access the v1 documentation.
About this method
Replace every permission of an existing API key.
Any unspecified permission field will be reset to its default value. To ensure that existing permissions aren’t lost when applying an update, make sure to include the existing permissions you don’t want to change.
Examples
Read the Algolia CLI documentation for more information.
Update the permissions of an existing key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Update an existing API key that is valid for 300 seconds
$res = $client->updateApiKey('YourAPIKey', [
  'acl' => ['search']
  'validity' => 300
]);
echo 'key=' . $res['key'] . "\n";
// Update an existing index-specific API key valid for 300 seconds,
// with a rate limit of 100 calls per hour per IP and a maximum of 20 hits
$res = $index->updateApiKey('YourAPIKey', [
  'acl' => ['search'],
  'validity' => 300,
  'maxQueriesPerIPPerHour' => 100,
  'maxHitsPerQuery' => 20
]);
echo 'key=' . $res['key'] . "\n";
      Parameters
| Parameter | Description | 
|---|---|
          
            apiKey
          
         | 
        
           
                
                type: string
                
               
              
                
                  default: no default
                
               
              
                
                        Required
                
               
          API Key to update  | 
      
          
            acl
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: no default
                
               
              
                
                    Optional
                
               
          Set of permissions associated with the key. The possible access controls are: 
  | 
      
          
            validity
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: no expiration date
                
               
              
                
                    Optional
                
               
          A Unix timestamp used to define the expiration date of the API key. This must be a positive integer.  | 
      
          
            maxHitsPerQuery
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: 0 (unlimited)
                
               
              
                
                    Optional
                
               
          Specify the maximum number of hits this API key can retrieve in one call. This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. This must be a positive integer.  | 
      
          
            maxQueriesPerIPPerHour
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: 0 (no rate limit)
                
               
              
                
                    Optional
                
               
          Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. If the IP at the source of the call did more than this number of calls in the last hour, a 429 code is returned. This must be a positive integer. This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index.  | 
      
          
            indexes
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: [] (all indices)
                
               
              
                
                    Optional
                
               
          Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. For example, “dev_*” matches all indices starting with “dev_” and “*_dev” matches all indices ending with “_dev”.  | 
      
          
            referers
          
         | 
        
           
                
                type: list
                
               
              
                
                  default: [] (all referers)
                
               
              
                
                    Optional
                
               
          Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. For example, “https://algolia.com/*” matches all referers starting with “https://algolia.com/” and “*.algolia.com” matches all referers ending with “.algolia.com”. If you want to allow the domain algolia.com you can use “*algolia.com/*”.  | 
      
          
            queryParameters
          
         | 
        
           
                
                type: key/value mapping
                
               
              
                
                  default: "" (no query parameters)
                
               
              
                
                    Optional
                
               
          Specify the list of query parameters. You can force the query parameters for a query using the url string format. Example: “typoTolerance=strict&ignorePlurals=false”  | 
      
          
            description
          
         | 
        
           
                
                type: string
                
               
              
                
                  default: ""
                
               
              
                
                    Optional
                
               
          Specify a description to describe where the key is used.  | 
      
Response
This section shows the JSON response returned by the API.
Each API client encapsulates this response inside objects specific to the programming language,
so that the actual response might be different.
You can view the response by using the getLogs method.
Don’t rely on the order of attributes in the response, as JSON doesn’t guarantee the ordering of keys in objects.
JSON format
1
2
3
4
{
  "key": "1eb37de6308abdccf9b760ddacb418b4",
  "updatedAt": "2017-12-16T22:21:31.871Z"
}
        | Field | Description | 
|---|---|
        
          key
        
       | 
      
         
            
              string
            
           
        The updated key.  | 
    
        
          updatedAt
        
       | 
      
         
            
              string
            
           
        The date at which the key was updated.  |