> This page is optimized for agents. Use the linked Markdown pages and llms.txt indexes for related API content.

# Create Review entity.

- Product: Reviews
- Section: Review
- Snapshot: Current
- Method: `POST`
- Path: `/api/reviews/`

## Query parameters

### `reservation`

Type: `number`  
Required: yes  

### `token`

Type: `string`  
Required: yes  

### `organization`

Type: `number`  
Required: yes  

Organization ID

## Request body

Required: no  
Content types: `application/json`  

### `score`

Type: `number`  
Format: `float`  
Required: no  

### `public`

Type: `boolean`  
Required: no  

### `date`

Type: `string`  
Format: `date-time`  
Required: no  

### `title`

Type: `string`  
Required: no  

### `name`

Type: `string`  
Required: no  

### `body`

Type: `string`  
Required: no  

### `travelledAs`

Type: `string`  
Required: no  
Allowed values: `couple`, `family`, `friends`, `single`, `other`  

### `dateFrom`

Type: `string`  
Format: `date-time`  
Required: no  

### `dateTo`

Type: `string`  
Format: `date-time`  
Required: no  

### `locale`

Type: `string`  
Required: no  

### `country`

Type: `string`  
Required: no  

### `aspectScores`

Type: `object[]`  
Required: no  

#### object

Type: `object`  

##### `score`

Type: `number`  
Required: no  

##### `aspect`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

## Execute with TypeScript

Package: `@recranet/sdk`  

```ts
import { RecranetApiClient } from "@recranet/sdk";

const client = new RecranetApiClient({ apiKey: process.env.RECRANET_API_KEY! });

const result = await client.reviews.create({
  reservation: 0,
  token: "<token>",
  organization: 0,
});
```

## Execute with curl

```bash
curl -X POST "https://app.recranet.com/api/reviews/" \
    -H "X-Api-Key: $RECRANET_API_KEY" \
    --url-query "reservation=$RESERVATION" \
    --url-query "token=$TOKEN" \
    --url-query "organization=$ORGANIZATION" \
    -H 'Content-Type: application/json' \
    -d '{}'
```

## Responses

### Response `200`

Category: success  

Successful response

#### `application/json`

##### Generated example

```json
{
  "id": 0,
  "date": "date",
  "score": "score",
  "locale": "locale",
  "created": "created",
  "aspectScores": [
    {
      "id": 0,
      "score": "score",
      "aspect": {
        "id": 0,
        "active": true,
        "aspectSpecification": {}
      },
      "aspectSpecification": {
        "id": 0,
        "locale": "locale",
        "type": "location",
        "name": "name"
      }
    }
  ],
  "comments": [
    {
      "id": 0,
      "created": "created",
      "review": {
        "id": 1000
      },
      "body": "body",
      "sent": "sent",
      "public": true,
      "modified": "modified"
    }
  ],
  "accommodation": {
    "id": 0,
    "title": "title",
    "slug": "slug",
    "position": 0,
    "locale": "locale",
    "content": {
      "id": 0,
      "title": "Zandsteeg 58",
      "metaTitle": "Zandsteeg 58",
      "locale": "locale",
      "subtitle": "Mooi vakantiehuis in Zoetewater",
      "excerpt": "Een geheel gerenoveerd vakantiehuis net buiten het dorp, maar nog altijd maar op 400m van het strand.",
      "description": "description",
      "iframeUrl": "https://www.youtube.com/embed/aqz-KE-bpKQ?modestbranding=1&controls=0",
      "energyLabelEnabled": true,
      "energyLabel": "A++++",
      "customFacilities": [
        "Woonkamer met houtkachel",
        "Groot atelier in de aangrenzende schuur",
        "Badkamer met douche, 2 aparte toiletten"
      ]
    },
    "reference": "reference",
    "address": "address",
    "postalCode": "postalCode",
    "locality": "locality",
    "municipality": 0,
    "region": "region",
    "country": "country",
    "latitude": "latitude",
    "longitude": "longitude",
    "numOfBedrooms": 0,
    "numOfBeds": 0,
    "numOfBathrooms": 0,
    "minNumOfPersons": 0,
    "maxNumOfPersons": 0,
    "maxNumOfPets": 0,
    "minNumOfDays": 0,
    "maxNumOfDays": 0,
    "area": "area",
    "governmentRegistrationNumber": "governmentRegistrationNumber",
    "regionalRegistrationNumber": "regionalRegistrationNumber",
    "active": true,
    "public": true,
    "featured": false,
    "created": "created",
    "modified": "modified",
    "houseCode": "houseCode",
    "petsAllowed": true,
    "localityCategory": {
      "id": 0,
      "name": "name",
      "locale": "locale",
      "displayName": "displayName",
      "excerpt": "excerpt",
      "disclaimer": "disclaimer",
      "description": "description",
      "address": "address",
      "postalCode": "postalCode",
      "locality": "locality",
      "municipality": 0,
      "region": "region",
      "country": "country",
      "latitude": "latitude",
      "longitude": "longitude",
      "public": true,
      "root": {
        "id": 1000
      },
      "parent": {
        "id": 1000
      }
    },
    "category": {
      "id": 0,
      "name": "name",
      "locale": "locale",
      "displayName": "displayName",
      "description": "description",
      "root": {
        "id": 1000
      },
      "parent": {
        "id": 1000
      }
    }
  },
  "title": "title",
  "name": "name",
  "body": "body",
  "feedback": "feedback",
  "travelledAs": "friends",
  "dateFrom": "dateFrom",
  "dateTo": "dateTo",
  "country": "country",
  "public": true,
  "modified": "modified",
  "reservation": null,
  "guest": null
}
```

