---
title: "Update data services for a component."
method: PUT
path: "/datacatalog/api/component/{id}/data-services"
tags: ["Data Release"]
---

# Update data services for a component.

`PUT /datacatalog/api/component/{id}/data-services`

## Request

- Base URL: `https://data.usgs.gov` (the document declares no server; this is the origin it was published from)
- URL: `https://data.usgs.gov/datacatalog/api/component/{id}/data-services`
- Auth: OAuth 2
  - Authorization code: `https://auth.globus.org/v2/oauth2/authorize?scope=openid`
  - Token URL: `https://data.usgs.gov/datacatalog/api/auth/login`

Update data service distributions for a component.

This endpoint performs a replacement update of "Data Service" distribution entries.
All existing "Data Service" distributions will be removed and replaced with the
provided data services. Other distribution types (Globus Guest Collection, Data File, etc.)
are preserved and not affected.

An empty array may be passed to remove all existing data services.

Example data payload:

.. code-block:: json

    [
        {
            "description": "ArcGIS Service Definition",
            "mediaType": "x-gis/x-arcgis-service-def'",
            "conformsTo": "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core",
            "accessURL": "https://services.arcgis.com/v01gqwM5QqNysAAi/arcgis/rest/services/SB_55c2a2dae4b033ef521069b9_BoatRamps_CRB_feature/FeatureServer"
        }
    ]

:param id: The ID of the component
:param data: List of data service distribution objects

## Path parameters

- `id` string, required

## Request body

- DataServiceDistribution[]: List of Data Service distributions for replacement update.
  - `description` string, nullable: Description of the data service
  - `format` string, nullable: Format of the service (if IANA Media Type is not available)
  - `mediaType` string, nullable: IANA Media Type
  - `conformsTo` string, uri, nullable: Standard to which the service conforms
  - `accessURL` string, uri, nullable: URL to access the service

## Response `200`

Successful Response

