AWS Glue Glue Catalog API

The Glue Catalog API from AWS Glue — 5 operation(s) for glue catalog.

Operations 5

POST /#CreateCatalog Create Catalog #
POST /#DeleteCatalog Delete Catalog #
POST /#GetCatalog Get Catalog #
POST /#GetCatalogs Get Catalogs #
POST /#UpdateCatalog Update Catalog #

Specifications

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/aws-glue:aws-glue-catalog-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

aws-glue-catalog-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AWS Glue Catalog API
  version: '2017-03-31'
  description: Generated from AWS's published Smithy model for AWS Glue. 6 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://glue.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
tags:
- name: Catalog
paths:
  /#CreateCatalog:
    post:
      operationId: CreateCatalog
      summary: Create Catalog
      description: Creates a new catalog in the Glue Data Catalog.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/CreateCatalogResponse'
        '400':
          description: AccessDeniedException; AlreadyExistsException; ConcurrentModificationException; EntityNotFoundException; FederatedResourceAlreadyExistsException; FederationSourceException; GlueEncryptionException; InvalidInputException; OperationTimeoutException; ResourceNumberLimitExceededException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.CreateCatalog
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/CreateCatalogRequest'
      tags:
      - Catalog
  /#DeleteCatalog:
    post:
      operationId: DeleteCatalog
      summary: Delete Catalog
      description: Removes the specified catalog from the Glue Data Catalog. After completing this operation, you no longer have access to the databases, tables (and all table versions and partitions that might belong to the tables) and the user-defined functions in the deleted catalog. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service. To ensure the immediate deletion of all related resources before calling the DeleteCatalog operation, use DeleteTableVersion (or BatchDeleteTableVersion), DeletePartition (or BatchDeletePartition), DeleteTable (or BatchDeleteTable), DeleteUserDefinedFunction and DeleteDatabase to delete any resources that belong to the catalog.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DeleteCatalogResponse'
        '400':
          description: AccessDeniedException; ConcurrentModificationException; EntityNotFoundException; FederationSourceException; GlueEncryptionException; InvalidInputException; OperationTimeoutException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.DeleteCatalog
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeleteCatalogRequest'
      tags:
      - Catalog
  /#GetCatalog:
    post:
      operationId: GetCatalog
      summary: Get Catalog
      description: The name of the Catalog to retrieve. This should be all lowercase.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetCatalogResponse'
        '400':
          description: AccessDeniedException; EntityNotFoundException; FederationSourceException; FederationSourceRetryableException; GlueEncryptionException; InvalidInputException; OperationTimeoutException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.GetCatalog
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetCatalogRequest'
      tags:
      - Catalog
  /#GetCatalogs:
    post:
      operationId: GetCatalogs
      summary: Get Catalogs
      description: Retrieves all catalogs defined in a catalog in the Glue Data Catalog. For a Redshift-federated catalog use case, this operation returns the list of catalogs mapped to Redshift databases in the Redshift namespace catalog.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetCatalogsResponse'
        '400':
          description: AccessDeniedException; EntityNotFoundException; FederationSourceException; FederationSourceRetryableException; GlueEncryptionException; InvalidInputException; OperationTimeoutException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.GetCatalogs
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetCatalogsRequest'
      tags:
      - Catalog
  /#UpdateCatalog:
    post:
      operationId: UpdateCatalog
      summary: Update Catalog
      description: Updates an existing catalog's properties in the Glue Data Catalog.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/UpdateCatalogResponse'
        '400':
          description: AccessDeniedException; ConcurrentModificationException; EntityNotFoundException; FederationSourceException; GlueEncryptionException; InvalidInputException; OperationTimeoutException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.UpdateCatalog
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/UpdateCatalogRequest'
      tags:
      - Catalog
