---
title: Authentication
description: Özel uygulamada token alma ve ilk istekleriniz
---

Oluşturduğunuz `client_id` ve `client_secret` bilgilerini kullanarak erişim token'ı alabilirsiniz. Aşağıdaki örnekte `client_credentials` akışı ile token alma ve bu token'ı Admin API isteklerinde kullanma gösterilmektedir.

<Callout type="info" title="Farklı URL'ler">
Token alma adresi ile Admin API endpoint'i birbirinden farklıdır:

- Token alma (OAuth): `https://api.myikas.com/api/admin/oauth/token`
- Admin GraphQL API: `https://api.myikas.com/api/v2/admin/graphql`
</Callout>

### Token alma (OAuth)

```bash
curl --location 'https://api.myikas.com/api/admin/oauth/token' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=YOUR_CLIENT_ID' \
  --data-urlencode 'client_secret=YOUR_CLIENT_SECRET'
```

Başarılı bir istek sonucunda aşağıdakine benzer bir cevap döner:

```json
{
  "access_token": "eyJhbGciOi...<kısaltıldı>...",
  "token_type": "Bearer",
  "expires_in": 14400
}
```

<Callout type="warning" title="Güvenlik">
`client_secret` değerini kimseyle paylaşmayın ve uygulama kodunuza gömmeyin. Örneklerde gerçek değerlerinizi kullanırken dokümana yazmayın.
</Callout>

### Token'ı isteklerde kullanma

Elde ettiğiniz `access_token` bir **Bearer** token'dır. Sonraki Admin API isteklerinde `Authorization` başlığında bu token'ı iletin.

```bash
curl --location 'https://api.myikas.com/api/v2/admin/graphql' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --data '{"query":"query { me { id } }"}'
```

> Not: `expires_in` değeri saniye cinsindendir; süre dolduğunda yeni bir token almanız gerekir.