> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.telekesher.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.telekesher.dev/_mcp/server.

# Get application configuration

GET https://api.telekesher.dev/api/v1/app

Get the authenticated application's assigned inbound phone numbers, permitted outbound caller IDs, webhook settings, and effective resource limits. This operation does not expose credentials or configuration for other applications.

Reference: https://docs.telekesher.dev/api/application-configuration/get-application-configuration

## Authentication

- `Authorization` header (bearer token, required) — Application auth. Send `Authorization: Bearer <app_uuid>:<api_key>` using any active key in the app's collection. See [Authentication](https://voice-platform.docs.buildwithfern.com/api/authentication) for details.

## Response

### 200

Current application configuration

- `app_uuid` (string, required) — Identifier of the authenticated application.
- `blocked_webhook_events` (list of enum, required) — Event types excluded from webhook delivery. An empty array means all event types are delivered.
  - Allowed values: `session.created`, `session.answered`, `session.ended`, `session.ringing_started`, `session.early_media_started`, `dtmf.received`, `digits.collected`, `playback.started`, `playback.stopped`, `playback.failed`, `recording.became_available`, `recording.ended`, `recording.failed`, `recording.speech.started`, `recording.speech.ended`, `room.created`, `room.deleted`, `room.member.joined`, `room.member.left`, `room.member.muted`, `room.member.unmuted`, `room.member.voice_activity_changed`, `room.playback.ended`, `room.playback.failed`, `websocket.connected`, `websocket.disconnected`, `websocket.failed`, `websocket.audio_playback_completed`
- `inbound_phone_numbers` (list of string, required) — Inbound phone numbers assigned to this application, sorted in ascending canonical E.164 order. Assignment changes can take time to reach call routing.
- `limits` (object, required)
  - `max_members_per_room` (integer, required, nullable) — Maximum number of members in one room, or null when rooms have no member cap.
  - `max_rooms` (integer, required) — Maximum number of rooms that the application can have at the same time.
- `outbound_caller_ids` (list of string, required) — Phone numbers this application can present as caller ID on outbound calls, sorted in ascending canonical E.164 order.
- `webhook_url` (string, required, nullable) — Webhook delivery URL, or null when webhook delivery is disabled.

## Examples

**Response**

```json
{
  "app_uuid": "app_550e8400-e29b-41d4-a716-446655440000",
  "blocked_webhook_events": [],
  "inbound_phone_numbers": [
    "+972747713001",
    "+972747713002"
  ],
  "limits": {
    "max_members_per_room": 250,
    "max_rooms": 100
  },
  "outbound_caller_ids": [
    "+972747713010",
    "+972747713011"
  ],
  "webhook_url": "https://api.example.com/webhooks"
}
```

**SDK Code**

```python Application_getApplicationConfiguration_example
import requests

url = "https://api.telekesher.dev/api/v1/app"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Application_getApplicationConfiguration_example
const url = 'https://api.telekesher.dev/api/v1/app';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Application_getApplicationConfiguration_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.telekesher.dev/api/v1/app"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Application_getApplicationConfiguration_example
require 'uri'
require 'net/http'

url = URI("https://api.telekesher.dev/api/v1/app")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Application_getApplicationConfiguration_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.telekesher.dev/api/v1/app")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Application_getApplicationConfiguration_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.telekesher.dev/api/v1/app', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Application_getApplicationConfiguration_example
using RestSharp;

var client = new RestClient("https://api.telekesher.dev/api/v1/app");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Application_getApplicationConfiguration_example
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.telekesher.dev/api/v1/app")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```