APIMatic · Arazzo Workflow

APIMatic Full SDK Release Pipeline

Version 1.0.0

Import, validate, transform to OpenAPI 3, then generate an SDK in one pass.

1 workflow 4 source APIs 1 provider
View Spec View on GitHub API TransformationCode GenerationDeveloper ExperienceDocumentationSDK GenerationArazzoWorkflows

Provider

apimatic

Workflows

full-release-pipeline
Import, validate, transform and generate an SDK as one gated pipeline.
Creates an API entity from an uploaded specification, lints it, normalizes it to OpenAPI 3.0 JSON, and generates an SDK only when validation reports the definition as valid.
4 steps inputs: authorization, file, platform outputs: apiEntityId, sdkDownloadUrl, transformedSpec
1
importSpec
Upload the API specification file as multipart form data to create a new API entity in APIMatic.
2
validateSpec
Validate and lint the imported definition; only a valid definition is allowed to continue down the pipeline.
3
transformSpec
Normalize the validated definition to OpenAPI 3.0 JSON and return the converted specification.
4
generateSdk
Generate an SDK for the validated API entity in the requested platform and return the download URL.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: APIMatic Full SDK Release Pipeline
  summary: Import, validate, transform to OpenAPI 3, then generate an SDK in one pass.
  description: >-
    An end-to-end release pipeline chaining four APIMatic operations. The
    workflow imports an API specification file to create an API entity,
    validates and lints it, transforms the definition into a normalized
    OpenAPI 3.0 JSON representation, and finally generates an SDK for the
    requested platform and returns the download URL. Validation gates the
    pipeline so a failing definition never reaches transformation or SDK
    generation. 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
sourceDescriptions:
- name: apisApi
  url: ../openapi/apimatic-apis-api-openapi.yml
  type: openapi
- name: sdkGenerationApi
  url: ../openapi/apimatic-sdk-generation-api-openapi.yml
  type: openapi
- name: transformationApi
  url: ../openapi/apimatic-transformation-api-openapi.yml
  type: openapi
- name: validationApi
  url: ../openapi/apimatic-validation-api-openapi.yml
  type: openapi
workflows:
- workflowId: full-release-pipeline
  summary: Import, validate, transform and generate an SDK as one gated pipeline.
  description: >-
    Creates an API entity from an uploaded specification, lints it, normalizes
    it to OpenAPI 3.0 JSON, and generates an SDK only when validation reports
    the definition as valid.
  inputs:
    type: object
    required:
    - authorization
    - file
    - platform
    properties:
      authorization:
        type: string
        description: API key passed in the Authorization header.
      file:
        type: string
        description: The API specification file contents to import.
      platform:
        type: string
        description: >-
          Target SDK platform, e.g. PYTHON_GENERIC_LIB, JAVA_ECLIPSE_JRE_LIB,
          TYPESCRIPT_GENERIC_LIB, CS_NET_STANDARD_LIB, PHP_GENERIC_LIB,
          RUBY_GENERIC_LIB or GO_GENERIC_LIB.
  steps:
  - stepId: importSpec
    description: >-
      Upload the API specification file as multipart form data to create a new
      API entity in APIMatic.
    operationId: importApiDefinition
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: multipart/form-data
      payload:
        file: $inputs.file
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      apiEntityId: $response.body#/id
  - stepId: validateSpec
    description: >-
      Validate and lint the imported definition; only a valid definition is
      allowed to continue down the pipeline.
    operationId: validateApiDefinition
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: apiEntityId
      in: path
      value: $steps.importSpec.outputs.apiEntityId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      valid: $response.body#/valid
    onSuccess:
    - name: specIsValid
      type: goto
      stepId: transformSpec
      criteria:
      - context: $response.body
        condition: $.valid == true
        type: jsonpath
    - name: specIsInvalid
      type: end
      criteria:
      - context: $response.body
        condition: $.valid == false
        type: jsonpath
  - stepId: transformSpec
    description: >-
      Normalize the validated definition to OpenAPI 3.0 JSON and return the
      converted specification.
    operationId: transformApiDefinition
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: apiEntityId
      in: path
      value: $steps.importSpec.outputs.apiEntityId
    requestBody:
      contentType: application/json
      payload:
        format: OpenApi3Json
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transformedSpec: $response.body
  - stepId: generateSdk
    description: >-
      Generate an SDK for the validated API entity in the requested platform and
      return the download URL.
    operationId: generateSdk
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: apiEntityId
      in: path
      value: $steps.importSpec.outputs.apiEntityId
    requestBody:
      contentType: application/json
      payload:
        platform: $inputs.platform
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      downloadUrl: $response.body#/downloadUrl
      expiresAt: $response.body#/expiresAt
  outputs:
    apiEntityId: $steps.importSpec.outputs.apiEntityId
    transformedSpec: $steps.transformSpec.outputs.transformedSpec
    sdkDownloadUrl: $steps.generateSdk.outputs.downloadUrl

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/apimatic-full-release-pipeline-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.