data.world catalog resources API

The catalog resources API from data.world — 7 operation(s) for catalog resources.

OpenAPI Specification

data-world-catalog-resources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    name: Contact Us
    url: https://data.world/company/contact-us
  termsOfService: https://data.world/terms-policies
  title: data.world Public catalog relationships catalog resources API
  version: '0'
  description: Manage relationships between catalog resources
servers:
- url: /v0
security:
- bearerAuth: []
tags:
- name: catalog resources
paths:
  /metadata/resources/bulk/property/{owner}:
    patch:
      description: Delete properties from a maximum of 25 resources of any type in the organization at once. To delete properties from a single resource, use "Delete properties from a resource".
      operationId: bulkDeleteProperty
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeletePropertyRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceBulkResponse'
          description: default response
      summary: 'Bulk: delete properties from resources'
      tags:
      - catalog resources
  /metadata/resources/bulk/{owner}:
    patch:
      description: Update a maximum of 25 resources of any type in the organization at once. To create one resource at a time, use "Create a new resource". Also, see the aforementioned endpoint for further update behaviors.
      operationId: bulkUpdate
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      - description: Set this option when updating properties that supports having a list of values. Given a list of values in the request body, should this request add to the existing list, remove the specified values, or replace the existing list with the specified values?
        in: query
        name: updateListBy
        required: true
        schema:
          type: string
          default: ADD
          enum:
          - ADD
          - REMOVE
          - REPLACE
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogResourceBulkRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceBulkResponse'
          description: default response
      summary: 'Bulk: update multiple resources at once'
      tags:
      - catalog resources
    post:
      description: Create a maximum of 25 resources of any type in the organization at once. The resources are created with the provided properties. To create one resource at a time, use "Create a new resource".
      operationId: bulkCreate
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogResourceBulkCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceBulkResponse'
          description: default response
      summary: 'Bulk: create multiple resources at once'
      tags:
      - catalog resources
  /metadata/resources/property/{owner}:
    delete:
      description: 'Delete properties from a resource of any type in the organization. To update properties, use "Update a resource". To delete properties from multiple resources at once, use "Bulk: delete properties from resources".'
      operationId: deleteProperty
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      - description: Internationalized Resource Identifier (IRI) of the resource. You can find the IRI in the Technical Reference section under the Settings tab on the resource’s catalog page.
        in: query
        name: iri
        required: true
        schema:
          type: string
      - description: Property is identified by its IRI
        in: query
        name: property
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceResponse'
          description: default response
      summary: Delete properties from a resource
      tags:
      - catalog resources
  /metadata/resources/search:
    post:
      description: Search for resources in the organization. See request body for filtering options. To paginate through results, use "from" and "size" query parameters. To return more details about the resources, see "hydration" query parameter.
      operationId: searchResources
      parameters:
      - description: Size of page to fetch
        in: query
        name: size
        schema:
          type: integer
          format: int32
          default: 10
          maximum: 1000
      - description: Result number to start fetch from (not the page number to start from)
        in: query
        name: from
        schema:
          type: integer
          format: int32
          default: 0
      - description: Sort results by fields
        in: query
        name: sort
        schema:
          type: array
          items:
            type: string
      - description: Return additional information about the resource. For example, if the resource is in a collection, the collection IRI will be returned by default. If hydration is enabled, the collection's title and description will also be returned.
        in: query
        name: hydration
        schema:
          type: array
          items:
            type: string
            enum:
            - agent
            - catalog
            - catalogConcept
            - properties
            - resourceHierarchy
          uniqueItems: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgScopedSearchRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGenericResultsOrgScopedSearchedResourceDto'
          description: default response
      summary: Search for resources
      tags:
      - catalog resources
  /metadata/resources/{owner}:
    delete:
      description: Delete a resource of any type in the organization.
      operationId: delete
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      - description: Internationalized Resource Identifier (IRI) of the resource. You can find the IRI in the Technical Reference section under the Settings tab on the resource’s catalog page.
        in: query
        name: iri
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
          description: default response
      summary: Delete a resource
      tags:
      - catalog resources
    get:
      description: Return details about a resource of any type in the organization. See "hydrations" query parameter for options to return even more details.
      operationId: getResourceByIRI
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      - description: Internationalized Resource Identifier (IRI) of the resource. You can find the IRI in the Technical Reference section under the Settings tab on the resource’s catalog page.
        in: query
        name: iri
        required: true
        schema:
          type: string
      - description: Return additional information about the resource. For example, if the resource is in a collection, the collection IRI will be returned by default. If hydration is enabled, the collection's title and description will also be returned.
        in: query
        name: hydrations
        schema:
          type: boolean
          default: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceGetResponse'
          description: default response
      summary: Get a resource
      tags:
      - catalog resources
    patch:
      description: 'Update a resource of any type in the organization. Properties that are not defined in the request are not updated. When updating properties that have a single value, the old value is replaced by the new value in the request. When updating properties that have a list of values, see "updateListBy" query parameter for more granular controls. To delete properties, use "Delete properties from a resource". To update multiple resources at once, use "Bulk: update multiple resources at once".'
      operationId: update
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      - description: Internationalized Resource Identifier (IRI) of the resource. You can find the IRI in the Technical Reference section under the Settings tab on the resource’s catalog page.
        in: query
        name: iri
        required: true
        schema:
          type: string
      - description: Set this option when updating properties that supports having a list of values. Given a list of values in the request body, should this request add to the existing list, remove the specified values, or replace the existing list with the specified values?
        in: query
        name: updateListBy
        required: true
        schema:
          type: string
          default: ADD
          enum:
          - ADD
          - REMOVE
          - REPLACE
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogResourceRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceResponse'
          description: default response
      summary: Update a resource
      tags:
      - catalog resources
    post:
      description: 'Create a new resource of any type in the organization. The resource is created with the provided properties. To create multiple resources at once, use "Bulk: create multiple resources at once".'
      operationId: create
      parameters:
      - description: 'User name and unique identifier of the user or organization a resource belongs to.

          For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.

          '
        in: path
        name: owner
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogResourceCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogResourceResponse'
          description: default response
      summary: Create a new resource
      tags:
      - catalog resources
  /metadata/{owner}/resources/clear:
    post:
      description: This is an advanced operation and should be used with caution. The data.world catalog graph relies on a layered model that keeps the content from collected source systems separate from edits made by end users on the platform. This allows the collected source system data to update regularly withoutoverwriting enrichment and curation efforts that are authored on data.world. Sometimes, however, it is desirable to overwrite the end user edits or let the source system metadata replace user edits. This endpoint can be used to clear all end user edits for a given metadata resource or list of resources, restoring the source system values.
      operationId: clearMetadataResource
      parameters:
      - in: path
        name: owner
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearResourcesRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
          description: default response
      summary: Clear all user edits from a resource
      tags:
      - catalog resources
  /metadata/{owner}/resources/properties/clear:
    put:
      description: This is an advanced operation and should be used with caution. The data.world catalog graph relies on a layered model that keeps the content from collected source systems separate from edits made by end users on the platform. This allows the collected source system data to update regularly without overwriting enrichment and curation efforts that are authored on data.world. Sometimes, however, it is desirable to overwrite the end user edits or let the source system metadata replace user edits. This endpoint can be used to clear a specific user-edited metadata field, restoring the source system values.
      operationId: clearMetadataResourceProperties
      parameters:
      - in: path
        name: owner
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearResourcePropertiesRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
          description: default response
      summary: Clear all user edits on specified properties from a resource
      tags:
      - catalog resources
