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

# Jobs

GET https://testgatewayapi.insurapps.net/api/offline/jobs

## Offline İşleri Getir

InsurGateway API üzerinden offline işlerin sayfalanmış listesini getirir.

### Endpoint

`GET /api/offline/jobs`

### Kimlik Doğrulama

Bu istek, üst koleksiyondan miras alınan **Bearer Token** kimlik doğrulamasını kullanır. Token, `{{authToken}}` ortam değişkeninden çözümlenir.

### Sorgu Parametreleri

Tüm sorgu parametreleri isteğe bağlıdır ve varsayılan değerlere sahiptir. Hiçbir parametre gönderilmezse varsayılan değerler kullanılır.

| Parametre        | Tip            | Zorunlu | Varsayılan       | Açıklama                                                                                                                           |
| ---------------- | -------------- | ------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `page`           | integer        | ❌       | `1`              | Getirilecek sayfa numarası (1'den başlar). Minimum değer: `1`.                                                                     |
| `pageSize`       | integer        | ❌       | `50`             | Sayfa başına döndürülecek kayıt sayısı. Değer aralığı: `1` - `200`.                                                                |
| `sortOrder`      | enum           | ❌       | `desc`           | Sonuçların sıralama yönü. Kabul edilen değerler: `asc`, `desc`.                                                                    |
| `lastActionDate` | string (tarih) | ❌       | `DateTime.Today` | İşleri oluşturulma tarihine göre filtreler. Format: `YYYY-MM-DD` (örn. `2025-01-15`). Varsayılan olarak bugünün tarihi kullanılır. |

### Örnek İstek

```
GET https://gatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13

```

### Yanıt Yapısı

#### Başarılı Yanıt (200 OK)

```json
{
    "TotalCount": 38,
    "Page": 1,
    "Size": 50,
    "TotalPage": 1,
    "HasNextPage": false,
    "HasPreviousPage": false,
    "Items": [
        {
            "Id": 100001,
            "CurrentStage": 1,
            "JobStatus": 0,
            "ProductId": 10,
            "ProductBranchId": 3,
            "RejectReasonId": null,
            "LastJobActionType": 1,
            "CreateDate": "2025-03-01T10:00:00.0000000",
            "LastActionDate": "2025-03-01T10:00:00.0000000",
            "HasExistPolicyRequest": false,
            "OwnerId": null,
            "AgentName": null,
            "ProductBranchName": "Kasko",
            "PlatformProposalId": null,
            "InsuranceCompanyProposalNumber": "234234231",
            "BranchId":1,
            "BranchName":"Kasko",
            "ProposalId":23482
        },
        {
            "Id": 100002,
            "CurrentStage": 2,
            "JobStatus": 1,
            "ProductId": 20,
            "ProductBranchId": 1,
            "RejectReasonId": null,
            "LastJobActionType": 2,
            "CreateDate": "2025-03-02T11:30:00.0000000",
            "LastActionDate": "2025-03-02T14:00:00.0000000",
            "HasExistPolicyRequest": true,
            "OwnerId": 5001,
            "AgentName": "Acme Sigorta Acentesi",
            "ProductBranchName": "Trafik",
            "PlatformProposalId": "PLT-0001",
            "InsuranceCompanyProposalNumber": null,
            "BranchId":2,
            "BranchName":"Trafik",
            "ProposalId":23483
        }
        .
        .
        .
    ]
}

```

| Alan              | Tip     | Açıklama                   |
| ----------------- | ------- | -------------------------- |
| `TotalCount`      | integer | Toplam kayıt sayısı.       |
| `Page`            | integer | Mevcut sayfa numarası.     |
| `Size`            | integer | Sayfa başına kayıt sayısı. |
| `TotalPage`       | integer | Toplam sayfa sayısı.       |
| `HasNextPage`     | boolean | Sonraki sayfa var mı.      |
| `HasPreviousPage` | boolean | Önceki sayfa var mı.       |
| `Items`           | array   | İş kayıtlarının listesi.   |

**Items Dizisi:**

| Alan                           | Tip                  | Açıklama                                                                                                                           |
| ------------------------------ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `Id`                           | integer              | İş kaydının benzersiz kimliği.                                                                                                     |
| `CurrentStage`                 | integer              | İşin mevcut aşaması. [bknz.](https://docs.insurgateway.com/offline-constants#offline-stage-action)                                 |
| `JobStatus`                    | integer              | İş durumu kodu. [bknz.](https://docs.insurgateway.com/offline-constants#job-status)                                                |
| `ProductId`                    | integer              | Ürün kimliği.                                                                                                                      |
| `ProductBranchId`              | integer              | Ürün branş kimliği.                                                                                                                |
| `RejectReasonId`               | integer / null       | Red nedeni kimliği.                                                                                                                |
| `LastJobActionType`            | integer              | Son iş stage(aksiyon) tipi. [bknz.](https://docs.insurgateway.com/offline-constants#offline-stage-action)                          |
| `CreateDate`                   | string (datetime)    | Oluşturulma tarihi.                                                                                                                |
| `LastActionDate`               | string (datetime)    | Son işlem tarihi.                                                                                                                  |
| `HasExistPolicyRequest`        | boolean              | Mevcut poliçe talebi var mı.                                                                                                       |
| `OwnerId`                      | string (GUID) / null | Sahip kimliği.                                                                                                                     |
| `AgentName`                    | string / null        | Acente adı.                                                                                                                        |
| `ProductBranchName`            | string               | Ürün branş adı (örn. Trafik, KonutYangin).                                                                                         |
| `PlatformProposalId`           | string / null        | Platform teklif kimliği.                                                                                                           |
| InsuranceCompanyProposalNumber | string / null        | Sigorta şirketi teklif numarası                                                                                                    |
| BranchId                       | integer / null       | Şube Id: işin son aksiyonundaki acentenin, acente tanımında girilen Şube Id değeri (Banka tipindeki acentelerde zorunlu, nullable) |
| BranchName                     | string / null        | Şube: işin son aksiyonundaki acentenin adı (nullable)                                                                              |
| ProposalId                     | integer / null       | Gateway teklif numarası (nullable)                                                                                                 |

#### Validasyon Hatası (400 - Status: false)

Geçersiz parametreler gönderildiğinde döner. Her hatalı alan için ayrı bir hata mesajı içerir.

```json
{
    "Status": false,
    "Code": "Validation.General",
    "Message": "One or more validation errors occurred",
    "Response": [
        {
            "Field": "Page",
            "Message": "Page must be greater than or equal to 1."
        },
        {
            "Field": "PageSize",
            "Message": "PageSize must be between 1 and 200."
        },
        {
            "Field": "SortOrder",
            "Message": "sortOrder must be 'asc' or 'desc'."
        },
        {
            "Field": "CreateDate",
            "Message": "createDate must be in 'yyyy-MM-dd' format (e.g. 2025-01-15)."
        }
    ]
}

```

#### Şirket Ataması Hatası (403 - Status: false)

Token'da geçerli bir sigorta şirketi ataması bulunamadığında döner.

```json
{
    "Status": false,
    "Code": "OfflineUsers.InsuranceCompanyNotFound",
    "Message": "No valid insurance company assignment found in token.",
    "Response": null
}

```

#### Yetkilendirme Hataları

| Durum Kodu         | Açıklama                                                    |
| ------------------ | ----------------------------------------------------------- |
| `401 Unauthorized` | Token geçersiz veya süresi dolmuş. Body dönmez.             |
| `403 Forbidden`    | Kullanıcının bu endpoint'e erişim yetkisi yok. Body dönmez. |

### Kullanım Sıklığı ve Zamanlama

Bu endpoint yüksek miktarda veri döndürdüğünden, aşırı kullanımdan kaçınılmalıdır.

| Özellik                    | Değer                                                                                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Önerilen Çağrı Sıklığı** | Günde 1 kez                                                                                                                                       |
| **Önerilen Zaman Dilimi**  | Akşam saatleri (iş saatleri dışında)                                                                                                              |
| **Gerekçe**                | API yüksek hacimli veri döndürdüğünden, sistem yükünü azaltmak ve performansı korumak için günde bir kez akşam saatlerinde çağrılması yeterlidir. |

> **Uyarı:** Bu endpoint'in gün içinde sık aralıklarla çağrılması gereksiz sistem yükü oluşturabilir. Akşam saatlerinde günde tek bir çağrı ile güncel verilere ulaşılabilir.

### Notlar

* İstek göndermeden önce aktif ortamda geçerli bir `authToken` değişkeninin ayarlandığından emin olun. Token almak için **Authentication Login** isteğini kullanabilirsiniz.

* Token süresi dolmuşsa, yeni bir token almak için **Refresh Token** isteğini kullanın.

* Kullanıcının token'ında mutlaka bir sigorta şirketi ataması ve **InsuranceCompanyAPIAdmin** yetkisi bulunmalıdır.

Reference: https://docs.insurgateway.com/insurgateway-api/offline/jobs

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://testgatewayapi.insurapps.net` (https://testgatewayapi.insurapps.net, default)
- `https://gatewayapi.insurapps.net` (https://gatewayapi.insurapps.net)

## Request

### Query parameters

- `page` (integer, optional)
- `pageSize` (integer, optional)
- `sortOrder` (string, optional)
- `lastActionDate` (string, optional)

## Response

### 200

OK

## Errors

### 400 Bad Request Error

Bad Request

### 403 Forbidden Error

Forbidden

## Examples

**Response**

```json
{
  "TotalCount": 38,
  "Page": 1,
  "Size": 50,
  "TotalPage": 1,
  "HasNextPage": false,
  "HasPreviousPage": false,
  "Items": [
    {
      "Id": 100001,
      "CurrentStage": 1,
      "JobStatus": 0,
      "ProductId": 10,
      "ProductBranchId": 3,
      "RejectReasonId": null,
      "LastJobActionType": 1,
      "CreateDate": "2025-03-01T10:00:00.0000000",
      "LastActionDate": "2025-03-01T10:00:00.0000000",
      "HasExistPolicyRequest": false,
      "OwnerId": null,
      "AgentName": null,
      "ProductBranchName": "Kasko",
      "PlatformProposalId": null,
      "InsuranceCompanyProposalNumber": "234234231",
      "BranchId": 1,
      "BranchName": "Kasko",
      "ProposalId": 23482
    },
    {
      "Id": 100002,
      "CurrentStage": 2,
      "JobStatus": 1,
      "ProductId": 20,
      "ProductBranchId": 1,
      "RejectReasonId": null,
      "LastJobActionType": 2,
      "CreateDate": "2025-03-02T11:30:00.0000000",
      "LastActionDate": "2025-03-02T14:00:00.0000000",
      "HasExistPolicyRequest": true,
      "OwnerId": 5001,
      "AgentName": "Acme Sigorta Acentesi",
      "ProductBranchName": "Trafik",
      "PlatformProposalId": "PLT-0001",
      "InsuranceCompanyProposalNumber": null,
      "BranchId": 2,
      "BranchName": "Trafik",
      "ProposalId": 23483
    }
  ]
}
```

**SDK Code**

```python Offline_jobs_example
import requests

url = "https://testgatewayapi.insurapps.net/api/offline/jobs"

querystring = {"page":"1","pageSize":"50","sortOrder":"desc","lastActionDate":"2025-03-13"}

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

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

print(response.json())
```

```javascript Offline_jobs_example
const url = 'https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13';
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 Offline_jobs_example
package main

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

func main() {

	url := "https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13"

	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 Offline_jobs_example
require 'uri'
require 'net/http'

url = URI("https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13")

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 Offline_jobs_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp Offline_jobs_example
using RestSharp;

var client = new RestClient("https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Offline_jobs_example
import Foundation

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

let request = NSMutableURLRequest(url: NSURL(string: "https://testgatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13")! 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()
```