Bibliothèques clientes
Le client officiel est onetime-ruby, qui prend en charge les API v1 et v2, tous les domaines régionaux et les URL de base personnalisées.
Tout le reste de cette page est maintenu par la communauté. La plupart de ces
bibliothèques sont antérieures à l’API v2 et aux domaines régionaux ; elles appellent donc
généralement les points de terminaison v1 obsolètes sur onetimesecret.com. Consultez la note
d’état de chaque entrée et vérifiez qu’une bibliothèque fonctionne avec votre région ou votre
instance auto-hébergée avant d’en dépendre.
| Langage | Bibliothèque | Dernière activité¹ | Domaine régional / personnalisé |
|---|---|---|---|
| Ruby | onetime-ruby (officiel) | 2026-06 | ✅ toutes les régions + URL de base personnalisée |
| Go | go-onetimesecret | 2026-05 | hôte US |
| Python | onetimesecret-cli | 2024-11 | option de région US / EU |
| Go | otsgo | 2024-03 | non documenté |
| PowerShell | OneTimeSecret | 2021-06 | URL de base personnalisée |
| Bash | onetimesecret-bash | 2020-05 | hôte personnalisé |
| Python | py_onetimesecret | 2019-05 | ❌ (époque Python 2) |
| C# | OneTimeSharp | 2018-05 | ❌ |
| Java | onetime-java | 2014-06 | URL auto-hébergée uniquement |
| Perl | Net::OneTimeSecret | 2012-02 | ❌ |
¹ Commit ou version la plus récente au moment du dernier audit (2026-07).
Page GitHub - onetime-ruby par Delano — client officiel, activement maintenu (dernier commit 2026-06). Prend en charge l’API v1 (obsolète) et v2, les domaines régionaux et les URL de base personnalisées. Nécessite Ruby 3.1+, aucune dépendance à l’exécution.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »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']Page GitHub - onetimesecret-cli
par slashpass — maintenu par la communauté (dernier
commit 2024-11). Prend en charge une option de région (us / eu).
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »from onetimesecret import OneTimeSecretCli
cli = OneTimeSecretCli(ONETIMESECRET_USER, ONETIMESECRET_KEY)cli.create_link("secret") # return a link like https://onetimesecret.com/secret/xxxxxxxxxxxPage GitHub - py_onetimesecret
par Vladislav Stepanov — non maintenu (dernier
commit en 2019 ; l’exemple ci-dessous est en Python 2). Utilise l’API v1 obsolète sur
onetimesecret.com uniquement.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »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 sur CPAN par Kyle Dawkins — non maintenu (dernière version 0.04, 2012-02). Antérieur à l’API v2 et aux domaines régionaux.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »#!/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} );Page GitHub - onetime-java par Marcin Pawlowski — non maintenu (dernier commit 2014-06). Accepte une URL d’instance, il peut donc fonctionner en auto-hébergement, mais il est antérieur à l’API v2.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »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());Page GitHub - OneTimeSharp
par Vladislav Stepanov — non maintenu (dernier
commit 2018-05). Utilise l’API v1 obsolète sur onetimesecret.com uniquement.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »// 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 }}Page GitHub - go-onetimesecret
par Corbalt — maintenu par la communauté (dernier
commit 2026-05, mis à jour pour l’hôte us.onetimesecret.com). Inclut une CLI.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »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)Exemple d’utilisation en CLI
Section intitulée « Exemple d’utilisation en 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)
Section intitulée « Go (lib) »Page GitHub - otsgo par Emídio Neto — maintenu par la communauté (dernière version v1.1.0, 2024-03). Prise en charge des domaines régionaux non documentée.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »// 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
Section intitulée « PowerShell »Page GitHub - OneTimeSecret
par Craig Gumbley — non maintenu (dernière
version 2021-06). Prend en charge un paramètre -BaseUrl personnalisé, il peut donc cibler une région ou
une instance auto-hébergée, mais il est antérieur à l’API v2.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »# 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 NamePage GitHub - onetimesecret-bash
par Eric Engstrom — non maintenu (dernier
commit 2020-05). Prend en charge un hôte personnalisé via ots_set_host, mais il est antérieur à l’API
v2 et aux domaines régionaux.
Exemple d’utilisation comme API de script
Section intitulée « Exemple d’utilisation comme API de script »# 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 $KEYExemple d’utilisation en CLI
Section intitulée « Exemple d’utilisation en 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>