---
title: "POST /4.0/layout-automation"
method: POST
path: "/4.0/layout-automation"
tags: ["Layout Automation"]
---

# POST /4.0/layout-automation

`POST /4.0/layout-automation`

actively calculates layout and creates an event/space/diagram

## Request body

- CustomWizardPostLayoutAutomationService
  - `event_id` number
  - `uses_metric` boolean
  - `start_time` string, date-time
  - `end_time` string, date-time
  - `category` string, required
  - `name` string — Required if no event_id is provided.
  - `public` boolean
  - `attendee_management` boolean
  - `useSocialDistance` boolean
  - `spaces` SpaceCustomWizardLayoutAutomationService[], required
    - `id` integer
    - `attendees` integer, required
    - `wizard` TemplatedLayoutSpecLayoutAutomationService
      - `setup` 'aligned' | 'classroom' | 'conference-table' | 'hollow' | 'hollow-square' | 'staggered' | 'theater' | 'theater-row' | 'theatre' | 'u-shape'
      - `attendees` integer, required
      - `chairType` 'banquet' | 'chiavari' | 'ghost'
      - `chairs` object
        - `size` object
          - `length` number
          - `width` number
      - `rotation` number — The rotation relative to the viewport.
      - `table` TableLayoutAutomationService
        - `type` 'chair' | 'oval' | 'oval-table' | 'rectangle' | 'rectangle-table' | 'square' | 'square-table' | 'theatre' | 'circle' | 'circle-table' | 'crescent' | 'crescent-table' | 'half-circle-table' | 'high-boy' | 'serpentine' | 'serpentine-table'
        - `size` object, required — For round tables, radius is required. All other tables require length and width.
          - `width` number
          - `length` number
          - `radius` number
        - `chairs` integer, required
        - `position` 'center' | 'nw' | 'sw' | 'ne' | 'se' | 'n' | 's' | 'e' | 'w'
        - `spacing` object, required
          - `x` number
          - `y` number
        - `cullAdditionalTables` boolean — Whether to cull extraneous tables beyond the requested attendee count, if any. It has no bearing on whether tables that collide with existing objects should be culled.
        - `placeEvenlyAcrossLayout` boolean — Should the automator attempt to place tables evenly across the space? False will limit tables to the largest 'region of interest' within the room.
        - `removeChairs` integer — The number of chairs to remove for crescent tables. Ignored for other floor elements.
        - `rotateCrescentOffset` number — The offset for where the missing chairs should be for crescent tables. Ignored for other floor elements.
      - `aisles` object
        - `horizontal` AisleLayoutAutomationService
          - `width` number
          - `floorElementsBetween` integer — Number of floor elements that should be placed in a row or column before an aisle is placed.
        - `vertical` AisleLayoutAutomationService
          - `width` number
          - `floorElementsBetween` integer — Number of floor elements that should be placed in a row or column before an aisle is placed.
      - `chevronAngle` number
      - `ignore_doors_and_columns` boolean — True and undefined result in skipping collision checks with permanentObjects
      - `best_effort_capacity` boolean — Whether a failure to seat all attendees is acceptable. False will throw a fatal error if not all attendees can be seated. True will seat the max possible and add a ctx error message
      - `errors_in_diagram` boolean — Add error text to the diagram.
      - `nudgeOnCollide` boolean — On collision, nudge tables slightly to a nearby valid position if any exists. Note: This may slightly compromise a setup's natural shape.
      - `updatedRects` boolean — Uses an improved algorithm to detect bounding boxes in a floorplan. It usually results in larger valid areas being detected.
    - `layoutSpec` TemplatedLayoutSpecLayoutAutomationService
      - `setup` 'aligned' | 'classroom' | 'conference-table' | 'hollow' | 'hollow-square' | 'staggered' | 'theater' | 'theater-row' | 'theatre' | 'u-shape'
      - `attendees` integer, required
      - `chairType` 'banquet' | 'chiavari' | 'ghost'
      - `chairs` object
        - `size` object
          - `length` number
          - `width` number
      - `rotation` number — The rotation relative to the viewport.
      - `table` TableLayoutAutomationService
        - `type` 'chair' | 'oval' | 'oval-table' | 'rectangle' | 'rectangle-table' | 'square' | 'square-table' | 'theatre' | 'circle' | 'circle-table' | 'crescent' | 'crescent-table' | 'half-circle-table' | 'high-boy' | 'serpentine' | 'serpentine-table'
        - `size` object, required — For round tables, radius is required. All other tables require length and width.
          - `width` number
          - `length` number
          - `radius` number
        - `chairs` integer, required
        - `position` 'center' | 'nw' | 'sw' | 'ne' | 'se' | 'n' | 's' | 'e' | 'w'
        - `spacing` object, required
          - `x` number
          - `y` number
        - `cullAdditionalTables` boolean — Whether to cull extraneous tables beyond the requested attendee count, if any. It has no bearing on whether tables that collide with existing objects should be culled.
        - `placeEvenlyAcrossLayout` boolean — Should the automator attempt to place tables evenly across the space? False will limit tables to the largest 'region of interest' within the room.
        - `removeChairs` integer — The number of chairs to remove for crescent tables. Ignored for other floor elements.
        - `rotateCrescentOffset` number — The offset for where the missing chairs should be for crescent tables. Ignored for other floor elements.
      - `aisles` object
        - `horizontal` AisleLayoutAutomationService
          - `width` number
          - `floorElementsBetween` integer — Number of floor elements that should be placed in a row or column before an aisle is placed.
        - `vertical` AisleLayoutAutomationService
          - `width` number
          - `floorElementsBetween` integer — Number of floor elements that should be placed in a row or column before an aisle is placed.
      - `chevronAngle` number
      - `ignore_doors_and_columns` boolean — True and undefined result in skipping collision checks with permanentObjects
      - `best_effort_capacity` boolean — Whether a failure to seat all attendees is acceptable. False will throw a fatal error if not all attendees can be seated. True will seat the max possible and add a ctx error message
      - `errors_in_diagram` boolean — Add error text to the diagram.
      - `nudgeOnCollide` boolean — On collision, nudge tables slightly to a nearby valid position if any exists. Note: This may slightly compromise a setup's natural shape.
      - `updatedRects` boolean — Uses an improved algorithm to detect bounding boxes in a floorplan. It usually results in larger valid areas being detected.
    - `name` string, required
    - `external_event_id` string
    - `external_diagram_id` string
    - `venue_id` string
    - `custom_setup` string
  - `user_email` string
  - `team_id` number

