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

# Create service request

POST https://api.propexo.com/v1/service-requests/
Content-Type: application/json

Create a service request for an integration.

Reference: https://docs.propexo.com/api-reference/pms-generic-ap-is/service-requests/create-service-request

## Authentication

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

## Servers

- `https://api.propexo.com` (Production, default)
- `https://api.sandbox.propexo.com` (Sandbox)

## Request

### Body (application/json)

This endpoint expects a _v1_service-requests__post_input.

- `integration_id` (string, required)
- `employee_id` (string, optional) — The Propexo unique identifier for the employee. Please note that due to a lack of proper unique IDs in Resman, multiple duplicate employees may exist for the same actual employee. You may use any one of those duplicate record IDs for this API call.
- `vendor_id` (string, optional) — The Propexo unique identifier for the vendor
- `property_id` (string, optional) — The Propexo unique identifier for the property
- `resident_id` (string, optional) — The Propexo unique identifier for the resident
- `unit_id` (string, optional) — The Propexo unique identifier for the unit
- `service_description` (string, optional) — A description of the service request
- `service_priority` (enum, optional) — The priority level associated with the service request
  - Allowed values: `High`, `Low`, `Med`, `24 hours`, `Emergency`
- `service_status` (enum, optional) — The status associated with the service request
  - Allowed values: `New`, `InProgress`, `Completed`, `Deferred`, `Closed`
- `access_is_authorized` (boolean, optional) — Whether or not the tenant has granted permission to enter the unit associated with the service request
- `service_details` (string, optional) — Details about the service request
- `access_notes` (string, optional) — Notes regarding access to the unit associated with the service request
- `date_due` (string, optional) — The due date associated with the service request
- `invoice_number` (string, optional) — The invoice or reference number that the vendor assigned to the service request
- `notes` (string, optional) — Notes associated with the service request
- `service_request_category_id` (string, optional) — The Propexo unique identifier for the service request category
- `service_request_priority_id` (string, optional) — The Propexo unique identifier for the service request priority
- `service_request_location_id` (string, optional) — The Propexo unique identifier for the service request location
- `service_request_problem_id` (string, optional) — The Propexo unique identifier for the service request problem
- `due_date` (string, optional) — The due date associated with the service request
- `is_floating` (boolean, optional)
- `scheduled_end_date` (string, optional) — The scheduled end date associated with the request. If provided, scheduled_start_date must be provided as well, and they must be the same day (Entrata restriction).
- `scheduled_start_date` (string, optional) — The scheduled start date associated with the request. If provided, scheduled_end_date must be provided as well, and they must be the same day (Entrata restriction).
- `phone_1` (string, optional)
- `lease_id` (string, optional) — The Propexo unique identifier for the lease
- `date_created` (string, optional) — The date the service request was created
- `status_raw` (enum, optional) — The raw status associated with the service request
  - Allowed values: `Assessment`, `Call`, `Canceled`, `Completed`, `Electrical`, `Emergency`, `HVAC`, `In Progress`, `Inspection`, `On Hold`, `Other`, `Plumbing`, `Request Reassignment`, `Scheduled`, `Service`, `Web`, `Work Completed`
- `has_pets` (boolean, optional) — Whether there are pets associated with the unit
- `has_alarm` (boolean, optional) — Whether there is an alarm associated with the unit
- `completion_notes` (string, optional) — Closing notes associated with the service request
- `date_entered` (V1ServiceRequestsPostInputDateEntered, optional) — The date of entry for the service request
- `date_scheduled` (string, optional) — The date the service request is scheduled
- `service_category` (enum, optional) — The category of service request
  - Allowed values: `Electrical`, `HVAC`, `Other`, `Plumbing`, `Service`
- `date_completed` (string, optional) — The date the service request was completed
- `access_is_authorized_value` (enum, optional) — Type of permission needed to enter the unit. Possible values: "ENTER_AT_ANY_TIME" - Enter any time, "BY_PERMISSION_ONLY" - By permission only, "CALL_FOR_ENTRY" - Call for entry
  - Allowed values: `ENTER_AT_ANY_TIME`, `BY_PERMISSION_ONLY`, `CALL_FOR_ENTRY`
- `service_request_status_id` (string, optional) — The Propexo unique identifier for the service request status
- `vendor_notes` (string, optional) — Vendor/technician notes associated with the service request
- `reported_by` (string, optional) — The name of the person who reported this service request

## Response

### 200

Successful response

- `job_id` (string, required) — The ID of the job created to handle this operation
- `data` (V1ServiceRequestsPostOutputData, required)

## Errors

### 400 Bad Request Error

Bad Request

- `error` (ErrorResponseError, required)

## Types

### V1ServiceRequestsPostInputDateEntered

The date of entry for the service request

### V1ServiceRequestsPostOutputData

### ErrorResponseError

- `code` (string, required)
- `message` (string, required)
- `details` (map from string to any, optional)

## Examples

**Request**

```json
{
  "integration_id": "intg_9f8b7c6d5e4a3b2c1d0e"
}
```

**Response**

```json
{
  "job_id": "job_1234567890abcdef",
  "data": {}
}
```

**SDK Code**

```python
import requests

url = "https://api.propexo.com/v1/service-requests/"

payload = { "integration_id": "intg_9f8b7c6d5e4a3b2c1d0e" }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.propexo.com/v1/service-requests/';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"integration_id":"intg_9f8b7c6d5e4a3b2c1d0e"}'
};

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

```go
package main

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

func main() {

	url := "https://api.propexo.com/v1/service-requests/"

	payload := strings.NewReader("{\n  \"integration_id\": \"intg_9f8b7c6d5e4a3b2c1d0e\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

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

url = URI("https://api.propexo.com/v1/service-requests/")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"integration_id\": \"intg_9f8b7c6d5e4a3b2c1d0e\"\n}"

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

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

HttpResponse<String> response = Unirest.post("https://api.propexo.com/v1/service-requests/")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"integration_id\": \"intg_9f8b7c6d5e4a3b2c1d0e\"\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.propexo.com/v1/service-requests/', [
  'body' => '{
  "integration_id": "intg_9f8b7c6d5e4a3b2c1d0e"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.propexo.com/v1/service-requests/");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"integration_id\": \"intg_9f8b7c6d5e4a3b2c1d0e\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["integration_id": "intg_9f8b7c6d5e4a3b2c1d0e"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.propexo.com/v1/service-requests/")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```