components:
  schemas:
    PrincipalPermissions:
      type: object
      properties:
        Principal:
          $ref: '#/components/schemas/DataLakePrincipal'
        Permissions:
          type: array
          items:
            type: string
            enum:
            - ALL
            - SELECT
            - ALTER
            - DROP
            - DELETE
            - INSERT
            - CREATE_DATABASE
            - CREATE_TABLE
            - DATA_LOCATION_ACCESS
          description: The permissions that are granted to the principal.
    Catalog:
      type: object
      properties:
        CatalogId:
          type: string
          description: The ID of the catalog. To grant access to the default catalog, this field should not be provided.
        Name:
          type: string
          description: The name of the catalog. Cannot be the same as the account ID.
        ResourceArn:
          type: string
          description: The Amazon Resource Name (ARN) assigned to the catalog resource.
        Description:
          type: string
          description: Description string, not more than 2048 bytes long, matching the URI address multi-line string pattern. A description of the catalog.
        Parameters:
          type: object
          additionalProperties:
            type: string
          description: A map array of key-value pairs that define parameters and properties of the catalog.
        CreateTime:
          type: string
          format: date-time
          description: The time at which the catalog was created.
        UpdateTime:
          type: string
          format: date-time
          description: The time at which the catalog was last updated.
        TargetRedshiftCatalog:
          $ref: '#/components/schemas/TargetRedshiftCatalog'
        FederatedCatalog:
          $ref: '#/components/schemas/FederatedCatalog'
        CatalogProperties:
          $ref: '#/components/schemas/CatalogPropertiesOutput'
        CreateTableDefaultPermissions:
          type: array
          items:
            $ref: '#/components/schemas/PrincipalPermissions'
          description: An array of PrincipalPermissions objects. Creates a set of default permissions on the table(s) for principals. Used by Amazon Web Services Lake Formation. Not used in the normal course of Glue operations.
        CreateDatabaseDefaultPermissions:
          type: array
          items:
            $ref: '#/components/schemas/PrincipalPermissions'
          description: An array of PrincipalPermissions objects. Creates a set of default permissions on the database(s) for principals. Used by Amazon Web Services Lake Formation. Not used in the normal course of Glue operations.
        AllowFullTableExternalDataAccess:
          type: string
          enum:
          - 'True'
          - 'False'
          description: Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.
      required:
      - Name
    IcebergOptimizationPropertiesOutput:
      type: object
      properties:
        RoleArn:
          type: string
          description: The Amazon Resource Name (ARN) of the IAM role that is used to perform Iceberg table optimization operations.
        Compaction:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg table compaction operations, which optimize the layout of data files to improve query performance.
        Retention:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg table retention operations, which manage the lifecycle of table snapshots to control storage costs.
        OrphanFileDeletion:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg orphan file deletion operations, which identify and remove files that are no longer referenced by the table metadata.
        LastUpdatedTime:
          type: string
          format: date-time
          description: The timestamp when the Iceberg optimization properties were last updated.
    CatalogProperties:
      type: object
      properties:
        DataLakeAccessProperties:
          $ref: '#/components/schemas/DataLakeAccessProperties'
        IcebergOptimizationProperties:
          $ref: '#/components/schemas/IcebergOptimizationProperties'
        CustomProperties:
          type: object
          additionalProperties:
            type: string
          description: Additional key-value properties for the catalog, such as column statistics optimizations.
    GetCatalogRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The ID of the parent catalog in which the catalog resides. If none is provided, the Amazon Web Services Account Number is used by default.
      required:
      - CatalogId
    GetCatalogsResponse:
      type: object
      properties:
        CatalogList:
          type: array
          items:
            $ref: '#/components/schemas/Catalog'
          description: An array of Catalog objects. A list of Catalog objects from the specified parent catalog.
        NextToken:
          type: string
          description: A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.
      required:
      - CatalogList
    UpdateCatalogResponse:
      type: object
      properties: {}
    DataLakePrincipal:
      type: object
      properties:
        DataLakePrincipalIdentifier:
          type: string
          description: An identifier for the Lake Formation principal.
    DataLakeAccessPropertiesOutput:
      type: object
      properties:
        DataLakeAccess:
          type: boolean
          description: Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog.
        DataTransferRole:
          type: string
          description: A role that will be assumed by Glue for transferring data into/out of the staging bucket during a query.
        KmsKey:
          type: string
          description: An encryption key that will be used for the staging bucket that will be created along with the catalog.
        ManagedWorkgroupName:
          type: string
          description: The managed Redshift Serverless compute name that is created for your catalog resource.
        ManagedWorkgroupStatus:
          type: string
          description: The managed Redshift Serverless compute status.
        RedshiftDatabaseName:
          type: string
          description: The default Redshift database resource name in the managed compute.
        StatusMessage:
          type: string
          description: A message that gives more detailed information about the managed workgroup status.
        CatalogType:
          type: string
          description: Specifies a federated catalog type for the native catalog resource. The currently supported type is aws:redshift.
    GetCatalogResponse:
      type: object
      properties:
        Catalog:
          $ref: '#/components/schemas/Catalog'
    TargetRedshiftCatalog:
      type: object
      properties:
        CatalogArn:
          type: string
          description: The Amazon Resource Name (ARN) of the catalog resource.
      required:
      - CatalogArn
    GetCatalogsRequest:
      type: object
      properties:
        ParentCatalogId:
          type: string
          description: The ID of the parent catalog in which the catalog resides. If none is provided, the Amazon Web Services Account Number is used by default.
        NextToken:
          type: string
          description: A continuation token, if this is a continuation call.
        MaxResults:
          type: integer
          description: The maximum number of catalogs to return in one response.
        Recursive:
          type: boolean
          description: Whether to list all catalogs across the catalog hierarchy, starting from the ParentCatalogId. Defaults to false . When true, all catalog objects in the ParentCatalogID hierarchy are enumerated in the response.
        IncludeRoot:
          type: boolean
          description: Whether to list the default catalog in the account and region in the response. Defaults to false. When true and ParentCatalogId = NULL | Amazon Web Services Account ID, all catalogs and the default catalog are enumerated in the response. When the ParentCatalogId is not equal to null, and this attribute is passed as false or true, an InvalidInputException is thrown.
        HasDatabases:
          type: boolean
          description: When true, the response only includes catalogs that can contain databases. Some catalogs are organizational containers that hold only other catalogs, not databases. When this parameter is set to true, those container-only catalogs are excluded, and only catalogs capable of containing databases are returned. Defaults to false.
    CreateCatalogRequest:
      type: object
      properties:
        Name:
          type: string
          description: The name of the catalog to create.
        CatalogInput:
          $ref: '#/components/schemas/CatalogInput'
        Tags:
          type: object
          additionalProperties:
            type: string
          description: A map array of key-value pairs, not more than 50 pairs. Each key is a UTF-8 string, not less than 1 or more than 128 bytes long. Each value is a UTF-8 string, not more than 256 bytes long. The tags you assign to the catalog.
      required:
      - Name
      - CatalogInput
    CreateCatalogResponse:
      type: object
      properties: {}
    DeleteCatalogResponse:
      type: object
      properties: {}
    IcebergOptimizationProperties:
      type: object
      properties:
        RoleArn:
          type: string
          description: The Amazon Resource Name (ARN) of the IAM role that will be assumed to perform Iceberg table optimization operations.
        Compaction:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg table compaction operations, which optimize the layout of data files to improve query performance.
        Retention:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg table retention operations, which manage the lifecycle of table snapshots to control storage costs.
        OrphanFileDeletion:
          type: object
          additionalProperties:
            type: string
          description: A map of key-value pairs that specify configuration parameters for Iceberg orphan file deletion operations, which identify and remove files that are no longer referenced by the table metadata.
    FederatedCatalog:
      type: object
      properties:
        Identifier:
          type: string
          description: A unique identifier for the federated catalog.
        ConnectionName:
          type: string
          description: The name of the connection to an external data source, for example a Redshift-federated catalog.
        ConnectionType:
          type: string
          description: The type of connection used to access the federated catalog, specifying the protocol or method for connection to the external data source.
    CatalogInput:
      type: object
      properties:
        Description:
          type: string
          description: Description string, not more than 2048 bytes long, matching the URI address multi-line string pattern. A description of the catalog.
        FederatedCatalog:
          $ref: '#/components/schemas/FederatedCatalog'
        Parameters:
          type: object
          additionalProperties:
            type: string
          description: A map array of key-value pairs that define the parameters and properties of the catalog.
        TargetRedshiftCatalog:
          $ref: '#/components/schemas/TargetRedshiftCatalog'
        CatalogProperties:
          $ref: '#/components/schemas/CatalogProperties'
        CreateTableDefaultPermissions:
          type: array
          items:
            $ref: '#/components/schemas/PrincipalPermissions'
          description: An array of PrincipalPermissions objects. Creates a set of default permissions on the table(s) for principals. Used by Amazon Web Services Lake Formation. Typically should be explicitly set as an empty list.
        CreateDatabaseDefaultPermissions:
          type: array
          items:
            $ref: '#/components/schemas/PrincipalPermissions'
          description: An array of PrincipalPermissions objects. Creates a set of default permissions on the database(s) for principals. Used by Amazon Web Services Lake Formation. Typically should be explicitly set as an empty list.
        AllowFullTableExternalDataAccess:
          type: string
          enum:
          - 'True'
          - 'False'
          description: Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation.
        OverwriteChildResourcePermissionsWithDefault:
          type: string
          enum:
          - Accept
          - Deny
          description: Overwrites existing Amazon Web Services Lake Formation permissions with CatalogInput$CreateTableDefaultPermissions and CatalogInput$CreateDatabaseDefaultPermissions for all child resources.
    DataLakeAccessProperties:
      type: object
      properties:
        DataLakeAccess:
          type: boolean
          description: Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog from any non-Redshift engine, such as Amazon Athena, Amazon EMR, or Glue ETL.
        DataTransferRole:
          type: string
          description: A role that will be assumed by Glue for transferring data into/out of the staging bucket during a query.
        KmsKey:
          type: string
          description: An encryption key that will be used for the staging bucket that will be created along with the catalog.
        CatalogType:
          type: string
          description: Specifies a federated catalog type for the native catalog resource. The currently supported type is aws:redshift.
    UpdateCatalogRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The ID of the catalog.
        CatalogInput:
          $ref: '#/components/schemas/CatalogInput'
      required:
      - CatalogId
      - CatalogInput
    CatalogPropertiesOutput:
      type: object
      properties:
        DataLakeAccessProperties:
          $ref: '#/components/schemas/DataLakeAccessPropertiesOutput'
        IcebergOptimizationProperties:
          $ref: '#/components/schemas/IcebergOptimizationPropertiesOutput'
        CustomProperties:
          type: object
          additionalProperties:
            type: string
          description: Additional key-value properties for the catalog, such as column statistics optimizations.
    AccessDeniedException:
      type: object
      properties:
        Message:
          type: string
          description: A message describing the problem.
    InternalServiceException:
      type: object
      properties:
        Message:
          type: string
          description: A message describing the problem.
    DeleteCatalogRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The ID of the catalog.
      required:
      - CatalogId
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: glue
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/glue/service/2017-03-31/glue-2017-03-31.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)