## Response `200`

full event created by the layout automation service

- PersistedAutomationPostResponseLayoutAutomationService
  - `id` integer
  - `name` string
  - `user_id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `is_a_sample` integer
  - `category` string
  - `is_public` boolean
  - `pricing_plan` string
  - `team_id` integer
  - `eventbrite_event_id` string
  - `eventbrite_access_token` string
  - `last_accessed` string, date-time
  - `logo` string
  - `floor_only` integer
  - `is_archived` boolean
  - `aim_only` integer
  - `start_time` string, date-time
  - `end_time` string, date-time
  - `mobile_col1` integer
  - `mobile_col2` integer
  - `event_url` string
  - `screenshot_url` string
  - `thumb_url` string
  - `forTraining` boolean
  - `uses_metric` integer
  - `collaborators_expire_at` string, date-time
  - `venue_mapper_version` integer
  - `uid` string
  - `cvent_rfp_id` string
  - `last_activity` string, date-time
  - `has_time` boolean
  - `status` string
  - `industry` string
  - `author` EventAuthorLayoutAutomationService
    - `id` integer
    - `first_name` string
    - `last_name` string
    - `email_address` string
  - `spaces` SpaceResultLayoutAutomationService[]
    - `id` integer
    - `event_id` integer
    - `space_order` integer
    - `bookable_room` string
    - `venue_id` string
    - `name` string
    - `updated_at` string, date-time
    - `is_new` boolean
    - `diagram_id` string
    - `pdf_url` string
    - `warnings` object[]
      - `message` string
      - `resolution` string
    - `errors` object[]
      - `message` string
      - `resolution` string
  - `message` string

---

[API](https://skmtc.net/socialtables/apis/social-tables-api-gateway.md) · [All operations](https://skmtc.net/socialtables/apis/social-tables-api-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/socialtables/social-tables-api-gateway/versions/221c9d836cf0/schema)