components:
  schemas:
    ImageIcon:
      allOf:
      - $ref: '#/components/schemas/Icon'
      - type: object
        properties:
          image:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          largeImage:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          selectedImage:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          type:
            type: string
            const: image
    PaginatedGenericResultsOrgScopedSearchedResourceDto:
      type: object
      properties:
        consistent:
          type: boolean
        count:
          type: integer
          format: int32
          minimum: 0
        hydrations:
          $ref: '#/components/schemas/PubSearchHydrations'
        next:
          type: string
        records:
          type: array
          items:
            $ref: '#/components/schemas/OrgScopedSearchedResourceDto'
    PubSearchHydrations:
      type: object
      properties:
        agents:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AgentHydrationDto'
        catalogConcepts:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CatalogConceptHydrationDto'
        collections:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CollectionHydrationDto'
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PropertyHydrationDto'
        relationships:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RelationshipHydrationDto'
        resourceHierarchy:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: array
              items:
                $ref: '#/components/schemas/ResourceHierarchyDto'
    ResourceDetails:
      type: object
      properties:
        typeDetails:
          $ref: '#/components/schemas/TypeDetails'
    CatalogResourceBulkCreateRequest:
      type: object
      properties:
        resources:
          type: array
          description: A list of resources to create
          items:
            $ref: '#/components/schemas/CatalogResourceCreateRequest'
          maxItems: 25
          minItems: 1
    CatalogResourceRequest:
      type: object
      properties:
        collections:
          type: array
          description: Collections, identified by IRI, that this resource is added into. Required when creating a resource. Available collections can be discovered using "Search for resources" endpoint.
          items:
            type: string
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/StringOrArray'
          description: Create/update any property that is associated with a metadata presentation. Key is the IRI of the property. Value is the intended value of the property.
          example: "\"{\n  \"https://democorpprofile.linked.data.world/d/ddw-catalogs/domain_expert\": \"Sample Name\",\n  \"https://democorpprofile.linked.data.world/d/ddw-catalogs/geographies_available\": [\n    \"https://democorpprofile.linked.data.world/d/ddw-catalogs/geography_europe\",\n    \"https://democorpprofile.linked.data.world/d/ddw-catalogs/geography_asia\" ]\n}\"\n"
        title:
          type: string
          description: Title of the resource. Required when creating a resource.
          maxLength: 120
          minLength: 1
    CatalogResourceBulkRequest:
      type: object
      properties:
        resources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CatalogResourceRequest'
          description: A map of resource IRI to properties to update
    CatalogResourceGetResponse:
      type: object
      properties:
        hydrations:
          $ref: '#/components/schemas/PubSearchHydrations'
        resource:
          $ref: '#/components/schemas/CatalogResourceResponse'
    EmojiIcon:
      allOf:
      - $ref: '#/components/schemas/Icon'
      - type: object
        properties:
          type:
            type: string
            const: emoji
          value:
            type: string
    AgentHydrationDto:
      type: object
      properties:
        avatarUrl:
          type: string
        deactivated:
          type: boolean
        displayName:
          type: string
        id:
          type: string
    BasicResource:
      type: object
      properties:
        iri:
          type: string
          format: uri
          description: IRI of the resource
        url:
          type: string
          format: uri
          description: A URL that redirects to the resource's page on data.world
      required:
      - iri
      - url
    Image:
      type: object
      discriminator:
        mapping:
          hosted: '#/components/schemas/HostedImage'
          provided: '#/components/schemas/ProvidedImage'
        propertyName: type
      properties:
        type:
          type: string
          enum:
          - hosted
          - provided
    Range:
      type: object
      properties:
        endDate:
          type: string
          description: Inclusive. Format is YYYY-MM-DD in UTC. If inputted by itself (without startDate), it will match all dates before this date and this date.
        startDate:
          type: string
          description: Inclusive. Format is YYYY-MM-DD in UTC. If inputted by itself (without endDate),it will match all dates after this date and this date.
    RelationshipHydrationDto:
      type: object
      properties:
        labels:
          type: array
          description: Label of the relationship presentation associated with the relationship
          items:
            type: string
    PropertyHydrationDto:
      type: object
      properties:
        label:
          type: array
          description: Label of the metadata presentation associated with the property
          items:
            type: string
    ClearResourcesRequest:
      type: object
      properties:
        resourceType:
          type: string
          description: Type iri of specified metadata resources
          minLength: 1
        resources:
          type: array
          description: List of metadata resource iris
          items:
            type: string
          minItems: 1
      required:
      - resourceType
      - resources
    ResourceHierarchyDto:
      type: object
      properties:
        assetStatus:
          $ref: '#/components/schemas/AssetStatus'
          description: 'Resource status: Pending, Approved etc.'
        hierarchy:
          type: array
          description: Parent types of this resource's type. Returns the most specific type followed by its parent. The first item is the same as type. The last item is the root type.
          items:
            $ref: '#/components/schemas/EntryType'
        icon:
          $ref: '#/components/schemas/Icon'
          description: Resource icon details.
          oneOf:
          - $ref: '#/components/schemas/EmojiIcon'
          - $ref: '#/components/schemas/ImageIcon'
          - $ref: '#/components/schemas/SvgIcon'
        iri:
          type: string
          description: Resource IRI.
        owner:
          type: string
          description: The ID of the organization that this resource belongs to
        title:
          type: string
          description: Resource title
        type:
          type: string
          description: Resource simple type name, e.g. catalogDatabase, catalogEntry etc.
        typeLabel:
          type: string
          description: Resource type label.
    AssetStatus:
      type: object
      properties:
        assetStatusLabel:
          type: string
        dispositionLabel:
          type: string
    ClearResourcePropertiesRequest:
      type: object
      properties:
        properties:
          type: array
          description: Properties of the specified metadata resource
          items:
            type: string
          minItems: 1
        resource:
          type: string
          description: A metadata resource
          minLength: 1
        resourceType:
          type: string
          description: Type iri of specified metadata resource
          minLength: 1
      required:
      - properties
      - resource
      - resourceType
    CatalogResourceBulkResponse:
      type: object
      properties:
        resources:
          type: array
          description: Resources that were updated
          items:
            $ref: '#/components/schemas/BasicResource'
    SvgIcon:
      allOf:
      - $ref: '#/components/schemas/Icon'
      - type: object
        properties:
          image:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          largeImage:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          selectedImage:
            $ref: '#/components/schemas/Image'
            oneOf:
            - $ref: '#/components/schemas/HostedImage'
            - $ref: '#/components/schemas/ProvidedImage'
          type:
            type: string
            const: svg-image
    Icon:
      type: object
      discriminator:
        mapping:
          emoji: '#/components/schemas/EmojiIcon'
          image: '#/components/schemas/ImageIcon'
          svg-image: '#/components/schemas/SvgIcon'
        propertyName: type
      properties:
        type:
          type: string
          enum:
          - emoji
          - image
          - svg-image
    StringOrArray:
      oneOf:
      - type: string
      - type: array
        items:
          type: string
    HostedImage:
      allOf:
      - $ref: '#/components/schemas/Image'
      - type: object
        properties:
          type:
            type: string
            const: hosted
          url:
            type: string
    BulkDeletePropertyRequest:
      type: object
      properties:
        resources:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: A map of resource IRI to property IRIs to delete
    EntryType:
      type: object
      properties:
        icon:
          $ref: '#/components/schemas/Icon'
          oneOf:
          - $ref: '#/components/schemas/EmojiIcon'
          - $ref: '#/components/schemas/ImageIcon'
          - $ref: '#/components/schemas/SvgIcon'
        instantiable:
          type: boolean
        label:
          type: string
        pluralLabel:
          type: string
        requestable:
          type: boolean
        type:
          type: string
          description: Entry type IRI
    CollectionHydrationDto:
      type: object
      properties:
        description:
          type: string
        id:
          type: string
          description: dct:identifier of the collection
        iri:
          type: string
        owner:
          type: string
        title:
          type: string
    OrgScopedSearchedResourceDto:
      type: object
      properties:
        category:
          type: string
        created:
          type: string
          format: date-time
        creator:
          type: string
        id:
          type: string
        iri:
          type: string
        numLikes:
          type: integer
          format: int32
        owner:
          type: string
        properties:
          type: object
          additionalProperties: {}
        resourceDetails:
          $ref: '#/components/schemas/ResourceDetails'
        resourceLink:
          type: string
          format: uri
        sourceId:
          type: string
        sourceOfRecord:
          type: string
        tableId:
          type: string
        tableIri:
          type: string
        title:
          type: string
        updated:
          type: string
          format: date-time
        updatedBy:
          type: string
      required:
      - category
      - id
      - owner
    OrgScopedSearchRequest:
      type: object
      properties:
        assetStatus:
          type: array
          description: Filter by asset status label.
          items:
            type: string
          uniqueItems: true
        collection:
          type: array
          description: Filter by collection IRI
          items:
            type: string
          uniqueItems: true
        createdRange:
          $ref: '#/components/schemas/Range'
          description: Filter by range of date that the resource was created.
        minAccessLevel:
          type: string
          description: Minimum access level to filter by.
          enum:
          - NONE
          - SAML_GATED
          - DISCOVER
          - MEMBER
          - READ
          - WRITE
          - ADMIN
        owner:
          type: string
          description: 'User name and unique identifier of the user or organization a resource belongs to.

            For example, in the URL: https://acme.data.world/jonloyens/an-intro-to-dataworld-dataset, jonloyens is the unique identifier of the owner.'
        property:
          type: object
          additionalProperties: {}
          description: Filter by custom properties.
        query:
          type: string
        tag:
          type: array
          description: Filter by tags.
          items:
            type: string
          uniqueItems: true
        type:
          type: array
          description: Filter by type of metadata resource. Both IRI and label are accepted.
          items:
            type: string
          uniqueItems: true
        updatedRange:
          $ref: '#/components/schemas/Range'
          description: Filter by range of date that the resource was updated.
      required:
      - owner
    ProvidedImage:
      allOf:
      - $ref: '#/components/schemas/Image'
      - type: object
        properties:
          slug:
            type: string
          type:
            type: string
            const: provided
    CatalogConceptHydrationDto:
      type: object
      properties:
        altLabel:
          type: string
        iri:
          type: string
        owner:
          type: string
        prefLabel:
          type: string
    TypeDetails:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
        subtypeOf:
          type: string
    SuccessMessage:
      type: object
      properties:
        message:
          type: string
          maxLength: 256
          minLength: 0
    CatalogResourceResponse:
      type: object
      properties:
        collections:
          type: array
          description: Collections that the resource is a part of
          items:
            type: string
            format: uri
        iri:
          type: string
          format: uri
          description: IRI of the resource
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/StringOrArray'
          description: All properties of the resource that are associated with a metadata presentation. Key is the IRI of the property. Value is the value of the property.
        sourceId:
          type: string
          description: Database of the resource (applies only to tables and columns)
        tableId:
          type: string
          description: Table id of the resource (applies only to columns)
        tableIri:
          type: string
          description: Table IRI of the resource (applies only to columns)
        title:
          type: string
          description: Title of the resource
        types:
          type: array
          description: Type of the resource
          items:
            type: string
            format: uri
        url:
          type: string

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/data-world/refs/heads/main/openapi/data-world-catalog-resources-api-openapi.yml