- HorizonAPICreateComponentResponse
  - `success` boolean, required: A boolean (true/false) indicating if the request was successful.
  - `message` union, required: Descriptive text providing context or further information about the request.
    - 'Created' | 'A component with componentName "{componentName}" already exists in this data release. Please provide a unique componentName.' | 'Deleted' | 'Deletion error' | 'Unable to delete component.' | 'Data release contains components. All components must be deleted before the data release can be deleted.' | 'DOI assigned to Data Release' | 'An entity_id is missing for some or all creators or contributors. Please add any missing entity_id values and try again.' | 'The useForPreview value may only be set to True for .png or .jpg files.' | 'The Globus Search query was not valid. See https://docs.globus.org/api/search/reference/post_query/ for query syntax.' | 'Globus transfer request successfully submitted' | 'A transfer with identical paths has not yet completed. The current transfer may be terminated in the Globus console or contact ask-sdm@usgs.gov for assistance.' | 'Invalid scopes found for transfer. Please re-authenticated and retry transfer.' | 'A transfer path cannot include a directory.' | 'Duplicate filenames not allowed for transfer.' | 'The source endpoint for the Globus transfer was unavailable. Please confirm source Globus collection is available and try again.' | 'A file name cannot contain any of the following characters: < > : " / \ | ? *. On Microsoft Windows, file paths must be formatted like /C/Users/username/filename.csv.' | 'On Microsoft Windows, file paths must be formatted like /C/Users/username/filename.csv.' | 'An unknown error occurred during the transfer. Please try again later or contact ask-sdm@usgs.gov for assistance' | 'This task cannot be found. Please check the task ID.' | 'Internal server error' | 'Invalid schema' | 'File limit reached in collection.' | 'Metadata file not selected. Select a metadata file before performing index files.' | 'Metadata file not found. Please verify metadata file exists in the collection.' | 'Not authenticated' | 'Not Authorized' | 'Item not found' | 'Permissions updated' | 'Some permission changes could not be applied. See the errors in the response for details.' | 'Request processed successfully' | 'Delete not allowed for published releases' | 'Search not avaiable for data releases with more than 10000 components.' | 'Unable to update status at this time. Contact ask-sdm@usgs.gov for assistance.' | 'Updated' | 'User provided groups must grant manager permission to Horizon identity.' | 'User provided groups must not grant admin permission to the Horizon identity.'
    - string
  - `data` union, required
    - DataReleaseComponent: Basic metadata schema for a component. Includes user input fields, system generated fields, and additional descriptive fields that are retrieved from the DataReleaseCSDGM, if available. Fields ------ issued: Date of formal issuance (e.g., publication) of the resource. temporal: The temporal period that the dataset covers. contactPoint: Relevant contact information for the cataloged resource. usgsMetadataContactPoint: The entity responsible for creating and maintaining the metadata for the resource. usgsPurpose: A summary of the intentions with which the resource was developed keyword: A keyword or tag describing the resource. spatial: The geographical area covered by the dataset.
      - `isPartOf` string, required
      - `title` string, required
      - `componentName` string, required
      - `description` string, required
      - `creator` Creator[]
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
        - `position` integer, required
        - `affiliation` string, nullable
        - `affiliationIdentifier` string, nullable
      - `identifier` string, uri, nullable
      - `relation` RelatedIdentifier[], nullable
        - `dataciteRelationType` 'IsCitedBy' | 'Cites' | 'IsSupplementTo' | 'IsSupplementedBy' | 'IsContinuedBy' | 'Continues' | 'IsNewVersionOf' | 'IsPreviousVersionOf' | 'IsPartOf' | 'HasPart' | 'IsReferencedBy' | 'References' | 'IsDocumentedBy' | 'Documents' | 'IsCompiledBy' | 'Compiles' | 'IsVariantFormOf' | 'IsOriginalFormOf' | 'IsIdenticalTo' | 'HasMetadata' | 'IsMetadataFor' | 'Reviews' | 'IsReviewedBy' | 'IsDerivedFrom' | 'IsSourceOf' | 'Describes' | 'IsDescribedBy' | 'HasVersion' | 'IsVersionOf' | 'Requires' | 'IsRequiredBy' | 'Obsoletes' | 'IsObsoletedBy' | 'IsPublishedIn', required: Description of the relationship of the resource being described and the related resource.
        - `relatedIdentifier` string, required
        - `isPrimaryRelatedIdentifier` boolean, required
        - `relatedIdentifierType` 'ARK' | 'arXiv' | 'bibcode' | 'DOI' | 'EAN13' | 'EISSN' | 'Handle' | 'IGSN' | 'ISBN' | 'ISSN' | 'ISTC' | 'LISSN' | 'LSID' | 'PMID' | 'PURL' | 'UPC' | 'URL' | 'URN' | 'w3id', required: The type of related identifier.
        - `description` string, nullable
      - `alternateIdentifier` AlternateIdentifier[], nullable
        - `alternateIdentifier` string, required
        - `alternateIdentifierType` 'ARK' | 'Servcat Number' | 'Genbank Accession Number' | 'IGSN' | 'LSID' | 'PURL' | 'Ref Seq ID' | 'Local Identifier' | 'Metadata Identifier' | 'ScienceBase Alt ID', required: The type of alternate identifier "ARK", "Servcat Number", "Genbank Accession Number", "IGSN", "LSID", "PURL", "Ref Seq ID", "Local Identifier", "Metadata Identifier", "ScienceBase Alt ID"
      - `qualifiedAttribution` Contributor[], nullable
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
        - `position` integer, required
        - `affiliation` string, nullable
        - `affiliationIdentifier` string, nullable
        - `contributorType` 'Contact Person' | 'Data Collector' | 'Data Curator' | 'Data Manager' | 'Distributor' | 'Editor' | 'Hosting Institution' | 'Producer' | 'Project Leader' | 'Project Manager' | 'Project Member' | 'Registration Agency' | 'Registration Authority' | 'Related Person' | 'Researcher' | 'Research Group' | 'Rights Holder' | 'Sponsor' | 'Supervisor' | 'Work Package Leader' | 'Other', required: The type of contributor of the resource. See DataCite Metadata Schema for definitions: https://schema.datacite.org/
      - `versionHistory` VersionHistory[], nullable
        - `version` string, nullable
        - `issued` string, date, nullable
        - `usgsApprovalIdentifier` string, nullable
        - `versionNotes` string, nullable
      - `systemKeyword` Keyword[], nullable
        - `concept` string, required
        - `conceptScheme` string, nullable
        - `conceptUri` string, uri, nullable
        - `conceptType` string, nullable
      - `isCatalogRecord` boolean
      - `usgsIdentifier` string, required
      - `usgsAssetType` 'Data' | 'Model' | 'Publication' | 'Software'
      - `usgsCreated` string, date-time
      - `usgsCreatedBy` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
      - `usgsModified` string, date-time
      - `usgsModifiedBy` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
      - `accessRights` 'Public' | 'Non Public'
      - `distribution` Distribution[], nullable
        - `title` string, nullable
        - `name` string, nullable
        - `description` string, nullable
        - `format` string, nullable
        - `mediaType` string, nullable
        - `conformsTo` string, uri, nullable
        - `downloadURL` string, uri, nullable
        - `accessURL` string, uri, nullable
        - `byteSize` integer, nullable
        - `checksum` Checksum: A Checksum is a value that allows to check the integrity of the contents of a file. Even small changes to the content of the file will change its checksum. This class allows the results of a variety of checksum and cryptographic message digest algorithms to be represented. Fields ------ algorithm: Identifies the algorithm used to produce the subject Checksum (should use SPDX) checksumValue: The checksumValue property provides a lowercase hexadecimal encoded digest value produced using a specific algorithm
          - `algorithm` string, required
          - `checksumValue` string, required
        - `modifiedBy` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
          - `entity_id` string, nullable
          - `name` string, required
          - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
          - `nameIdentifier` string, nullable
          - `email` string, nullable
        - `modified` string, date-time, nullable
        - `useForPreview` boolean, nullable
      - `publisher` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
      - `issued` string, date, nullable
      - `temporal` PeriodOfTime: An interval of time that is named or defined by its start and end dates. The interval can be open. For example, it can have just a start or just an end. In DCAT, temporal must be a string with two iso-8601 datetimes separated by '/'. We retain a list here and defer the conversion to DCAT's preference in the serialization. Fields ------ startDate: The start of the period. endDate: The end of the period.
        - `startDate` string, date, nullable
        - `endDate` string, date, nullable
      - `contactPoint` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
      - `usgsMetadataContactPoint` Entity: Person, Organization, or Service related to a resource Fields ------ entity_id: Identifier to uniquely identify an entity within a given system name: Name by which an entity is known nameType: The type of entity described by a name nameIdentifier: A globally unique persistent identifier for an entity (e.g., ORCID iD, ROR ID).
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
      - `usgsPurpose` string, nullable
      - `keyword` Keyword[], nullable
        - `concept` string, required
        - `conceptScheme` string, nullable
        - `conceptUri` string, uri, nullable
        - `conceptType` string, nullable
      - `spatial` Location: A spatial region of named place Fields ------ geometry: Geometry Not included in initial schema. Could be added in the future bbox: The spatial limits of a bounding box. centroid: The longitude and latitude coordinates of the Location's centroid
        - `bbox` BoundingBox: The spatial limits of a bounding box. Fields ------ westBoundLongitude: Western longitudinal dimension of the bounding box: -180 to 180 eastBoundLongitude: Eastern longitudinal dimension of the bounding box: -180 to 180 southBoundLatitude: Southern latitudinal dimensions of the bounding box: -90 to 90 northBoundLatitude: Northern latitudinal dimensions of the bounding box: -90 to 90
          - `westBoundLongitude` string, required
          - `eastBoundLongitude` string, required
          - `southBoundLatitude` string, required
          - `northBoundLatitude` string, required
        - `centroid` Centroid: The longitude and latitude coordinates of the Location's centroid Fields ------ point_longitude: Longitude decimal degrees: -180 to 180 point_latitude: Latitude decimal degrees: -90 to 90
          - `pointLongitude` string, required
          - `pointLatitude` string, required
    - DataReleaseComponentFormOutput: Basic metadata schema for user-required input for initiating and updating a component. Fields ------ isPartOf: The identifier of the related resource in which the described resource is physically or logically included. title: A name given to the resource. componentName: The short name provided for the directory that contains the component. creator: The entity responsible for producing the resource. identifier: A unique identifier of the resource being described or cataloged. This identifier should be represented by a URI. relation: A resource with a relationship to the cataloged resource. This property includes DCAT sub-properties hasPart, isReferencedBy, previousVersion, replaces. alternateIdentifier: An identifier or identifiers other than the primary Identifier applied to the resource being registered. qualifiedAttribution: Link to an Agent having some form of responsibility for the resource versionHistory: Description of versions of the dataset described within a given identifier. systemKeyword: Keywords used internally for system operations, queries, or application logic. isCatalogRecord: Indicates whether the component is intended to be cataloged in downstream catalogs (e.g., Data.gov). If true, the component is a catalog record.
      - `isPartOf` string, required
      - `title` string, required
      - `componentName` string, required
      - `description` string, required
      - `creator` Creator[]
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
        - `position` integer, required
        - `affiliation` string, nullable
        - `affiliationIdentifier` string, nullable
      - `identifier` string, uri, nullable
      - `relation` RelatedIdentifier[], nullable
        - `dataciteRelationType` 'IsCitedBy' | 'Cites' | 'IsSupplementTo' | 'IsSupplementedBy' | 'IsContinuedBy' | 'Continues' | 'IsNewVersionOf' | 'IsPreviousVersionOf' | 'IsPartOf' | 'HasPart' | 'IsReferencedBy' | 'References' | 'IsDocumentedBy' | 'Documents' | 'IsCompiledBy' | 'Compiles' | 'IsVariantFormOf' | 'IsOriginalFormOf' | 'IsIdenticalTo' | 'HasMetadata' | 'IsMetadataFor' | 'Reviews' | 'IsReviewedBy' | 'IsDerivedFrom' | 'IsSourceOf' | 'Describes' | 'IsDescribedBy' | 'HasVersion' | 'IsVersionOf' | 'Requires' | 'IsRequiredBy' | 'Obsoletes' | 'IsObsoletedBy' | 'IsPublishedIn', required: Description of the relationship of the resource being described and the related resource.
        - `relatedIdentifier` string, required
        - `isPrimaryRelatedIdentifier` boolean, required
        - `relatedIdentifierType` 'ARK' | 'arXiv' | 'bibcode' | 'DOI' | 'EAN13' | 'EISSN' | 'Handle' | 'IGSN' | 'ISBN' | 'ISSN' | 'ISTC' | 'LISSN' | 'LSID' | 'PMID' | 'PURL' | 'UPC' | 'URL' | 'URN' | 'w3id', required: The type of related identifier.
        - `description` string, nullable
      - `alternateIdentifier` AlternateIdentifier[], nullable
        - `alternateIdentifier` string, required
        - `alternateIdentifierType` 'ARK' | 'Servcat Number' | 'Genbank Accession Number' | 'IGSN' | 'LSID' | 'PURL' | 'Ref Seq ID' | 'Local Identifier' | 'Metadata Identifier' | 'ScienceBase Alt ID', required: The type of alternate identifier "ARK", "Servcat Number", "Genbank Accession Number", "IGSN", "LSID", "PURL", "Ref Seq ID", "Local Identifier", "Metadata Identifier", "ScienceBase Alt ID"
      - `qualifiedAttribution` Contributor[], nullable
        - `entity_id` string, nullable
        - `name` string, required
        - `nameType` 'USGS Personal' | 'Personal' | 'Organizational' | 'Service': The type of entity described by a name usgs_personal = "USGS Personal" USGS Federal staff or contractors personal = "Personal" Person who is not affiliated with USGS or a USGS contractor organizational = "Organizational" A government, nonprofit, research, or other organization service = "Service" Software that performs automated tasks
        - `nameIdentifier` string, nullable
        - `email` string, nullable
        - `position` integer, required
        - `affiliation` string, nullable
        - `affiliationIdentifier` string, nullable
        - `contributorType` 'Contact Person' | 'Data Collector' | 'Data Curator' | 'Data Manager' | 'Distributor' | 'Editor' | 'Hosting Institution' | 'Producer' | 'Project Leader' | 'Project Manager' | 'Project Member' | 'Registration Agency' | 'Registration Authority' | 'Related Person' | 'Researcher' | 'Research Group' | 'Rights Holder' | 'Sponsor' | 'Supervisor' | 'Work Package Leader' | 'Other', required: The type of contributor of the resource. See DataCite Metadata Schema for definitions: https://schema.datacite.org/
      - `versionHistory` VersionHistory[], nullable
        - `version` string, nullable
        - `issued` string, date, nullable
        - `usgsApprovalIdentifier` string, nullable
        - `versionNotes` string, nullable
      - `systemKeyword` Keyword[], nullable
        - `concept` string, required
        - `conceptScheme` string, nullable
        - `conceptUri` string, uri, nullable
        - `conceptType` string, nullable
      - `isCatalogRecord` boolean

## Other responses

- `404`: Not found
- `422`: Validation Error

---

[API](https://skmtc.dev/usgs/apis/usgs-science-data-catalog-api-documentation.md) - [All operations](https://skmtc.dev/usgs/apis/usgs-science-data-catalog-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/usgs/apis/usgs-science-data-catalog-api-documentation/revisions/f5f6a07ba13f?raw)
