Skip to content

Code Suggestions API

Use the Code Suggestions API to access the Code Suggestions feature.

Create an access token

Creates an access token to access Code Suggestions.

POST /code_suggestions/tokens
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/code_suggestions/tokens"

Example response:

{
    "access_token": "secret-access-token",
    "expires_in": 3600,
    "created_at": 1687865199
}

Generate code completions

DETAILS: Status: Experiment

FLAG: On self-managed GitLab, by default this feature is not available. To make it available, an administrator can enable the feature flag named code_suggestions_completion_api. On GitLab.com, this feature is not available. This feature is not ready for production use.

NOTE: This endpoint rate-limits each user to 60 requests per 1-minute window.

Use the AI abstraction layer to generate code completions.

POST /code_suggestions/completions

Requests to this endpoint are proxied directly to the model gateway. The documentation for the endpoint is currently the SSoT for named parameters.

curl --request POST \
  --header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  --data "<JSON_BODY>" \
  --url "https://gitlab.example.com/api/v4/code_suggestions/completions"

Example body:

The model gateway is the SSoT for parameters.

Example response:

{
  "id": "id",
  "model": {
    "engine": "vertex-ai",
    "name": "code-gecko"
  },
  "object": "text_completion",
  "created": 1688557841,
  "choices": [
    {
      "text": "\n        if self.is_running:\n            self.speed += increment\n            print(\"The car's speed is now",
      "index": 0,
      "finish_reason": "length"
    }
  ]
}