Client-Bibliotheken
Der offizielle Client ist onetime-ruby. Er unterstützt API v1 und v2, alle regionalen Domains sowie benutzerdefinierte Basis-URLs.
Alles Weitere auf dieser Seite wird von der Community gepflegt. Die meisten
dieser Bibliotheken sind älter als API v2 und die regionalen Domains, daher rufen
sie in der Regel die veralteten v1-Endpunkte unter onetimesecret.com auf. Beachte
den Statushinweis zu jedem Eintrag und prüfe, ob eine Bibliothek mit deiner Region
oder deiner selbst gehosteten Instanz funktioniert, bevor du dich auf sie verlässt.
| Sprache | Bibliothek | Letzte Aktivität¹ | Regionale / benutzerdefinierte Domain |
|---|---|---|---|
| Ruby | onetime-ruby (offiziell) | 2026-06 | ✅ alle Regionen + benutzerdefinierte Basis-URL |
| Go | go-onetimesecret | 2026-05 | US-Host |
| Python | onetimesecret-cli | 2024-11 | Regionsoption US / EU |
| Go | otsgo | 2024-03 | nicht dokumentiert |
| PowerShell | OneTimeSecret | 2021-06 | benutzerdefinierte Basis-URL |
| Bash | onetimesecret-bash | 2020-05 | benutzerdefinierter Host |
| Python | py_onetimesecret | 2019-05 | ❌ (aus der Python-2-Ära) |
| C# | OneTimeSharp | 2018-05 | ❌ |
| Java | onetime-java | 2014-06 | nur selbst gehostete URL |
| Perl | Net::OneTimeSecret | 2012-02 | ❌ |
¹ Letzter Commit oder letztes Release zum Zeitpunkt der letzten Prüfung (2026-07).
GitHub-Seite - onetime-ruby von Delano — offizieller Client, aktiv gepflegt (letzter Commit 2026-06). Unterstützt API v1 (veraltet) und v2, regionale Domains und benutzerdefinierte Basis-URLs. Benötigt Ruby 3.1+, keine Laufzeitabhängigkeiten.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“require 'onetime/api'
api = Onetime::API.new('YOUR_EMAIL', 'YOUR_OTS_APIKEY')options = { secret: 'Jazz, jazz and more jazz.', recipient: 'example@onetimesecret.com', ttl: 7200}
ret = api.post('/share', options)puts ret['secret_key']GitHub-Seite - onetimesecret-cli
von slashpass — von der Community gepflegt (letzter
Commit 2024-11). Unterstützt eine Regionsoption (us / eu).
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“from onetimesecret import OneTimeSecretCli
cli = OneTimeSecretCli(ONETIMESECRET_USER, ONETIMESECRET_KEY)cli.create_link("secret") # return a link like https://onetimesecret.com/secret/xxxxxxxxxxxGitHub-Seite - py_onetimesecret
von Vladislav Stepanov — nicht mehr gepflegt (letzter
Commit 2019; das Beispiel unten ist Python 2). Verwendet ausschließlich die veraltete
v1-API unter onetimesecret.com.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“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'}Net::OneTimeSecret auf CPAN von Kyle Dawkins — nicht mehr gepflegt (letztes Release 0.04, 2012-02). Älter als API v2 und die regionalen Domains.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“#!/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} );GitHub-Seite - onetime-java von Marcin Pawlowski — nicht mehr gepflegt (letzter Commit 2014-06). Nimmt eine Instanz-URL entgegen und funktioniert daher möglicherweise mit selbst gehosteten Instanzen, ist aber älter als API v2.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“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(generateResponse.getSecretKey()) .withPassphrase("supersecret") .build());
assertEquals(generateResponse.getValue(), retrieveResponse.getValue());GitHub-Seite - OneTimeSharp
von Vladislav Stepanov — nicht mehr gepflegt (letzter
Commit 2018-05). Verwendet ausschließlich die veraltete v1-API unter onetimesecret.com.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“// 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 }}GitHub-Seite - go-onetimesecret
von Corbalt — von der Community gepflegt (letzter
Commit 2026-05, aktualisiert für den Host us.onetimesecret.com). Enthält eine CLI.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“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)Anwendungsbeispiel als CLI
Abschnitt betitelt „Anwendungsbeispiel als 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 hdjk6p0ozf61o7n6pbaxy4in8zuq7smwhat is essential is invisible to the eye
$ ots genrVjbS$twCJkS 4nwhy7v4fnabayqc5auv4ogh0nfr20 flsdlaun6hwczqu9utmc0vts5xj9xu1
$ ots burn flsdlaun6hwczqu9utmc0vts5xj9xu1flsdlaun6hwczqu9utmc0vts5xj9xu1Go (lib)
Abschnitt betitelt „Go (lib)“GitHub-Seite - otsgo von Emídio Neto — von der Community gepflegt (letztes Release v1.1.0, 2024-03). Unterstützung regionaler Domains nicht dokumentiert.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“// Build a new clientclient := ots.NewClient( WithUsername("otsuser@domain.com"), WithApiKey("xxxxxxxx"),)
// Send a request with contextctx := context.Background()response, err := client.GetStatus(ctx)if err != nil { panic(err)}
fmt.Println(response.Status)PowerShell
Abschnitt betitelt „PowerShell“GitHub-Seite - OneTimeSecret
von Craig Gumbley — nicht mehr gepflegt (letztes
Release 2021-06). Unterstützt eine benutzerdefinierte -BaseUrl und kann daher auf
eine Region oder eine selbst gehostete Instanz zeigen, ist aber älter als API v2.
Anwendungsbeispiel
Abschnitt betitelt „Anwendungsbeispiel“# Install from the PowerShell galleryInstall-Module -Name OneTimeSecret -Scope CurrentUser
# Set connection informationSet-OTSAuthorizationToken -Username user@mail.com -APIKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Generate a new shared secretNew-OTSSharedSecret -Secret "Very Secret" -Passphrase 1234 -Recipient user@mail.com
# Retrieve a secretGet-OTSSecret -SecretKey qqevnp70b4uoiax4knzhwlhros6ne7x -Passphrase 1234
# View all functions that are availableGet-Command -Module OneTimeSecret | Select NameGitHub-Seite - onetimesecret-bash
von Eric Engstrom — nicht mehr gepflegt (letzter
Commit 2020-05). Unterstützt über ots_set_host einen benutzerdefinierten Host, ist
aber älter als API v2 und die regionalen Domains.
Anwendungsbeispiel als Scripting-API
Abschnitt betitelt „Anwendungsbeispiel als Scripting-API“# source for use anonymously (secrets created anonymously)source ots.bash
# or, source with specific auth credentialsAPIUSER="USERNAME"APIKEY="APIKEY"source ots.bash -u $APIUSER -k $APIKEY
# check status of serverots_status
# create a secret and get back the URLURL=$(echo "secret" | ots_share)
# share a multi line secret via HEREDOC.URL=$(ots_share <<-EOF This is a Secret ... on multiple linesEOF)
# pass options to share or generate.URL=$(ots_share ttl=600 \ passphrase="shared-secret" \ recipient="someone@somewhere.com" <<< "SECRET")
# fetch the secret datalocal DATA="$(ots_retrieve "$URL")"
# share/generate a new secret, and get back the private metadata keylocal KEY=$(ots_metashare <<< "SECRET")local KEY=$(ots_metagenerate)
# get a list of private metadata keys recently created.# note that this requires valid authentication credentialslocal -a RECENT=( $(ots_recent) )
# check on the current state of a secret, given the private keyots_state $KEY
# burn a secret, given the private keyots_burn $KEYAnwendungsbeispiel als CLI
Abschnitt betitelt „Anwendungsbeispiel als CLI“# Share a secret (from stdin)./ots shareSECRET^D
# Share a secret (via HEREDOC)./ots share <<-EOF This is a multi-line secret via HEREDOC. Something else goes here.EOF
# Get/Retrieve a secret:./ots get <key|url>./ots retrieve <key|url>
# Burn a secret, given its private metadata key:./ots burn <key>