Generated by API Evangelist
Written by API Evangelist tooling for GitLab's API. It is a proposal applied on top of the contract, not a document GitLab publishes.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for GitLab OAuth 2.0 Authorization API
version: 1.0.0
extends: openapi/gitlab-authorization-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 2
- target: $.paths['/oauth/authorize'].get
update:
x-apievangelist-phrasing:
intent: Start the OAuth authorization code flow
effect: read
questions:
- How do I send a user to GitLab to approve my app's access?
- Can I use PKCE with the authorization code flow for a public client?
- Which scopes can I request when asking a user to authorize my app?
instructions:
- text: Build the authorize URL for client {client_id} redirecting to {redirect_uri} with response type {response_type} and state {state}.
slots:
client_id: query.client_id
redirect_uri: query.redirect_uri
response_type: query.response_type
state: query.state
- text: Send the user to authorize app {client_id} for scopes {scope}, returning to {redirect_uri}, type {response_type}, state {state}.
slots:
client_id: query.client_id
scope: query.scope
redirect_uri: query.redirect_uri
response_type: query.response_type
state: query.state
method: generated
generated: '2026-09-26'
- target: $.paths['/oauth/authorize_device'].post
update:
x-apievangelist-phrasing:
intent: Start a device authorization grant
effect: write
questions:
- How do I sign in a CLI or TV app that can't open a browser?
- What does the device flow return for the user to enter on another device?
instructions:
- text: Start device authorization for client {client_id}.
slots:
client_id: requestBody.client_id
- text: Request a device code and user code for app {client_id} with scopes {scope}.
slots:
client_id: requestBody.client_id
scope: requestBody.scope
method: generated
generated: '2026-09-26'
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.