> ## 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 an authentication resource

> Creates a new authentication resource.

**Required ACL:** `addObject`, `deleteIndex`, `editSettings`

## Usage

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

  // Call the API
  var response = await client.CreateAuthenticationAsync(
    new AuthenticationCreate
    {
      Type = Enum.Parse<AuthenticationType>("Oauth"),
      Name = "authName",
      Input = new AuthInput(
        new AuthOAuth
        {
          Url = "http://test.oauth",
          ClientId = "myID",
          ClientSecret = "mySecret",
        }
      ),
    }
  );

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

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

  // Call the API
  final response = await client.createAuthentication(
    authenticationCreate: AuthenticationCreate(
      type: AuthenticationType.fromJson("oauth"),
      name: "authName",
      input: AuthOAuth(
        url: "http://test.oauth",
        clientId: "myID",
        clientSecret: "mySecret",
      ),
    ),
  );

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

  ```go Go theme={"system"}
  // Initialize the client with your application region, eg. ingestion.ALGOLIA_APPLICATION_REGION
  client, err := ingestion.NewClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", ingestion.US)
  if err != nil {
    // The client can fail to initialize if you pass an invalid parameter.
    panic(err)
  }

  // Call the API
  response, err := client.CreateAuthentication(client.NewApiCreateAuthenticationRequest(
    ingestion.NewEmptyAuthenticationCreate().
      SetType(ingestion.AuthenticationType("oauth")).
      SetName("authName").
      SetInput(ingestion.AuthOAuthAsAuthInput(
        ingestion.NewEmptyAuthOAuth().SetUrl("http://test.oauth").SetClientId("myID").SetClientSecret("mySecret"))),
  ))
  if err != nil {
    // handle the eventual error
    panic(err)
  }


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

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

  // Call the API
  AuthenticationCreateResponse response = client.createAuthentication(
    new AuthenticationCreate()
      .setType(AuthenticationType.OAUTH)
      .setName("authName")
      .setInput(new AuthOAuth().setUrl("http://test.oauth").setClientId("myID").setClientSecret("mySecret"))
  );

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

  ```js JavaScript theme={"system"}
  // Initialize the client
  // Replace 'us' with your Algolia Application Region
  const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY').initIngestion({ region: 'us' });

  // Call the API
  const response = await client.createAuthentication({
    type: 'oauth',
    name: 'authName',
    input: { url: 'http://test.oauth', client_id: 'myID', client_secret: 'mySecret' },
  });


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

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

  // Call the API
  var response =
    client.createAuthentication(
      authenticationCreate =
        AuthenticationCreate(
          type = AuthenticationType.entries.first { it.value == "oauth" },
          name = "authName",
          input =
            AuthOAuth(url = "http://test.oauth", clientId = "myID", clientSecret = "mySecret"),
        )
    )


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

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

  // Call the API
  $response = $client->createAuthentication(
      ['type' => 'oauth',
          'name' => 'authName',
          'input' => ['url' => 'http://test.oauth',
              'client_id' => 'myID',
              'client_secret' => 'mySecret',
          ],
      ],
  );


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

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

  # Call the API
  response = client.create_authentication(
      authentication_create={
          "type": "oauth",
          "name": "authName",
          "input": {
              "url": "http://test.oauth",
              "client_id": "myID",
              "client_secret": "mySecret",
          },
      },
  )


  # print the response
  print(response)
  ```

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

  # Call the API
  response = client.create_authentication(
    Algolia::Ingestion::AuthenticationCreate.new(
      type: "oauth",
      name: "authName",
      input: Algolia::Ingestion::AuthOAuth.new(url: "http://test.oauth", client_id: "myID", client_secret: "mySecret")
    )
  )


  # print the response
  puts(response)
  ```

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

  // Call the API
  val response = Await.result(
    client.createAuthentication(
      authenticationCreate = AuthenticationCreate(
        `type` = AuthenticationType.withName("oauth"),
        name = "authName",
        input = AuthOAuth(
          url = "http://test.oauth",
          clientId = Some("myID"),
          clientSecret = Some("mySecret")
        )
      )
    ),
    Duration(100, "sec")
  )

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

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

  // Call the API
  let response = try await client.createAuthentication(authenticationCreate: AuthenticationCreate(
      type: AuthenticationType.oauth,
      name: "authName",
      input: AuthInput.authOAuth(AuthOAuth(url: "http://test.oauth", clientId: "myID", clientSecret: "mySecret"))
  ))

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

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