Sample Registration

  • Register a single sample or multiple samples. This service will automatically create an IGSN or accept user specified IGSN. Sample metadat will be stored the SESAR database.
  • Requires POST requests
  • The current upload web service (upload.php) only supports schema 3.0 and schema 4.0. Please update your sample registration XML accordingly.
  • Notes

POST API

URI https://app.geosamples.org/webservices/upload.php

TEST URI https://app-sandbox.geosamples.org/webservices/upload.php

Usage

JSON Web Token (preferred)

Request Headers for JWT
  • Requires a JWT access token in the authorization header of your request
curl \
-X POST \
-H "Content-Type: application/xml" \
-H "Authorization: Bearer YOUR_JWT_ACCESS_TOKEN" \
-d "content={sampleinformation}" \
https://app.geosamples.org/webservices/credentials_service_v2.php

Geopass (to be deprecated)

Request Headers for Geopass
curl \
-X POST \
-H "Content-Type: application/xml" \
-d "username=your_user_name&password=your_password&content={sampleinformation}" \
https://app.geosamples.org/webservices/credentials_service_v2.php

{sample information} is the XML text about sample metadata.

Example XML format for registering one sample:

<?xml version="1.0" encoding="UTF-8"?> 
<samples xmlns="http://app.geosamples.org" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://app.geosamples.org/4.0/sample.xsd "> 
  <sample>
    <user_code>ABC</user_code> <!-- required --> 
    <sample_type>Individual Sample</sample_type> <!-- required --> 
    <sample_subtype>Thin Section</sample_subtype>
    <name>TestSample123</name> <!-- Required --> 
    <material>Rock</material><!-- required, -->
    <igsn>ABC123456</igsn> <!-- Not Required, If it is not specified, the system will create it automatically. --> 
    <!-- If no classification.xsd is specified, the older format for classification is still supported e.g., Igneous>Plutonic>Felsic --> 
    <classification xmlns="http://app.geosamples.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://app.geosamples.org/classifications.xsd"> 
      <Rock>
        <Igneous>
          <Plutonic> 
           <PlutonicType>Felsic</PlutonicType>
          </Plutonic>
        </Igneous>
      </Rock> 
    </classification> <description>arkose</description> 
    <age_min>6.5</age_min> 
    <age_max>13</age_max> 
    <age_unit>years</age_unit> 
    <collection_method>Grab</collection_method> 
    <latitude>35.5134</latitude>
    <longitude>-117.3463</longitude>
    <elevation>781.4</elevation> 
    <primary_location_name>Lava Mountains, Mojave Desert, California </primary_location_name> 
    <country>United States</country> 
    <province>California</province> 
    <county>San Bernardino</county>
    <collector>J. E. Andrew</collector> 
    <collection_start_date>2002-05-30T09:30:10Z </collection_start_date> 
    <collection_date_precision>time</collection_date_precision>
    <original_archive>University of Kansas</original_archive> 
  </sample>
</samples>
  • You can upload multiple samples by adding the block nested within the tag. You can find the XML sample template at this link.

Response Body

HTTP status codes:

  • 200 Sample registered successfully. The response text is like the following.
<results> 
  <sample> 
    <status>Sample [Lulin Upload Status Sample test] was saved successfully with IGSN [LLS00009I].</status> 
    <name>Lulin Upload Status Sample test</name> 
    <igsn>LLS00009I</igsn> 
  </sample> 
</results>
  • 400 Bad Request - Request body either has syntax errors or xml content has errors. Error messages will look like the following.
    • XML Syntax error:
    <results>
      <valid code="InvalidXML">no</valid> 
      <error>Element '{http://app.geosamples.org}publish_date':[facet'pattern'] The value '2016-03-0' is not accepted by the patter '([0-9]{4}-[0-9]{2})(.........)'
      </error>
    </results>
    
    • XML Content error:
    <results>
      <sample name="your sample name">
      <valid code="InvalidSample">no</valid>
      <status>Not Saved</status>
      <error>The User Code ABC in your IGSN ABC123456 does not belong to you.</error>
      </sample>
    </results>
    
  • 401 Unauthorized - A login failure will return error message as following:
<results>
  <valid code="InvalidAuth">no</valid>
  <error>Invalid login, username not known or password not matched</error>
</results>