> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skortorent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Application

> Creates an application from tenant email addresses. The property is linked later when generating a tenant onboarding token.
Exactly one entry must have `is_lead: true`. No tenant lookup or creation
is performed. An application supports up to five tenants in total.
Every participant starts with `consent_status: pending`,
while the lead is identified by `is_lead: true`. Non-lead emails receive
an application-invite email. This endpoint does not generate onboarding
tokens; each participant remains pending until their profile is completed.
If this API key already has an application containing the exact same set
of active tenant emails, the existing application is returned and no
invitation emails are sent again.




## OpenAPI

````yaml /api-reference/openapi.yaml post /applications/create-application
openapi: 3.1.0
info:
  title: SKOR Modular API
  version: 1.0.0
  description: >
    ## Overview

    This is the SKOR Modular API v1. It provides access to tenant

    workflows, API keys, webhooks, document processing, identity

    verification, banking connectivity, and forensic analysis.


    ## Error Statuses


    The API uses standard HTTP status codes to indicate the success

    or failure of requests. Each error response provides guidance

    to help identify the issue and take corrective action.


    ### Success — `200 OK`

    The request was processed successfully and the expected response

    data is returned.


    ### Validation Error — `400 Bad Request`

    The request is invalid due to missing, malformed, or incorrect

    parameters.


    **Common causes:**

    - Required fields are missing from the request.

    - Invalid data formats or unsupported values are provided.

    - File size or payload limits are exceeded.


    **How to resolve:**

    - Verify all required parameters are present.

    - Ensure the request payload matches the documented schema.

    - Validate data formats and constraints before retrying.


    ### Unauthorized — `401 Unauthorized`

    Authentication failed or the provided token is missing or invalid.


    **Common causes:**

    - The `Authorization` header is missing.

    - An invalid or expired bearer token is provided.


    **How to resolve:**

    - Ensure the token is included in the request as an `Authorization: Bearer
    <token>` header.

    - Verify the token is valid and has not expired.

    - Generate a new token if required.


    ### Not Found — `404 Not Found`

    The requested resource does not exist or is not accessible.


    **Common causes:**

    - An invalid or non-existent resource identifier.

    - The resource has not been created or has been deleted.


    **How to resolve:**

    - Confirm the resource identifier is correct.

    - Ensure the resource exists before accessing it.


    ### Server Error — `500 Internal Server Error`

    An unexpected error occurred on the server while processing the request.


    **How to resolve:**

    - Retry the request after a short delay.

    - If the issue persists, **[contact us](mailto:info@skortorent.com)** with
    relevant request details.


    ### Need Help?

    If you encounter unexpected behavior,

    please **[contact us](mailto:info@skortorent.com)** for assistance.
servers:
  - url: https://api.skortorent.com/api/v1
    description: Live
  - url: https://dev-api.skortorent.com/api/v1
    description: Sandbox
security:
  - BearerAuth: []
paths:
  /applications/create-application:
    post:
      tags:
        - Applications
      summary: Create Application
      description: >
        Creates an application from tenant email addresses. The property is
        linked later when generating a tenant onboarding token.

        Exactly one entry must have `is_lead: true`. No tenant lookup or
        creation

        is performed. An application supports up to five tenants in total.

        Every participant starts with `consent_status: pending`,

        while the lead is identified by `is_lead: true`. Non-lead emails receive

        an application-invite email. This endpoint does not generate onboarding

        tokens; each participant remains pending until their profile is
        completed.

        If this API key already has an application containing the exact same set

        of active tenant emails, the existing application is returned and no

        invitation emails are sent again.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - title
                - tenants
              properties:
                title:
                  type: string
                  maxLength: 255
                  example: Carrer de Mallorca 123 application
                tenants:
                  type: array
                  minItems: 1
                  maxItems: 5
                  description: >-
                    Unique tenant emails. They do not need to belong to an
                    existing tenant account.
                  items:
                    type: object
                    required:
                      - email
                      - is_lead
                    properties:
                      email:
                        type: string
                        format: email
                      is_lead:
                        type: boolean
                  example:
                    - email: lead@example.com
                      is_lead: true
                    - email: cotenant@example.com
                      is_lead: false
      responses:
        '200':
          description: An application already exists for these tenants
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                    example: Application already exists for these tenants
                  data:
                    type: object
                    properties:
                      application_id:
                        type: string
                      title:
                        type: string
        '201':
          description: Application created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      application_id:
                        type: string
                      title:
                        type: string
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '401':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
components:
  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              message:
                type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: |
        HTTP Bearer Authentication. Generate a shared token via
        `/authenticate/token`, then pass it as `Authorization: Bearer <token>`.

````