##### Schema

###### Review

Type: `Review`  

###### `id`

Type: `number`  
Required: yes  

###### `date`

Type: `string`  
Format: `date-time`  
Required: yes  

###### `title`

Type: `string`  
Required: no  

###### `name`

Type: `string`  
Required: no  

###### `body`

Type: `string`  
Required: no  

###### `feedback`

Type: `string`  
Required: no  

###### `score`

Type: `string`  
Required: yes  

###### `travelledAs`

Type: `string`  
Required: no  
Allowed values: `couple`, `family`, `friends`, `single`, `other`  

###### `dateFrom`

Type: `string`  
Format: `date-time`  
Required: no  

###### `dateTo`

Type: `string`  
Format: `date-time`  
Required: no  

###### `locale`

Type: `string`  
Required: yes  

###### `country`

Type: `string`  
Required: no  

###### `public`

Type: `boolean`  
Required: no  
Default: `true`  

###### `created`

Type: `string`  
Format: `date-time`  
Required: yes  

###### `modified`

Type: `string`  
Format: `date-time`  
Required: no  

###### `aspectScores`

Type: `ReviewAspectScore[]`  
Required: yes  

###### ReviewAspectScore

Type: `ReviewAspectScore`  

###### `id`

Type: `number`  
Required: yes  

###### `score`

Type: `string`  
Required: yes  

###### `aspect`

Type: `ReviewAspect`  
Required: no  

###### ReviewAspect

Type: `ReviewAspect`  

###### `id`

Type: `number`  
Required: yes  

###### `active`

Type: `boolean`  
Required: yes  

###### `aspectSpecification`

Type: `ReviewAspectSpecification`  
Required: no  

###### ReviewAspectSpecification

Type: `ReviewAspectSpecification`  

###### `aspectSpecification`

Type: `ReviewAspectSpecification`  
Required: no  

###### ReviewAspectSpecification

Type: `ReviewAspectSpecification`  

###### `id`

Type: `number`  
Required: yes  

###### `type`

Type: `string`  
Required: no  
Allowed values: `beach`, `child-friendly`, `hygiene`, `location`, `pool`, `value-for-money`, `sanitary`, `service`, `surroundings`, `restaurant`, `facilities`, `recommendation`, `accommodation`, `recreation-team`, `playground`, `terrain-maintenance`, `cleaning`  

###### `name`

Type: `string`  
Required: no  

###### `locale`

Type: `string`  
Required: yes  

###### `comments`

Type: `ReviewComment[]`  
Required: yes  

###### ReviewComment

Type: `ReviewComment`  

###### `id`

Type: `number`  
Required: yes  

###### `body`

Type: `string`  
Required: no  

###### `sent`

Type: `string`  
Format: `date-time`  
Required: no  

###### `public`

Type: `boolean`  
Required: no  
Default: `true`  

###### `created`

Type: `string`  
Format: `date-time`  
Required: yes  

###### `modified`

Type: `string`  
Format: `date-time`  
Required: no  

###### `review`

Type: `object`  
Required: yes  

###### `id`

Type: `number`  
Required: no  

###### `reservation`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `guest`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `accommodation`

Type: `Accommodation`  
Required: yes  

###### `id`

Type: `number`  
Required: yes  

###### `title`

Type: `string`  
Required: yes  

###### `reference`

Type: `string`  
Required: no  

###### `slug`

Type: `string`  
Required: yes  

###### `address`

Type: `string`  
Required: no  

###### `postalCode`

Type: `string`  
Required: no  

###### `locality`

Type: `string`  
Required: no  

###### `municipality`

