You can choose to auto approve developers and applications or require admin approval for developers and applications by navigating to Settings and the Security tab in your Dev Portal settings.
If your settings require developer or application approval, you can manage approvals by navigating to the Developers or Applications tab in your Dev Portal overview in Konnect. You need the API Registration Approver and Portal Viewer role assigned to the Teams that control the APIs to approve these.
Additionally, you can add developers to teams by clicking on the settings menu next to the name of the developer.
Once approved, developers can create applications and view APIs, and the application can generate credentials to use the APIs.
Applications and API keys are specific to a geographic region.
When you enable application registration by selecting an authentication strategy during publication, the resulting applications and API keys are tied to the developers and traffic in that region.
You can pre-create developer accounts to provision their team association and API access before they access the Dev Portal.
-
To automatically create developers and send them an email to create a password, send a POST request to the /portals/{portalId}/developers endpoint:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/developers" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"full_name": "Raina Sovani",
"email": "raina.sovani@example.com",
"status": "approved",
"send_invitation_email": true
}'
- Copy and export the developer ID:
export DEVELOPER_ID='YOUR DEVELOPER ID'
-
Add the developer to an existing team that has the correct roles for the APIs they need access to by sending a POST request to the /portals/{portalId}/teams/{teamId}/developers endpoint:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/teams/$TEAM_ID/developers" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"id": "'$DEVELOPER_ID'"
}'
Logging in to Dev Portals:
- SSO: If a developer is created in a Dev Portal with SSO configured, they must be able to use SSO to log in if their email address is configured in the identity provider.
After they log in, they will automatically be approved. Both OIDC and SAML SSO are supported.
- Basic auth: If a developer is created in a Dev Portal with basic auth configured, they must be able to set their password. This can be done one of two ways:
send_invitation_email: true: Developers can use the link in the email to set their password.
- Developers can click Forgot password in the Dev Portal UI to set a password, regardless of whether
send_invitation_email is true or false.
You can automate applications and application registrations on behalf of a developer or team using the Konnect API.
The authentication strategy you want to use must be enabled on your Dev Portal and your published API.
Key auth credentials can’t be automatically created or imported.
-
Create a developer application by sending a POST request to the /portals/{portalId}/applications endpoint:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/applications" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"name": "KongAir Application",
"description": "A Dev Portal application provisioned for a developer by a Portal Admin.",
"auth_strategy_id": "'$AUTH_STRATEGY_ID'",
"owner": {
"id": "'$DEVELOPER_ID'",
"type": "developer"
}
}'
If the application is for a team, configure owner.type: team and set owner.id to the team ID instead of $DEVELOPER_ID.
- Copy and export the application ID:
export APPLICATION_ID='YOUR APPLICATION ID'
-
Create an application registration by sending a POST request to the /portals/{portalId}/applications/{applicationId}/registrations endpoint:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/applications/$APPLICATION_ID/registrations" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"api_id": "'$API_ID'",
"status": "approved"
}'
DCR applications:
If the application will be using a DCR provider with the given auth strategy, your configuration depends on your use case:
- You want to create a new DCR application, where the IdP client will be created in the identity provider and assigned a
client_id. This will be set as the client_id of the application and can’t be changed moving forward. Do not specify dcr_client_id or client_id in this case. client_id will be present in the response.
- You want to create an application that is linked to an existing IdP client, but treated as if it was created via the DCR app creation process. This allows you to import existing IdP clients when onboarding your applications into Konnect. In this case, you must specify
dcr_client_id and client_id will be present in the response.
You can assign an application to a team so that all members of that team share ownership of the application.
Any team member can edit, manage, and use the application.
Apps shared by a team appear in each member’s apps in the Dev Portal.
Team membership and roles are managed via Dev Portal teams and roles.
This is useful in cases such as when a developer leaves your organization.
With team application sharing, the team retains uninterrupted access to the application.
Important considerations:
- All members of the team that owns an application receive full ownership access.
- Applications can only be transferred to teams that have API Consumer access for every API currently registered by the application.
Similarly, you can only register APIs to team-owned applications if everyone in the team has access to the API.
This is true even if an individual team member has broader access through other teams.
To enable team application sharing, navigate to your Dev Portal in Konnect and click the Developers > Teams tabs. Click the relevant team, go to Settings, and enable Allow team to own applications.
To transfer ownership of an application to either a developer or team, navigate to the app and from the Actions dropdown menu, select “Transfer ownership”.
For more information about how to configure Dev Portal developer teams, see Dev Portal RBAC.
For more information about the developer experience, see Dev Portal developer sign-up.
Get started with custom forms:
For complete tutorials, see the following:
By default, Dev Portal collects the following information during registration:
- Developer registration: Full name and email address.
- Application registration: The application and API being registered.
If you need to capture more than this, for example a developer’s team, company, job title, or their reason for wanting access to an API, you can create a custom form.
Custom forms let you create a new form with configurable fields for developer registration or per-API application registration.
Use cases for custom forms include:
- Assign users to a team based on their self-selected answers.
- Associate a company name with a user.
- Pass the custom data to an in-house dashboard for managing approvals.
- Capture analytics about developers by job title.
The following field types are available when creating a custom form:
|
Field type
|
Description
|
Configurable properties
|
Example
|
|
Markdown content
|
A block of Markdown (MDC) text rendered between or above other fields. Doesn’t collect any input from the developer.
|
value (Markdown content, required, up to 4096 characters)
|
## Tell us about your project
|
|
Short text
|
A single-line text input.
|
label, placeholder, description (help text, supports Markdown), required
|
Company name or employee ID
|
|
Email
|
A single-line text input, validated as an email address.
|
label, placeholder, description, required
|
Email address
|
|
Number
|
A numeric input.
|
label, placeholder, description, required
|
Team size
|
|
Long text
|
A multi-line text input.
|
label, placeholder, description, required
|
Account registration request reason
|
|
Dropdown (single-select)
|
A dropdown where the developer chooses exactly one option. Requires at least one option.
|
label, placeholder, description, required, options (list of value/label/selected)
|
Department: Sales, Support, Engineering
|
|
Dropdown (multi-select)
|
A dropdown where the developer can choose more than one option. Requires at least two options.
|
label, placeholder, description, required, options (list of value/label/selected)
|
Topics of interest: API Gateway, Service Mesh, Developer Portal
|
|
Checkbox
|
A single boolean checkbox. Commonly used for terms acceptance, since the label and description both support inline Markdown links.
|
label, description (supports Markdown links), required
|
Terms and conditions acceptance
|
|
Submit
|
The submit button for the form. Exactly one is required per form.
|
value (button label, defaults to “Create account”)
|
Submit button
|
Keep the following constraints in mind when configuring a form:
- A form can have a maximum of 20 fields.
- Text field values can have a maximum of 256 characters.
- A form must contain exactly one submit field.
- Each field has a
name (a lowercase slug of letters, digits, underscores, and hyphens) that acts as its permanent identifier. Once set, it can’t be changed. Renaming a field’s label doesn’t change its name, so previously collected data always stays linked to the field. To rename a field, delete it and create it again with the new name.
- Built-in fields (
full_name, submit, and email on the developer registration form) can have their placeholder, description, and label properties edited, but their type and name can’t be changed, and they can’t be removed.
You can only create one developer registration form per Dev Portal.
Once it’s published, the custom form replaces the default sign-up form.
Create a form by sending a POST request to the /portals/{portalId}/forms endpoint.
The following example includes the required full_name, email, and submit fields, plus a department dropdown and a terms and conditions acceptance checkbox:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/forms" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"type": "developer_registration",
"status": "published",
"fields": [
{
"type": "content",
"value": "## Tell us about yourself\n\nThis information helps us route your request to the right team."
},
{
"type": "text",
"name": "full_name",
"label": "Full name",
"placeholder": "Enter your full name",
"required": true
},
{
"type": "email",
"name": "email",
"label": "Email address",
"placeholder": "you@example.com",
"required": true
},
{
"type": "select",
"mode": "single_select",
"name": "department",
"label": "Department",
"required": true,
"options": [
{
"value": "sales",
"label": "Sales"
},
{
"value": "engineering",
"label": "Engineering"
},
{
"value": "finance",
"label": "Finance"
}
]
},
{
"type": "checkbox",
"name": "agree_terms",
"label": "I agree to the terms and conditions",
"description": "View the [terms](https://example.com/terms).",
"required": true
},
{
"type": "submit",
"name": "submit",
"value": "Create account"
}
]
}'
To update the form later, send a PUT request to /v3/portals/{portalId}/forms/{formId}.
This replaces the default form, so any field omitted from the fields array is removed.
- In the Konnect sidebar, click Dev Portal > Portals.
- Click your Dev Portal.
- Click the Portal Editor tab.
- In the Portal Editor sidebar, click the forms icon.
- Click New form.
- Select Portal developer registration.
- Click Create.
- On the form’s Fields page, click Add to add additional fields, or click a field to edit it.
- Click Save and return to form.
- Click Save.
- When you want to publish the custom form, click Publish.
The Full name and Email address fields are added automatically and are required. You can edit these fields, but you can’t delete them. Any other fields you add can be edited or deleted.
You can create multiple API registration forms, and assign a different one to each API.
-
Create a form by sending a POST request to the /portals/{portalId}/forms endpoint. Set type to api_registration, supply a unique name for the form, and include a text field named api_id:
curl -X POST "https://us.api.konghq.com/v3/portals/$DEV_PORTAL_ID/forms" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"type": "api_registration",
"name": "payments-api-registration",
"status": "published",
"fields": [
{
"type": "text",
"name": "api_id",
"label": "API",
"required": true
},
{
"type": "text",
"name": "company_name",
"label": "Company name",
"required": true
},
{
"type": "select",
"mode": "single_select",
"name": "use_case",
"label": "Use case",
"required": true,
"options": [
{
"value": "analytics",
"label": "Analytics"
},
{
"value": "monitoring",
"label": "Monitoring"
}
]
},
{
"type": "submit",
"name": "submit",
"value": "Request access"
}
]
}'
The api_id and submit fields are required for every API registration form.
- Copy and export the form ID from the response:
export FORM_ID='YOUR FORM ID'
-
Link the form to an API by sending a PUT request to the /apis/{apiId}/publications/{portalId} endpoint, setting form_id to the form’s ID:
curl -X PUT "https://us.api.konghq.com/v3/apis/$API_ID/publications/$DEV_PORTAL_ID" \
--no-progress-meter --fail-with-body \
-H "Authorization: Bearer $KONNECT_TOKEN" \
--json '{
"form_id": "'$FORM_ID'"
}'
For the rest of the settings required to publish an API, see Publish your API to Dev Portal.
- In the Konnect sidebar, click Dev Portal > Portals.
- Click your Dev Portal.
- Click the Portal Editor tab.
- In the Portal Editor sidebar, click the forms icon.
- Click New form.
- Select API registration.
- In the Form name field, enter a name for the form.
- Click Create.
- On the form’s Fields page, click Add to add additional fields, or click a field to edit it.
- Click Save and return to form.
- Click Save.
- When you want to publish the custom form, click Publish.
A submit field is added automatically and is required. You don’t need to add or configure an api_id field yourself in the UI.
To link the form to an API:
- In the Konnect sidebar, click Dev Portal > Portals.
- Click your Dev Portal.
- Click the Published APIs tab.
- Find the API, click its action menu, and click Edit publication.
- Click the Require API registration form checkbox.
- From the Form dropdown menu, select your custom form.
- Click Save.
Submitted form answers appear alongside the developer or application registration they belong to:
Dev Portal doesn’t have a webhook for new registrations or form submissions, so if you want to react to new submissions automatically, poll these endpoints on an interval instead.
For example, you could filter on status=pending and track the last submission you’ve already processed.
If you later edit or delete a field or form, previously collected answers aren’t affected.
Each submitted answer is stored with a snapshot of its field label and type from the moment it was submitted, so it stays visible on the response detail view even after the field or form it came from no longer exists.
Keep the following limitations in mind for developers and applications:
- Each developer can create a maximum of 500 applications.
- Each application can have a maximum of 20 API keys.
- Each API that uses the ACE plugin can have a maximum of 1,000 operations.
- API Packages have a per-request PATCH limit of 100.