Apigee · Arazzo Workflow

Apigee Onboard a Developer App

Version 1.0.0

Create an API product, register a developer, create their app, and read the issued API keys.

1 workflow 4 source APIs 1 provider
View Spec View on GitHub Advanced API SecurityAgentic AIAnalyticsAPI GatewayAPI GovernanceAPI HubAPI ManagementDeveloper PortalEnterpriseGenerative AIHybridIntegrationMicroservicesMCPMonetizationArazzoWorkflows

Provider

apigee

Workflows

onboard-developer-app
Provision an API product, developer, and app, then retrieve the API keys.
Creates an API product, a developer, and a developer app bound to the product, then lists the app keys to obtain the auto-generated consumer key and secret.
4 steps inputs: appName, developerEmail, environments, firstName, lastName, organizationId, productName, proxies outputs: appId, consumerKey, consumerSecret, developerId
1
createProduct
Create an API product bundling the supplied proxies for consumption with automatic key approval.
2
createDeveloper
Register the developer account that will own the consuming app.
3
createApp
Create a developer app bound to the new API product, which auto-generates a consumer key and secret.
4
getAppKeys
List the developer app keys to retrieve the issued consumer key and secret for the new app.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Apigee Onboard a Developer App
  summary: Create an API product, register a developer, create their app, and read the issued API keys.
  description: >-
    The classic Apigee consumer-onboarding flow. The workflow creates an API
    product that bundles one or more proxies, registers a developer account,
    creates a developer app bound to that product (which auto-generates a
    consumer key and secret), and then reads back the app keys so they can be
    handed to the developer. Every step spells out its request inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-4270
  - BC-4270.40
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4270
      capability_name: Developer Platform & API Ecosystem Management
      spec: apigee-api-products-api-openapi.yml
      confidence: 0.75
    - capability_id: BC-4270.40
      capability_name: Developer Identity & Credential Management
      spec: apigee-developers-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: apiProductsApi
  url: ../openapi/apigee-api-products-api-openapi.yml
  type: openapi
- name: developerAppKeysApi
  url: ../openapi/apigee-developer-app-keys-api-openapi.yml
  type: openapi
- name: developerAppsApi
  url: ../openapi/apigee-developer-apps-api-openapi.yml
  type: openapi
- name: developersApi
  url: ../openapi/apigee-developers-api-openapi.yml
  type: openapi
workflows:
- workflowId: onboard-developer-app
  summary: Provision an API product, developer, and app, then retrieve the API keys.
  description: >-
    Creates an API product, a developer, and a developer app bound to the
    product, then lists the app keys to obtain the auto-generated consumer key
    and secret.
  inputs:
    type: object
    required:
    - organizationId
    - productName
    - proxies
    - environments
    - developerEmail
    - firstName
    - lastName
    - appName
    properties:
      organizationId:
        type: string
        description: The Apigee organization to onboard into.
      productName:
        type: string
        description: Internal name for the new API product.
      proxies:
        type: array
        description: API proxy names to bundle into the product.
        items:
          type: string
      environments:
        type: array
        description: Environments where the product is available.
        items:
          type: string
      developerEmail:
        type: string
        description: Email address used as the developer's unique identifier.
      firstName:
        type: string
        description: Developer first name.
      lastName:
        type: string
        description: Developer last name.
      appName:
        type: string
        description: Name of the developer app to create.
  steps:
  - stepId: createProduct
    description: >-
      Create an API product bundling the supplied proxies for consumption with
      automatic key approval.
    operationId: createApiProduct
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.productName
        displayName: $inputs.productName
        approvalType: auto
        proxies: $inputs.proxies
        environments: $inputs.environments
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      createdProduct: $response.body#/name
  - stepId: createDeveloper
    description: >-
      Register the developer account that will own the consuming app.
    operationId: createDeveloper
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    requestBody:
      contentType: application/json
      payload:
        email: $inputs.developerEmail
        firstName: $inputs.firstName
        lastName: $inputs.lastName
        userName: $inputs.developerEmail
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      developerId: $response.body#/developerId
  - stepId: createApp
    description: >-
      Create a developer app bound to the new API product, which auto-generates
      a consumer key and secret.
    operationId: createDeveloperApp
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    - name: developerId
      in: path
      value: $inputs.developerEmail
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.appName
        apiProducts:
        - $inputs.productName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      appId: $response.body#/appId
  - stepId: getAppKeys
    description: >-
      List the developer app keys to retrieve the issued consumer key and
      secret for the new app.
    operationId: listDeveloperAppKeys
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    - name: developerId
      in: path
      value: $inputs.developerEmail
    - name: appId
      in: path
      value: $inputs.appName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      consumerKey: $response.body#/0/consumerKey
      consumerSecret: $response.body#/0/consumerSecret
  outputs:
    developerId: $steps.createDeveloper.outputs.developerId
    appId: $steps.createApp.outputs.appId
    consumerKey: $steps.getAppKeys.outputs.consumerKey
    consumerSecret: $steps.getAppKeys.outputs.consumerSecret

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/apigee-onboard-developer-app-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

A second provider on the same verified email joins the account you already have.