Dataiku Govern API

Public REST API for interacting with Dataiku Govern to manage AI governance, blueprints, artifacts, sign-offs, and compliance workflows.

OpenAPI Specification

dataiku-govern-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dataiku Govern API
  description: >-
    Public REST API for interacting with Dataiku Govern to manage AI governance
    workflows, including blueprints, blueprint versions, artifacts, custom
    fields, sign-offs, reviews, roles, and compliance workflows for responsible
    AI management.
  version: '13.0'
  contact:
    name: Dataiku Support
    url: https://www.dataiku.com/support
    email: [email protected]
  termsOfService: https://www.dataiku.com/terms/
externalDocs:
  description: Dataiku Govern API Documentation
  url: https://doc.dataiku.com/dss/latest/governance/publicapi/rest.html
servers:
  - url: https://{govern-host}/public/api
    description: Dataiku Govern Instance
    variables:
      govern-host:
        default: govern.example.com
        description: Hostname of the Dataiku Govern instance
tags:
  - name: Artifact Sign-Offs
    description: Manage sign-off workflows on artifacts
  - name: Artifacts
    description: Manage governed artifacts (models, projects, etc.)
  - name: Blueprint Versions
    description: Manage blueprint version definitions
  - name: Blueprints
    description: Manage governance blueprints that define artifact types
  - name: Custom Fields
    description: Manage custom fields on artifacts
  - name: Roles
    description: Manage governance roles and assignments
  - name: Users
    description: Manage Govern users
security:
  - apiKeyAuth: []
