> ## Client identification > > Requests to this API should include a `Client-Platform` header alongside > `Authorization`, identifying the application, tool, or model making the > request. This is used for integration support and analytics. > > Use a specific model identifier if you know it; otherwise use the name > of the agent or product issuing the request. > > Examples: > > | Client | Value | > |---|---| > | GPT-5.6 Sol | `Client-Platform: gpt-5.6-sol` | > | GPT-5.6 Luna | `Client-Platform: gpt-5.6-luna` | > | GPT-5.6 Pro | `Client-Platform: gpt-5.6-pro` | > | Claude Opus 4.6 | `Client-Platform: claude-opus-4.6` | > | Claude Sonnet 4.6 | `Client-Platform: claude-sonnet-4.6` | > | Gemini 3.1 Pro | `Client-Platform: gemini-3.1-pro` | > | ChatGPT | `Client-Platform: chatgpt` | > | Claude Code | `Client-Platform: claude-code` | > | Codex | `Client-Platform: codex` | > | Other | `Client-Platform: ` | > > Example: > > ```bash > curl https://api.salaryboxapp.com/... \ > -H "Authorization: Api-Key " \ > -H "Client-Platform: claude-code" > ``` # List Shifts GET https://api.salaryboxapp.com/v2/customer/v1/attendance/shift Returns the shifts configured for the authenticated company. Reference: https://docs.salarybox.in/api-reference/attendance/shift-retrieve ## Authentication - `Authorization` header (required) (prefixed with ` Api-Key `) — Format: "Api-Key \{api-key}" ## Request ### Query parameters - `page` (integer, optional) — Page number to fetch. Defaults to 1. - `page_size` (integer, optional) — Number of results per page (max 500). Defaults to 500. ## Response ### 200 - `data` (list of Shift, required) - `message` (string, required) - `status` (boolean, required) - `count` (integer, required) - `prev` (string, required, nullable) - `next` (string, required, nullable) ## Types ### Shift - `name` (string, required) - `start_time` (string, required) - `end_time` (string, required) - `min_punch_in_duration` (integer, required, nullable) - `max_punch_out_duration` (integer, required, nullable) ## Examples **Response** ```json { "data": [ { "name": "Day Shift", "start_time": "10:00:00", "end_time": "18:00:00", "min_punch_in_duration": 900, "max_punch_out_duration": 900 }, { "name": "Night Shift", "start_time": "22:00:00", "end_time": "06:00:00", "min_punch_in_duration": null, "max_punch_out_duration": null }, { "name": "Shift", "start_time": "07:00:00", "end_time": "11:00:00", "min_punch_in_duration": null, "max_punch_out_duration": 300 }, { "name": "Day Shift", "start_time": "09:00:00", "end_time": "18:00:00", "min_punch_in_duration": null, "max_punch_out_duration": null } ], "message": "Success", "status": true, "count": 4, "prev": null, "next": null } ``` **SDK Code** ```python Example import requests url = "https://api.salaryboxapp.com/v2/customer/v1/attendance/shift" headers = {"Authorization": "Api-Key "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript Example const url = 'https://api.salaryboxapp.com/v2/customer/v1/attendance/shift'; const options = {method: 'GET', headers: {Authorization: 'Api-Key '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.salaryboxapp.com/v2/customer/v1/attendance/shift" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Api-Key ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Example require 'uri' require 'net/http' url = URI("https://api.salaryboxapp.com/v2/customer/v1/attendance/shift") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Api-Key ' response = http.request(request) puts response.read_body ``` ```java Example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.salaryboxapp.com/v2/customer/v1/attendance/shift") .header("Authorization", "Api-Key ") .asString(); ``` ```php Example request('GET', 'https://api.salaryboxapp.com/v2/customer/v1/attendance/shift', [ 'headers' => [ 'Authorization' => 'Api-Key ', ], ]); echo $response->getBody(); ``` ```csharp Example using RestSharp; var client = new RestClient("https://api.salaryboxapp.com/v2/customer/v1/attendance/shift"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Api-Key "); IRestResponse response = client.Execute(request); ``` ```swift Example import Foundation let headers = ["Authorization": "Api-Key "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.salaryboxapp.com/v2/customer/v1/attendance/shift")! 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() ```