---
title: "POST /api/v1/app-connections/gitlab"
method: POST
path: "/api/v1/app-connections/gitlab"
tags: ["App Connections"]
---

# POST /api/v1/app-connections/gitlab

`POST /api/v1/app-connections/gitlab`

Create a GitLab Connection.

## Request body

- union
  - object
    - `method` 'access-token', required — The method used to authenticate with GitLab.
    - `credentials` object, required — The credentials used to connect with GitLab.
      - `accessToken` string, required — The Access Token used to access GitLab.
      - `instanceUrl` string, uri — The GitLab instance URL to connect with.
      - `accessTokenType` 'project' | 'personal' | 'group', required — The type of token used to connect with GitLab.
    - `name` string, required — The name of the GitLab Connection to create. Must be slug-friendly.
    - `description` string, nullable — An optional description for the GitLab Connection.
    - `projectId` string — The ID of the project to create the GitLab Connection in.
    - `isPlatformManagedCredentials` false — Not supported for GitLab Connections.
    - `gatewayId` 'null', nullable — Not supported for GitLab Connections.
    - `gatewayPoolId` 'null', nullable — Not supported for GitLab Connections.
    - `isAutoRotationEnabled` false — Not supported for GitLab Connections.
    - `rotation` 'null', nullable — Not supported for GitLab Connections.
  - object
    - `method` 'oauth', required — The method used to authenticate with GitLab.
    - `credentials` union, required — The credentials used to connect with GitLab.
      - object
        - `code` string, required — The OAuth code to use to connect with GitLab.
        - `instanceUrl` string, uri — The GitLab instance URL to connect with.
      - object
        - `refreshToken` string, required
        - `instanceUrl` string, uri — The GitLab instance URL to connect with.
      - object
        - `accessToken` string, required
        - `refreshToken` string, required
        - `expiresAt` string, date-time, required
        - `tokenType` string
        - `createdAt` string
        - `instanceUrl` string, uri — The GitLab instance URL to connect with.
    - `name` string, required — The name of the GitLab Connection to create. Must be slug-friendly.
    - `description` string, nullable — An optional description for the GitLab Connection.
    - `projectId` string — The ID of the project to create the GitLab Connection in.
    - `isPlatformManagedCredentials` false — Not supported for GitLab Connections.
    - `gatewayId` 'null', nullable — Not supported for GitLab Connections.
    - `gatewayPoolId` 'null', nullable — Not supported for GitLab Connections.
    - `isAutoRotationEnabled` false — Not supported for GitLab Connections.
    - `rotation` 'null', nullable — Not supported for GitLab Connections.

## Response `200`

Default Response

- object
  - `appConnection` union, required
    - object
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable
      - `version` number
      - `orgId` string, uuid, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `isPlatformManagedCredentials` boolean, nullable
      - `gatewayId` string, uuid, nullable
      - `projectId` string, nullable
      - `isAutoRotationEnabled` boolean
      - `gatewayPoolId` string, uuid, nullable
      - `rotation` object — The credential rotation configuration, if configured.
        - `lastRotationMessage` string, nullable — The message from the last rotation attempt.
        - `rotationInterval` number, required — The interval in days between credential rotations.
        - `nextRotationAt` string, date-time, nullable — The next scheduled rotation time.
        - `rotationStatus` 'success' | 'failed', required — The status of the last rotation attempt.
        - `rotateAtUtc` object, required — The UTC time of day at which rotation should occur.
          - `hours` number, required — The hour (0-23) at which to rotate.
          - `minutes` number, required — The minute (0-59) at which to rotate.
      - `credentialsHash` string
      - `project` object, nullable
        - `name` string, required
        - `id` string, required
        - `type` string, required
        - `slug` string, required
      - `app` 'gitlab', required
      - `method` 'access-token', required
      - `credentials` object, required
        - `instanceUrl` string, uri — The GitLab instance URL to connect with.
        - `accessTokenType` 'project' | 'personal' | 'group', required — The type of token used to connect with GitLab.
    - object
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable
      - `version` number
      - `orgId` string, uuid, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `isPlatformManagedCredentials` boolean, nullable
      - `gatewayId` string, uuid, nullable
      - `projectId` string, nullable
      - `isAutoRotationEnabled` boolean
      - `gatewayPoolId` string, uuid, nullable
      - `rotation` object — The credential rotation configuration, if configured.
        - `lastRotationMessage` string, nullable — The message from the last rotation attempt.
        - `rotationInterval` number, required — The interval in days between credential rotations.
        - `nextRotationAt` string, date-time, nullable — The next scheduled rotation time.
        - `rotationStatus` 'success' | 'failed', required — The status of the last rotation attempt.
        - `rotateAtUtc` object, required — The UTC time of day at which rotation should occur.
          - `hours` number, required — The hour (0-23) at which to rotate.
          - `minutes` number, required — The minute (0-59) at which to rotate.
      - `credentialsHash` string
      - `project` object, nullable
        - `name` string, required
        - `id` string, required
        - `type` string, required
        - `slug` string, required
      - `app` 'gitlab', required
      - `method` 'oauth', required
      - `credentials` object, required
        - `instanceUrl` string, uri — The GitLab instance URL to connect with.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `500` — Default Response

---

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