paths:
  /blueprints:
    get:
      operationId: listBlueprints
      summary: Dataiku List blueprints
      description: >-
        Retrieve a list of all governance blueprints. Blueprints define the
        structure and lifecycle of governed artifacts.
      tags:
        - Blueprints
      responses:
        '200':
          description: List of blueprints
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BlueprintSummary'
        '401':
          description: Unauthorized
    post:
      operationId: createBlueprint
      summary: Dataiku Create a blueprint
      description: Create a new governance blueprint.
      tags:
        - Blueprints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBlueprintRequest'
      responses:
        '200':
          description: Blueprint created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Blueprint'
        '400':
          description: Invalid request
  /blueprints/{blueprintId}:
    get:
      operationId: getBlueprint
      summary: Dataiku Get blueprint details
      description: Retrieve the full definition of a governance blueprint.
      tags:
        - Blueprints
      parameters:
        - $ref: '#/components/parameters/blueprintId'
      responses:
        '200':
          description: Blueprint details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Blueprint'
        '404':
          description: Blueprint not found
    put:
      operationId: updateBlueprint
      summary: Dataiku Update a blueprint
      description: Update the definition of a governance blueprint.
      tags:
        - Blueprints
      parameters:
        - $ref: '#/components/parameters/blueprintId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Blueprint'
      responses:
        '200':
          description: Blueprint updated
        '404':
          description: Blueprint not found
    delete:
      operationId: deleteBlueprint
      summary: Dataiku Delete a blueprint
      description: Delete a governance blueprint and its versions.
      tags:
        - Blueprints
      parameters:
        - $ref: '#/components/parameters/blueprintId'
      responses:
        '204':
          description: Blueprint deleted
        '404':
          description: Blueprint not found
  /blueprints/{blueprintId}/versions:
    get:
      operationId: listBlueprintVersions
      summary: Dataiku List blueprint versions
      description: List all versions of a governance blueprint.
      tags:
        - Blueprint Versions
      parameters:
        - $ref: '#/components/parameters/blueprintId'
      responses:
        '200':
          description: List of blueprint versions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BlueprintVersionSummary'
        '404':
          description: Blueprint not found
    post:
      operationId: createBlueprintVersion
      summary: Dataiku Create a blueprint version
      description: Create a new version of a governance blueprint.
      tags:
        - Blueprint Versions
      parameters:
        - $ref: '#/components/parameters/blueprintId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBlueprintVersionRequest'
      responses:
        '200':
          description: Blueprint version created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintVersion'
        '400':
          description: Invalid request
  /blueprints/{blueprintId}/versions/{versionId}:
    get:
      operationId: getBlueprintVersion
      summary: Dataiku Get blueprint version details
      description: Get the full definition of a blueprint version.
      tags:
        - Blueprint Versions
      parameters:
        - $ref: '#/components/parameters/blueprintId'
        - $ref: '#/components/parameters/versionId'
      responses:
        '200':
          description: Blueprint version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintVersion'
        '404':
          description: Blueprint version not found
  /artifacts:
    get:
      operationId: listArtifacts
      summary: Dataiku List artifacts
      description: >-
        List governed artifacts, optionally filtered by blueprint.
      tags:
        - Artifacts
      parameters:
        - name: blueprintId
          in: query
          description: Filter by blueprint ID
          schema:
            type: string
      responses:
        '200':
          description: List of artifacts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactSummary'
        '401':
          description: Unauthorized
    post:
      operationId: createArtifact
      summary: Dataiku Create an artifact
      description: Create a new governed artifact under a blueprint.
      tags:
        - Artifacts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateArtifactRequest'
      responses:
        '200':
          description: Artifact created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '400':
          description: Invalid request
  /artifacts/{artifactId}:
    get:
      operationId: getArtifact
      summary: Dataiku Get artifact details
      description: Retrieve the details of a governed artifact.
      tags:
        - Artifacts
      parameters:
        - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: Artifact details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '404':
          description: Artifact not found
    put:
      operationId: updateArtifact
      summary: Dataiku Update an artifact
      description: Update the details of a governed artifact.
      tags:
        - Artifacts
      parameters:
        - $ref: '#/components/parameters/artifactId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Artifact'
      responses:
        '200':
          description: Artifact updated
        '404':
          description: Artifact not found
    delete:
      operationId: deleteArtifact
      summary: Dataiku Delete an artifact
      description: Delete a governed artifact.
      tags:
        - Artifacts
      parameters:
        - $ref: '#/components/parameters/artifactId'
      responses:
        '204':
          description: Artifact deleted
        '404':
          description: Artifact not found
  /artifacts/{artifactId}/custom-fields:
    get:
      operationId: getArtifactCustomFields
      summary: Dataiku Get artifact custom fields
      description: Retrieve all custom field values for an artifact.
      tags:
        - Custom Fields
      parameters:
        - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: Custom field values
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '404':
          description: Artifact not found
    put:
      operationId: setArtifactCustomFields
      summary: Dataiku Set artifact custom fields
      description: Update custom field values for an artifact.
      tags:
        - Custom Fields
      parameters:
        - $ref: '#/components/parameters/artifactId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Custom fields updated
        '404':
          description: Artifact not found
  /artifacts/{artifactId}/sign-offs:
    get:
      operationId: listArtifactSignOffs
      summary: Dataiku List artifact sign-offs
      description: List all sign-off steps and their status for an artifact.
      tags:
        - Artifact Sign-Offs
      parameters:
        - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: List of sign-offs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SignOff'
        '404':
          description: Artifact not found
  /artifacts/{artifactId}/sign-offs/{signOffStepId}:
    get:
      operationId: getArtifactSignOff
      summary: Dataiku Get sign-off step details
      description: Get details of a specific sign-off step for an artifact.
      tags:
        - Artifact Sign-Offs
      parameters:
        - $ref: '#/components/parameters/artifactId'
        - $ref: '#/components/parameters/signOffStepId'
      responses:
        '200':
          description: Sign-off step details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignOff'
        '404':
          description: Sign-off step not found
  /artifacts/{artifactId}/sign-offs/{signOffStepId}/delegate:
    post:
      operationId: delegateSignOff
      summary: Dataiku Delegate a sign-off
      description: Delegate a sign-off step to another user.
      tags:
        - Artifact Sign-Offs
      parameters:
        - $ref: '#/components/parameters/artifactId'
        - $ref: '#/components/parameters/signOffStepId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DelegateSignOffRequest'
      responses:
        '200':
          description: Sign-off delegated
        '404':
          description: Sign-off step not found
  /artifacts/{artifactId}/sign-offs/{signOffStepId}/reviews:
    post:
      operationId: addSignOffReview
      summary: Dataiku Add a sign-off review
      description: Add a review (approve or reject) to a sign-off step.
      tags:
        - Artifact Sign-Offs
      parameters:
        - $ref: '#/components/parameters/artifactId'
        - $ref: '#/components/parameters/signOffStepId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignOffReviewRequest'
      responses:
        '200':
          description: Review added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignOffReview'
        '400':
          description: Invalid review
        '404':
          description: Sign-off step not found
  /roles:
    get:
      operationId: listRoles
      summary: Dataiku List roles
      description: List all governance roles.
      tags:
        - Roles
      responses:
        '200':
          description: List of roles
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Role'
        '401':
          description: Unauthorized
  /users:
    get:
      operationId: listGovernUsers
      summary: Dataiku List Govern users
      description: List all users in the Govern instance.
      tags:
        - Users
      responses:
        '200':
          description: List of users
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GovernUser'
        '401':
          description: Unauthorized
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key passed as Bearer token
  parameters:
    blueprintId:
      name: blueprintId
      in: path
      required: true
      description: Unique blueprint identifier
      schema:
        type: string
    versionId:
      name: versionId
      in: path
      required: true
      description: Blueprint version identifier
      schema:
        type: string
    artifactId:
      name: artifactId
      in: path
      required: true
      description: Governed artifact identifier
      schema:
        type: string
    signOffStepId:
      name: signOffStepId
      in: path
      required: true
      description: Sign-off step identifier
      schema:
        type: string
  schemas:
    BlueprintSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique blueprint identifier
        name:
          type: string
          description: Blueprint display name
        description:
          type: string
          description: Blueprint description
        artifactCount:
          type: integer
          description: Number of artifacts using this blueprint
        icon:
          type: string
          description: Icon identifier
    CreateBlueprintRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Blueprint display name
        description:
          type: string
          description: Blueprint description
        icon:
          type: string
          description: Icon identifier
    Blueprint:
      type: object
      properties:
        id:
          type: string
          description: Unique blueprint identifier
        name:
          type: string
          description: Blueprint display name
        description:
          type: string
          description: Blueprint description
        icon:
          type: string
          description: Icon identifier
        artifactCount:
          type: integer
          description: Number of artifacts
        fieldSettings:
          type: array
          items:
            $ref: '#/components/schemas/FieldSetting'
          description: Custom field definitions for this blueprint
        signOffConfiguration:
          $ref: '#/components/schemas/SignOffConfiguration'
        workflowConfiguration:
          $ref: '#/components/schemas/WorkflowConfiguration'
    BlueprintVersionSummary:
      type: object
      properties:
        id:
          type: string
          description: Version identifier
        versionNumber:
          type: integer
          description: Version number
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - ARCHIVED
          description: Version status
        createdOn:
          type: integer
          format: int64
          description: Creation timestamp
    CreateBlueprintVersionRequest:
      type: object
      properties:
        originVersionId:
          type: string
          description: Origin version to copy from
    BlueprintVersion:
      type: object
      properties:
        id:
          type: string
          description: Version identifier
        blueprintId:
          type: string
          description: Parent blueprint ID
        versionNumber:
          type: integer
          description: Version number
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - ARCHIVED
          description: Version status
        fieldSettings:
          type: array
          items:
            $ref: '#/components/schemas/FieldSetting'
          description: Custom field definitions
        signOffConfiguration:
          $ref: '#/components/schemas/SignOffConfiguration'
        createdOn:
          type: integer
          format: int64
          description: Creation timestamp
    FieldSetting:
      type: object
      properties:
        id:
          type: string
          description: Field identifier
        name:
          type: string
          description: Field display name
        description:
          type: string
          description: Field description
        type:
          type: string
          enum:
            - TEXT
            - LONG_TEXT
            - NUMBER
            - BOOLEAN
            - DATE
            - SELECT
            - MULTISELECT
            - USER
            - USERS
          description: Field type
        required:
          type: boolean
          description: Whether the field is required
        options:
          type: array
          items:
            type: string
          description: Available options for SELECT and MULTISELECT types
    SignOffConfiguration:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/SignOffStep'
          description: Ordered list of sign-off steps
    SignOffStep:
      type: object
      properties:
        id:
          type: string
          description: Step identifier
        name:
          type: string
          description: Step display name
        description:
          type: string
          description: Step description
        requiredReviewers:
          type: integer
          description: Number of required reviewers
        assigneeType:
          type: string
          enum:
            - ROLE
            - USER
            - GROUP
          description: How reviewers are assigned
    WorkflowConfiguration:
      type: object
      properties:
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStatus'
          description: Available statuses
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowTransition'
          description: Allowed status transitions
    WorkflowStatus:
      type: object
      properties:
        id:
          type: string
          description: Status identifier
        name:
          type: string
          description: Status display name
        color:
          type: string
          description: Status color code
    WorkflowTransition:
      type: object
      properties:
        fromStatus:
          type: string
          description: Source status ID
        toStatus:
          type: string
          description: Target status ID
    ArtifactSummary:
      type: object
      properties:
        id:
          type: string
          description: Artifact identifier
        name:
          type: string
          description: Artifact display name
        blueprintId:
          type: string
          description: Blueprint this artifact belongs to
        status:
          type: string
          description: Current workflow status
        createdOn:
          type: integer
          format: int64
          description: Creation timestamp
        createdBy:
          type: string
          description: User who created the artifact
    CreateArtifactRequest:
      type: object
      required:
        - name
        - blueprintId
      properties:
        name:
          type: string
          description: Artifact display name
        blueprintId:
          type: string
          description: Blueprint to associate with
        blueprintVersionId:
          type: string
          description: Specific blueprint version to use
        customFields:
          type: object
          additionalProperties: true
          description: Initial custom field values
    Artifact:
      type: object
      properties:
        id:
          type: string
          description: Artifact identifier
        name:
          type: string
          description: Artifact display name
        blueprintId:
          type: string
          description: Blueprint ID
        blueprintVersionId:
          type: string
          description: Blueprint version ID
        status:
          type: string
          description: Current workflow status
        customFields:
          type: object
          additionalProperties: true
          description: Custom field values
        createdOn:
          type: integer
          format: int64
          description: Creation timestamp
        createdBy:
          type: string
          description: User who created the artifact
        lastModifiedOn:
          type: integer
          format: int64
          description: Last modification timestamp
        lastModifiedBy:
          type: string
          description: User who last modified the artifact
    SignOff:
      type: object
      properties:
        stepId:
          type: string
          description: Sign-off step identifier
        stepName:
          type: string
          description: Step display name
        status:
          type: string
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - APPROVED
            - REJECTED
            - DELEGATED
          description: Current sign-off status
        reviews:
          type: array
          items:
            $ref: '#/components/schemas/SignOffReview'
          description: Reviews submitted for this step
        delegatedTo:
          type: string
          description: User the step was delegated to
    SignOffReview:
      type: object
      properties:
        reviewer:
          type: string
          description: Login of the reviewer
        outcome:
          type: string
          enum:
            - APPROVED
            - REJECTED
          description: Review outcome
        comment:
          type: string
          description: Review comment
        reviewedOn:
          type: integer
          format: int64
          description: Review timestamp
    DelegateSignOffRequest:
      type: object
      required:
        - delegateTo
      properties:
        delegateTo:
          type: string
          description: Login of the user to delegate to
        comment:
          type: string
          description: Delegation comment
    SignOffReviewRequest:
      type: object
      required:
        - outcome
      properties:
        outcome:
          type: string
          enum:
            - APPROVED
            - REJECTED
          description: Review outcome
        comment:
          type: string
          description: Review comment
    Role:
      type: object
      properties:
        id:
          type: string
          description: Role identifier
        name:
          type: string
          description: Role display name
        description:
          type: string
          description: Role description
        permissions:
          type: array
          items:
            type: string
          description: Permissions granted by this role
    GovernUser:
      type: object
      properties:
        login:
          type: string
          description: User login
        displayName:
          type: string
          description: Display name
        email:
          type: string
          format: email
          description: Email address
        roles:
          type: array
          items:
            type: string
          description: Assigned role IDs