Type: `number`  
Required: no  

###### `region`

Type: `string`  
Required: no  

###### `country`

Type: `string`  
Required: no  

###### `latitude`

Type: `string`  
Required: no  

###### `longitude`

Type: `string`  
Required: no  

###### `numOfBedrooms`

Type: `number`  
Required: no  

###### `numOfBeds`

Type: `number`  
Required: no  

###### `numOfBathrooms`

Type: `number`  
Required: no  

###### `minNumOfPersons`

Type: `number`  
Required: no  

###### `maxNumOfPersons`

Type: `number`  
Required: no  

###### `maxNumOfPets`

Type: `number`  
Required: no  

###### `minNumOfDays`

Type: `number`  
Required: no  

###### `maxNumOfDays`

Type: `number`  
Required: no  

###### `area`

Type: `string`  
Required: no  

###### `position`

Type: `number`  
Required: yes  

###### `governmentRegistrationNumber`

Type: `string`  
Required: no  

###### `regionalRegistrationNumber`

Type: `string`  
Required: no  

###### `locale`

Type: `string`  
Required: yes  

###### `active`

Type: `boolean`  
Required: no  

###### `public`

Type: `boolean`  
Required: no  

###### `featured`

Type: `boolean`  
Required: no  
Default: `false`  

###### `created`

Type: `string`  
Format: `date-time`  
Required: no  

###### `modified`

Type: `string`  
Format: `date-time`  
Required: no  

###### `houseCode`

Type: `string`  
Required: no  

###### `petsAllowed`

Type: `boolean`  
Required: no  

###### `localityCategory`

Type: `LocalityCategory`  
Required: no  

###### LocalityCategory

Type: `LocalityCategory`  

###### `id`

Type: `number`  
Required: yes  

###### `name`

Type: `string`  
Required: yes  

###### `excerpt`

Type: `string`  
Required: no  

###### `disclaimer`

Type: `string`  
Required: no  

###### `description`

Type: `string`  
Required: no  

###### `address`

Type: `string`  
Required: no  

###### `postalCode`

Type: `string`  
Required: no  

###### `locality`

Type: `string`  
Required: no  

###### `municipality`

Type: `number`  
Required: no  

###### `region`

Type: `string`  
Required: no  

###### `country`

Type: `string`  
Required: no  

###### `latitude`

Type: `string`  
Required: no  

###### `longitude`

Type: `string`  
Required: no  

###### `locale`

Type: `string`  
Required: yes  

###### `public`

Type: `boolean`  
Required: no  
Default: `true`  

###### `root`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `parent`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `displayName`

Type: `string`  
Required: yes  

###### `category`

Type: `AccommodationCategory`  
Required: no  

###### AccommodationCategory

Type: `AccommodationCategory`  

###### `id`

Type: `number`  
Required: yes  

###### `name`

Type: `string`  
Required: yes  

###### `description`

Type: `string`  
Required: no  

###### `locale`

Type: `string`  
Required: yes  

###### `root`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `parent`

Type: `object`  
Required: no  

###### `id`

Type: `number`  
Required: no  

###### `displayName`

Type: `string`  
Required: yes  

###### `content`

Type: `AccommodationContent`  
Required: yes  

###### `id`

Type: `number`  
Required: yes  

###### `title`

Type: `string`  
Required: yes  

Title shown to user

###### `metaTitle`

Type: `string`  
Required: yes  

Title used in the \<meta\> tag

###### `subtitle`

Type: `string`  
Required: no  

###### `excerpt`

Type: `string`  
Required: no  

###### `description`

Type: `string`  
Required: no  

###### `iframeUrl`

Type: `string`  
Required: no  

###### `energyLabelEnabled`

Type: `boolean`  
Required: no  

###### `energyLabel`

Type: `string`  
Required: no  
Allowed values: `A++++`, `A+++`, `A++`, `A+`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `N/A`  

###### `customFacilities`

Type: `string[]`  
Required: no  

###### string

Type: `string`  

###### `locale`

Type: `string`  
Required: yes  

### Response `400`

Category: client-error  

Bad request

#### `application/json`

##### Example

```json
{
  "statusCode": 400,
  "description": "Bad request",
  "errors": [
    "Bad request"
  ]
}
```

##### Schema

###### object

Type: `object`  

## Related representations

- [Human documentation](/reviews/methods/create/)
- [TypeScript Markdown](/reviews/methods/create.md?lang=typescript)
- [curl Markdown](/reviews/methods/create.md?lang=curl)
- [site llms.txt](/llms.txt)
- [product llms.txt](/reviews/llms.txt)
- [snapshot llms.txt](/reviews/llms.txt)
