Skip to main content
Requires Admin API key

Usage

// Initialize the client
var client = new SearchClient(new SearchConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY"));

// Call the API
var response = await client.AddApiKeyAsync(
  new ApiKey
  {
    Acl = new List<Acl> { Enum.Parse<Acl>("Search"), Enum.Parse<Acl>("AddObject") },
    Description = "my new api key",
  }
);

// print the response
Console.WriteLine(response);
// Initialize the client
final client =
    SearchClient(appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

// Call the API
final response = await client.addApiKey(
  apiKey: ApiKey(
    acl: [
      Acl.fromJson("search"),
      Acl.fromJson("addObject"),
    ],
    description: "my new api key",
  ),
);

// print the response
print(response);
// Initialize the client
client, err := search.NewClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
if err != nil {
  // The client can fail to initialize if you pass an invalid parameter.
  panic(err)
}

// Call the API
response, err := client.AddApiKey(client.NewApiAddApiKeyRequest(

  search.NewEmptyApiKey().SetAcl(
    []search.Acl{search.Acl("search"), search.Acl("addObject")}).SetDescription("my new api key")))
if err != nil {
  // handle the eventual error
  panic(err)
}


// print the response
print(response)
// Initialize the client
SearchClient client = new SearchClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");

// Call the API
AddApiKeyResponse response = client.addApiKey(
  new ApiKey().setAcl(Arrays.asList(Acl.SEARCH, Acl.ADD_OBJECT)).setDescription("my new api key")
);

// print the response
System.out.println(response);
// Initialize the client
const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
const response = await client.addApiKey({ acl: ['search', 'addObject'], description: 'my new api key' });


// print the response
console.log(response);
// Initialize the client
val client = SearchClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
var response =
  client.addApiKey(
    apiKey =
      ApiKey(
        acl =
          listOf(
            Acl.entries.first { it.value == "search" },
            Acl.entries.first { it.value == "addObject" },
          ),
        description = "my new api key",
      )
  )


// print the response
println(response)
// Initialize the client
$client = SearchClient::create('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
$response = $client->addApiKey(
    ['acl' => [
        'search',

        'addObject',
    ],
        'description' => 'my new api key',
    ],
);


// print the response
var_dump($response);
# Initialize the client
# In an asynchronous context, you can use SearchClient instead, which exposes the exact same methods.
client = SearchClientSync("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.add_api_key(
    api_key={
        "acl": [
            "search",
            "addObject",
        ],
        "description": "my new api key",
    },
)


# print the response
print(response)
# Initialize the client
client = Algolia::SearchClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.add_api_key(
  Algolia::Search::ApiKey.new(acl: ["search", "addObject"], description: "my new api key")
)


# print the response
puts(response)
// Initialize the client
val client = SearchClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
val response = Await.result(
  client.addApiKey(
    apiKey = ApiKey(
      acl = Seq(Acl.withName("search"), Acl.withName("addObject")),
      description = Some("my new api key")
    )
  ),
  Duration(100, "sec")
)

// print the response
println(response)
// Initialize the client
let client = try SearchClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY")

// Call the API
let response = try await client.addApiKey(apiKey: ApiKey(
    acl: [Acl.search, Acl.addObject],
    description: "my new api key"
))

// print the response
print(response)

See the full API reference

For more details about input parameters and response fields.
Last modified on March 25, 2026