Docs > The API >

key/add

session required
POST
https://keybase.io/_/api/1.0/key/add.json
SAMPLE PARAMS
public_key:     "-----BEGIN PGP PUBLIC..."
private_key:    "hKRib2R5gqRwcml2gqRkY..."
csrf_token:     "lgHZIDU1YzA3OWJfff..."
is_primary:     true
SAMPLE OUTPUT
{
  "status": {
    "code": 0,
    "name": "OK"
  },
  "kid":            "0101d9d962be6ee38cdadedd6...",
  "csrf_token":     "lgHZIDU1YzA3OWJmNWYxNjUwZ...",
  "is_primary":     true
}
WATCH FOR
"BAD_SESSION"

Acceptable public key format(s)

An uploaded public key should be an armored PGP key. An uploaded private key should be in P3SKB format. You can upload both at the same time, or the private after the public, but you can't upload the private before the public.

If you already have a public key

This will replace your public key, which will also invalidate any public proofs of identity. You'll need to re-prove yourself.

Primary key

Keybase only supports one key pair per user, currently, and so make sure you pass true for is_primary.