Skip to main content

BAS CSW - Usage

General information

CSW (Catalogue Service for the Web) is an OGC (Open Geospatial Consortium) specification that defines common interfaces to discover, browse, and query metadata about data, services, and other potential resources.

The UK Polar Data Centre (UKPDC) and the British Antarctic Survey (BAS) provide access to it’s catalogue for distribution and discovery of metadata about datasets, services and other information objects.


Contact the BAS Service Desk for support.

Interacting with the BAS CSW service

The BAS CSW service is implemented using pycsw. pycsw is a widely used and certified OGC compliant CSW server written in Python. The service provides endpoints for CSW clients to integrate with.

The endpoints support the OGC CSW 2.0.2 standard as well as the ISO Metadata Application 1.0.0 Profile. The CSW endpoints operate over HTTP GET and POST (XML).

Base URL

The base URL for this API is:

Note: This API is only available over HTTPS.

Making requests


The GetCapabilities operation gives CSW clients the ability to get service metadata from the server, returned as an XML document.

Example GET request:

Example POST request:

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetCapabilities xmlns:csw="" service="CSW">
   <ows:AcceptVersions xmlns:ows="">
   <ows:AcceptFormats xmlns:ows="">


Content-type: application/xml


Example GET request:

Example POST request:

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords xmlns:csw="" xmlns:dif="" xmlns:fgdc="" xmlns:gmd="" xmlns:ows="" outputFormat="application/xml" outputSchema="" resultType="results" startPosition="1" service="CSW" version="2.0.2">
   <csw:Query typeNames="csw:Record">


Content-type: application/xml


Example GET requests:

For ISO 19139 output schema:

For Dublin Core output schema:

Example POST request:

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecordById xmlns:csw="" service="CSW" version="2.0.2">


Content-type: application/xml

Versioning policy

This API is versioned. An API version must be specified as a URL prefix e.g. /v1/foo.

Only the latest, stable, API version is supported. When a new version is released previous versions are deprecated.

Testing version

For testing new features and changes, a non-stable, testing version of this API is available. This version should only be used in development environments, when recommended by support.

The base URL of the testing version is: