---
title: "Create a workspace"
method: POST
path: "/v3/workspaces"
tags: ["Workspaces"]
---

# Create a workspace

`POST /v3/workspaces`

Create a workspace

## Request body

- WorkspaceCreate
  - `organization` string, required — Uniquely identify an organization.
  - `name` string, required
  - `visibility` 'organization' | 'private' — Visibility "organization" means everyone in the organization can access the workspace. Visibility "private" means only people explicitly added can access the workspace.
  - `rejectInvalidDocuments` boolean — If true, the uploaded document will be rejected if it's of the wrong document type, or if its document type cannot be determined. No credits will be consumed.
  - `rejectDuplicates` boolean, nullable — If "true", parsing will fail when the uploaded document is duplicate of an existing document, no credits will be consumed. If "false", will parse the document normally whether its a duplicate or not. If not provided, will fallback to the workspace settings.
  - `documentTypes` PropertiesIdentifier[] — Document types to associate with this workspace
  - `whitelistIngestAddresses` string[], nullable — If specified, only emails from these addresses will be ingested for parsing. Wild cards are allowed, e.g. "*@eyefind.info".
  - `documentSplitter` string — Uniquely identify a document splitter.

## Response `201`

Successfully created a workspace.

- Workspace
  - `identifier` string, required — Uniquely identify a workspace.
  - `organization` Organization
    - `identifier` string, required — Uniquely identify an organization.
    - `name` string, required
    - `userRole` 'admin' | 'member', required
    - `avatar` string, nullable, required — URL of the organization's avatar.
    - `resthookSignatureKey` string, nullable, required — Used to sign webhook payloads so you can verify their integrity.
    - `isTrial` boolean, required
    - `validationToolConfig` object, nullable, required — Configuration of the embeddable validation tool.
      - `theme` ThemeConfig
        - `palette` object
          - `mode` 'light' | 'dark'
          - `background` union
            - string
            - object
              - …
          - `text` object
            - `primary` string
            - `secondary` string
            - `disabled` string
          - `divider` string
          - `primary` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `secondary` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `success` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `annotation` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `error` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `info` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
          - `warning` PaletteColorOptions
            - `main` string, required
            - `light` string
            - `dark` string
            - `contrastText` string
        - `typography` object
          - `fontFamily` string
          - `fontSize` union
            - string
            - number
          - `fontWeightRegular` string
          - `fontWeightMedium` string
          - `fontWeightBold` string
        - `borderRadius` number
        - `fontUrl` string
      - `hideActions` boolean — Hide the confirm document button and other actions.
      - `hideCollection` boolean — Hide the collection selector.
      - `hideEditPages` boolean — Hide the edit pages button.
      - `hideExport` boolean — Hide the export menu.
      - `hideFilename` boolean — Hide the filename input.
      - `hideShowRawValues` boolean — Hide the toggle for showing raw annotation values.
      - `hideReject` boolean — Hide the reject document button.
      - `hideReparse` boolean — Hide the reparse button.
      - `hideRunOcr` boolean — Hide the run OCR button.
      - `hideTags` boolean — Hide the tags editor.
      - `hideWarnings` boolean — Hide the warnings panel.
      - `restrictDocumentSplitting` boolean — Disable the page editor after a document has been split once.
      - `disableCurrencyFormatting` boolean — Disable currency formatting of decimals values.
      - `disableEditDocumentMetadata` boolean — Disable editing document metadata. Makes the collection selector, filename input and tags editor read only.
      - `disableManualAnnotationEditing` boolean — Disable manual editing of annotation values via the validation popover.
      - `hideDocumentStatus` boolean — Hide the document status indicator in the toolbar.
    - `showCustomFieldCreation` boolean, required — Whether to show the custom field creation in the UI.
    - `allowDataSourceRecordCreation` boolean, required — Allow reviewers to create missing records from the data source selector. Keep disabled when data sources are managed by external system syncs.
  - `name` string
  - `visibility` 'organization' | 'private' — Visibility "organization" means everyone in the organization can access the workspace. Visibility "private" means only people explicitly added can access the workspace.
  - `collections` object[]
    - `identifier` string, required — Uniquely identify a collection.
    - `name` string, required
    - `extractor` object, required
      - `identifier` string, required — Uniquely identify an extractor.
      - `name` string, required
      - `namePlural` string, required
      - `baseExtractor` BaseExtractor, nullable
        - `identifier` string, required — Uniquely identify an extractor.
        - `name` string, required
        - `namePlural` string, required
        - `validatable` boolean, required
        - `isCustom` boolean
        - `createdDt` string, date-time
      - `category` string, nullable
      - `validatable` boolean, required
      - `createdDt` string, date-time
    - `unvalidatedDocsCount` integer, nullable — Number of unvalidated documents in the collection.
    - `confirmedDocsCount` integer, nullable — Number of validated documents in the collection.
  - `documentTypes` PropertiesIdentifier[] — Document types associated with this workspace
  - `rejectInvalidDocuments` boolean — If true, the uploaded document will be rejected if it's of the wrong document type, or if its document type cannot be determined. No credits will be consumed.
  - `rejectDuplicates` boolean, nullable — If "true", parsing will fail when the uploaded document is duplicate of an existing document, no credits will be consumed. If "false", will parse the document normally whether its a duplicate or not. If not provided, will fallback to the workspace settings.
  - `members` User[]
    - `id` integer — Uniquely identify a user.
    - `name` string
    - `username` string
    - `email` string
    - `avatar` string, nullable — URL of the user's avatar.
  - `unvalidatedDocsCount` integer — Number of unvalidated documents in the workspace.
  - `confirmedDocsCount` integer — Number of validated documents in the workspace.
  - `ingestEmail` string — When you send email to this address, any document attached in the body will be uploaded to this workspace.
  - `whitelistIngestAddresses` string[], nullable — If specified, only emails from these addresses will be ingested for parsing. Wild cards are allowed, e.g. "*@eyefind.info".
  - `documentSplitter` WorkspaceDocumentSplitter
    - `identifier` string, required — Uniquely identify a document splitter.
    - `name` string, required

## Other responses

- `400` — Bad request. If it is a validation error will contain a list of each invalid field
- `401` — Authorisation error
- `default` — UnexpectedError

---

[API](https://skmtc.net/affinda/apis/affinda-api-2.md) · [All operations](https://skmtc.net/affinda/apis/affinda-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/affinda/affinda-api-2/versions/6772e50cb58e/schema)
