Client Libraries
BETA API - updated 2017-04-27 (Have a question?)
PHP
Download onetime-api.phpby Christopher Murtagh (added 2011-12-21)
Usage Example
<?php include('onetime-api.php'); $myOnetime = new OneTimeSecret; $myOnetime->setCustomerID('YOUR_EMAIL'); $myOnetime->setToken('YOUR_OTS_APIKEY'); $myOnetime->setRecipient('delano@onetimesecret.com'); $myOnetime->setTTL(7200); $myResult = $myOnetime->shareSecret('Jazz, jazz and more jazz.', 'thepassword'); print $myOnetime->getSecretURI($myResult); ?>
Ruby
Download onetime-api.rbby Delano Mandelbaum (added 2011-12-21)
Usage Example
require 'onetime/api' api = Onetime::API.new 'YOUR_EMAIL', 'YOUR_OTS_APIKEY' options = { :secret => 'Jazz, jazz and more jazz.', :recipient => 'delano@onetimesecret.com', :ttl => 7200 } ret = api.post '/share', options puts ret['secret_key']
Python
Download onetimesecret.pyby Vladislav Stepanov (added 2012-06-26)
Usage Example
from onetimesecret import OneTimeSecret o = OneTimeSecret("YOUR_EMAIL", "YOUR_OTS_APIKEY") secret = o.share(u"test") print o.retrieve_secret(secret["secret_key"]) # {u'secret_key': u'dtr7ixukiolpx1i4i87kahmhyoy2q65', # u'value': u'test'}
Perl
Download Net::OneTimeSecretby Kyle Dawkins (added 2012-01-06)
Usage Example
#!/usr/bin/env perl use Net::OneTimeSecret; # Note: replace these with yours in order for this to work! my $customerId = 'YOUR_EMAIL'; my $testApiKey = 'YOUR_OTS_APIKEY'; my $api = Net::OneTimeSecret->new( $customerId, $testApiKey ); my $result = $api->shareSecret( 'Jazz, jazz and more jazz.', passphrase => 'thepassword', recipient => 'kyle@shoffle.com', ttl => 7200, ); printf( "%s\n", $result->{secret_key} ); my $secret = $api->retrieveSecret( $result->{secret_key}, passphrase => "thepassword" ); printf( "%s\n", $secret->{value} );
Java
Download onetime-javaby Marcin Pawlowski (added 2014-05-22)
Usage Example
OneTimeSecret ots = new OneTimeSecretRestImpl( "https://path/to/ots/instance", "ots-username", "ots-apikey"); GenerateResponse generateResponse = ots.generate( new GenerateRequest.Builder() .withPassphrase("supersecret") .build()); RetrieveResponse retrieveResponse = ots.retrieve( new RetrieveRequest.Builder() .withSecretKey(shareResponse.getSecretKey()) .withPassphrase("supersecret") .build()); assertEquals(generateResponse.getValue(), retrieveResponse.getValue());
C#
Download OneTimeSharpby Vladislav Stepanov (added 2014-05-29)
Usage Example
# You can use OneTimeSharp in any of your projects which are compatible with .NET (4.0+) or Mono (2.10.8+). using VStepanov.OneTimeSharp; class Test { static void Main(string[] args) { var ots = new OneTimeSecret("YOUR_EMAIL", "YOUR_OTS_APIKEY"); var generated = ots.GenerateSecret(); Console.WriteLine(generated.Value); // LR*?us*A(UT* Console.WriteLine(generated.SecretKey); // ikzx3m77j5by8411cg5lk5fvfylvl0i Console.WriteLine(ots.GetSecretLink(generated)); // https://onetimesecret.com/secret/ikzx3m77j5by8411cg5lk5fvfylvl0i var shared = ots.ShareSecret("Hello, OTS!"); Console.WriteLine(shared.MetadataKey); // kd6rgsucl98qbgu9eavjq4k5sdxsom0 Console.WriteLine(ots.GetMetadataLink(shared)); // https://onetimesecret.com/private/kd6rgsucl98qbgu9eavjq4k5sdxsom0 } }
Go
Download onetimesecretby Corbalt (added 2021-12-10)
Usage Example
import ots "github.com/corbaltcode/go-onetimesecret" client := ots.Client{ Username: "user@example.com", Key: "my api key", } metadata, err := client.Put("the launch codes", "passphrase", 0, "") if err != nil { // handle error } secret, err := client.Get(metadata.SecretKey, "passphrase") if err != nil { // handle error } // prints "the launch codes" print(secret)
Usage Example as CLI
$ go install github.com/corbaltcode/go-onetimesecret/cmd/ots@latest $ ots put 'what is essential is invisible to the eye' hdjk6p0ozf61o7n6pbaxy4in8zuq7sm ifipvdpeo8oy6r8ryjbu8y7rhm9kty9 $ ots get hdjk6p0ozf61o7n6pbaxy4in8zuq7sm what is essential is invisible to the eye $ ots gen rVjbS$twCJkS 4nwhy7v4fnabayqc5auv4ogh0nfr20 flsdlaun6hwczqu9utmc0vts5xj9xu1 $ ots burn flsdlaun6hwczqu9utmc0vts5xj9xu1 flsdlaun6hwczqu9utmc0vts5xj9xu1
PowerShell
Download OneTimeSecretby Craig Gumbley (updated 2017-04-28)
Usage Example
# Install from the PowerShell gallery Install-Module -Name OneTimeSecret -Scope CurrentUser # Set connection information Set-OTSAuthorizationToken -Username user@mail.com -APIKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Generate a new shared secret New-OTSSharedSecret -Secret "Very Secret" -Passphrase 1234 -Recipient user@mail.com # Retrieve a secret Get-OTSSecret -SecretKey qqevnp70b4uoiax4knzhwlhros6ne7x -Passphrase 1234 # View all functions that are available Get-Command -Module OneTimeSecret | Select Name
Go
Download OneTimeSecret-Goby Craig Gumbley (updated 2020-08-20)
Usage Example
// Build a new client client := ots.NewClient( WithUsername("otsuser@domain.com"), WithApiKey("xxxxxxxx"), ) // Send a request with context ctx := context.Background() response, err := client.GetStatus(ctx) if err != nil { panic(err) } fmt.Println(response.Status)
Bash
Download OneTimeSecret-bashby Eric Engstrom (updated 2018-12-19)
Usage Example as Scripting API
# source for use anonymously (secrets created anonymously) source ots.bash # or, source with specific auth credentials APIUSER="USERNAME" APIKEY="APIKEY" source ots.bash -u $APIUSER -k $APIKEY # check status of server ots_status # create a secret and get back the URL URL=$(echo "secret" | ots_share) # share a multi line secret via HEREDOC. URL=$(ots_share <<-EOF This is a Secret ... on multiple lines EOF ) # pass options to share or generate. URL=$(ots_share ttl=600 \ passphrase="shared-secret" \ recipient="someone@somewhere.com" <<< "SECRET") # fetch the secret data local DATA="$(ots_retrieve "$URL")" # share/generate a new secret, and get back the private metadata key local KEY=$(ots_metashare <<< "SECRET") local KEY=$(ots_metagenerate) # get a list of private metadata keys recently created. # note that this requires valid autnentication credentials local -a RECENT=( $(ots_recent) ) # check on the current state of a secret, given the private key ots_state $KEY # burn a secret, given the private key ots_burn $KEY
Usage Example as CLI
# Share a secret (from stdin ./ots share SECRET ^D # Share a secret (via HEREDOC) ./ots share <<-EOF This is a mulit-line secret via HEREDOC. Somthing else goes here. EOF # Get/Retrieve a secret: ./ots get./ots retrieve # Burn a secret: ./ots burn # Use --help for complete list of command line actions and known options: ./ots --help
If you implement another language, let us know and we'll add it here!