> ## Documentation Index
> Fetch the complete documentation index at: https://algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Provider

> Create Provider.

<Callout icon="flask-conical" color="#14b8a6">
  This is a **beta feature** according to [Algolia's Terms of Service ("Beta Services")](https://www.algolia.com/policies/terms/).
</Callout>

**Required ACL:** `editSettings`

## Usage

<CodeGroup>
  ```cs C# theme={"system"}
  // Initialize the client
  var client = new AgentStudioClient(
    new AgentStudioConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
  );

  // Call the API
  var response = await client.CreateProviderAsync(
    new ProviderAuthenticationCreate
    {
      Name = "My OpenAI Provider",
      ProviderName = Enum.Parse<ProviderName>("Openai"),
      Input = new ProviderInput(new OpenAIProviderInput { ApiKey = "sk-test-key-1234" }),
    }
  );

  // print the response
  Console.WriteLine(response);
  ```

  ```dart Dart theme={"system"}
  // Initialize the client
  final client = AgentStudioClient(
      appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

  // Call the API
  final response = await client.createProvider(
    providerAuthenticationCreate: ProviderAuthenticationCreate(
      name: "My OpenAI Provider",
      providerName: ProviderName.fromJson("openai"),
      input: OpenAIProviderInput(
        apiKey: "sk-test-key-1234",
      ),
    ),
  );

  // print the response
  print(response);
  ```

  ```go Go theme={"system"}
  // Initialize the client
  client, err := agentStudio.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.CreateProvider(client.NewApiCreateProviderRequest(
    agentStudio.NewEmptyProviderAuthenticationCreate().
      SetName("My OpenAI Provider").
      SetProviderName(agentStudio.ProviderName("openai")).
      SetInput(agentStudio.OpenAIProviderInputAsProviderInput(
        agentStudio.NewEmptyOpenAIProviderInput().SetApiKey("sk-test-key-1234"))),
  ))
  if err != nil {
    // handle the eventual error
    panic(err)
  }


  // print the response
  print(response)
  ```

  ```java Java theme={"system"}
  // Initialize the client
  AgentStudioClient client = new AgentStudioClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");

  // Call the API
  ProviderAuthenticationResponse response = client.createProvider(
    new ProviderAuthenticationCreate()
      .setName("My OpenAI Provider")
      .setProviderName(ProviderName.OPENAI)
      .setInput(new OpenAIProviderInput().setApiKey("sk-test-key-1234"))
  );

  // print the response
  System.out.println(response);
  ```

  ```js JavaScript theme={"system"}
  // Initialize the client
  const client = agentStudioClient('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

  // Call the API
  const response = await client.createProvider({
    name: 'My OpenAI Provider',
    providerName: 'openai',
    input: { apiKey: 'sk-test-key-1234' },
  });


  // print the response
  console.log(response);
  ```

  ```kotlin Kotlin theme={"system"}
  // Initialize the client
  val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

  // Call the API
  var response =
    client.createProvider(
      providerAuthenticationCreate =
        ProviderAuthenticationCreate(
          name = "My OpenAI Provider",
          providerName = ProviderName.entries.first { it.value == "openai" },
          input = OpenAIProviderInput(apiKey = "sk-test-key-1234"),
        )
    )


  // print the response
  println(response)
  ```

  ```php PHP theme={"system"}
  // Initialize the client
  $client = AgentStudioClient::create('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

  // Call the API
  $response = $client->createProvider(
      ['name' => 'My OpenAI Provider',
          'providerName' => 'openai',
          'input' => ['apiKey' => 'sk-test-key-1234',
          ],
      ],
  );


  // print the response
  var_dump($response);
  ```

  ```python Python theme={"system"}
  # Initialize the client
  # In an asynchronous context, you can use AgentStudioClient instead, which exposes the exact same methods.
  client = AgentStudioClientSync("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

  # Call the API
  response = client.create_provider(
      provider_authentication_create={
          "name": "My OpenAI Provider",
          "providerName": "openai",
          "input": {
              "apiKey": "sk-test-key-1234",
          },
      },
  )


  # print the response
  print(response)
  ```

  ```ruby Ruby theme={"system"}
  # Initialize the client
  client = Algolia::AgentStudioClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

  # Call the API
  response = client.create_provider(
    Algolia::AgentStudio::ProviderAuthenticationCreate.new(
      name: "My OpenAI Provider",
      provider_name: "openai",
      input: Algolia::AgentStudio::OpenAIProviderInput.new(api_key: "sk-test-key-1234")
    )
  )


  # print the response
  puts(response)
  ```

  ```scala Scala theme={"system"}
  // Initialize the client
  val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

  // Call the API
  val response = Await.result(
    client.createProvider(
      providerAuthenticationCreate = ProviderAuthenticationCreate(
        name = "My OpenAI Provider",
        providerName = ProviderName.withName("openai"),
        input = OpenAIProviderInput(
          apiKey = "sk-test-key-1234"
        )
      )
    ),
    Duration(100, "sec")
  )

  // print the response
  println(response)
  ```

  ```swift Swift theme={"system"}
  // Initialize the client
  let client = try AgentStudioClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY")

  // Call the API
  let response = try await client.createProvider(providerAuthenticationCreate: ProviderAuthenticationCreate(
      name: "My OpenAI Provider",
      providerName: ProviderName.openai,
      input: ProviderInput.openAIProviderInput(OpenAIProviderInput(apiKey: "sk-test-key-1234"))
  ))

  // print the response
  print(response)
  ```
</CodeGroup>

<Card icon="folder-code" horizontal="true" title="See the full API reference" arrow="true" href="/doc/rest-api/agent-studio/create-provider">
  For more details about input parameters
  and response fields.
</Card>
