Looking for our Scraping API? Check out the Scraping API documentation.
Developers API
Your Unique Developer API Key
Everybody using our API is required to use a valid Developer API Key. You automatically get a key when you become a member of Pastebin. Please login to your account, and return to this page to find your Developer API Key.
Creating A New Paste
Creating a new paste via our API is very easy. You simply have to send a valid POST request to the url shown below. Please make sure you are sending the data
as the UTF-8 charset.
https://pastebin.com/api/api_post.php
Below is a PHP example using curl how to create a new paste:
$api_dev_key = 'YOUR API DEVELOPER KEY'; // your api_developer_key $api_paste_code = 'just some random text you :)'; // your paste text $api_paste_private = '1'; // 0=public 1=unlisted 2=private $api_paste_name = 'justmyfilename.php'; // name or title of your paste $api_paste_expire_date = '10M'; $api_paste_format = 'php'; $api_user_key = ''; // if an invalid or expired api_user_key is used, an error will spawn. If no api_user_key is used, a guest paste will be created $api_paste_name = urlencode($api_paste_name); $api_paste_code = urlencode($api_paste_code); $url = 'https://pastebin.com/api/api_post.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to create a new paste:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_paste_code=test' -d 'api_option=paste' "https://pastebin.com/api/api_post.php"
Possible Good API Responses: (example)
https://pastebin.com/UIFdu235s
Possible Bad API Responses:
Bad API request, invalid api_option Bad API request, invalid api_dev_key Bad API request, maximum number of 25 unlisted pastes for your free account Bad API request, maximum number of 10 private pastes for your free account Bad API request, api_paste_code was empty Bad API request, maximum paste file size exceeded Bad API request, invalid api_paste_expire_date Bad API request, invalid api_paste_private Bad API request, invalid api_paste_format Bad API request, invalid api_user_key Bad API request, invalid or expired api_user_key Bad API request, you can't add paste to folder as guest
Creating A New Paste, [Required Parameters]
Include all the following POST parameters when you request the url:

1. api_dev_key - which is your unique API Developers Key.
2. api_option - set as paste, this will indicate you want to create a new paste.
3. api_paste_code - this is the text that will be written inside your paste.

Leaving any of these parameters out will result in an error.
Creating A New Paste, [Optional Parameters]
These parameters are not required when you create a new paste, but are possible to add:

1. api_user_key - this parameter is part of the login system, which is explained further down the page.
2. api_paste_name - this will be the name / title of your paste.
3. api_paste_format - this will be the syntax highlighting value, which is explained in detail further down the page.
4. api_paste_private - this makes a paste public, unlisted or private, public = 0, unlisted = 1, private = 2
5. api_paste_expire_date - this sets the expiration date of your paste, the values are explained futher down the page.
6. api_folder_key - this sets the key of the folder of your paste, the values are explained futher down the page.
Creating A New Paste, The 'api_paste_format' Parameter In Detail
We have over 200 syntax highlighting options available, below you can find a list of all the possible values you can use in combination with api_paste_format. Always include the value on the left from the list below, the value on the right is just the full name of the language in question.
    4cs = 4CS
    6502acme = 6502 ACME Cross Asse...
    6502kickass = 6502 Kick Assembler
    6502tasm = 6502 TASM/64TASS
    abap = ABAP
    actionscript = ActionScript
    actionscript3 = ActionScript 3
    ada = Ada
    aimms = AIMMS
    algol68 = ALGOL 68
    apache = Apache Log
    applescript = AppleScript
    apt_sources = APT Sources
    arduino = Arduino
    arm = ARM
    asm = ASM (NASM)
    asp = ASP
    asymptote = Asymptote
    autoconf = autoconf
    autohotkey = Autohotkey
    autoit = AutoIt
    avisynth = Avisynth
    awk = Awk
    bascomavr = BASCOM AVR
    bash = Bash
    basic4gl = Basic4GL
    dos = Batch
    bibtex = BibTeX
    b3d = Blitz3D
    blitzbasic = Blitz Basic
    bmx = BlitzMax
    bnf = BNF
    boo = BOO
    bf = BrainFuck
    c = C
    csharp = C#
    c_winapi = C (WinAPI)
    cpp = C++
    cpp-winapi = C++ (WinAPI)
    cpp-qt = C++ (with Qt extensi...
    c_loadrunner = C: Loadrunner
    caddcl = CAD DCL
    cadlisp = CAD Lisp
    ceylon = Ceylon
    cfdg = CFDG
    c_mac = C for Macs
    chaiscript = ChaiScript
    chapel = Chapel
    cil = C Intermediate Langu...
    clojure = Clojure
    klonec = Clone C
    klonecpp = Clone C++
    cmake = CMake
    cobol = COBOL
    coffeescript = CoffeeScript
    cfm = ColdFusion
    css = CSS
    cuesheet = Cuesheet
    d = D
    dart = Dart
    dcl = DCL
    dcpu16 = DCPU-16
    dcs = DCS
    delphi = Delphi
    oxygene = Delphi Prism (Oxygen...
    diff = Diff
    div = DIV
    dot = DOT
    e = E
    ezt = Easytrieve
    ecmascript = ECMAScript
    eiffel = Eiffel
    email = Email
    epc = EPC
    erlang = Erlang
    euphoria = Euphoria
    fsharp = F#
    falcon = Falcon
    filemaker = Filemaker
    fo = FO Language
    f1 = Formula One
    fortran = Fortran
    freebasic = FreeBasic
    freeswitch = FreeSWITCH
    gambas = GAMBAS
    gml = Game Maker
    gdb = GDB
    gdscript = GDScript
    genero = Genero
    genie = Genie
    gettext = GetText
    go = Go
    godot-glsl = Godot GLSL
    groovy = Groovy
    gwbasic = GwBasic
    haskell = Haskell
    haxe = Haxe
    hicest = HicEst
    hq9plus = HQ9 Plus
    html4strict = HTML
    html5 = HTML 5
    icon = Icon
    idl = IDL
    ini = INI file
    inno = Inno Script
    intercal = INTERCAL
    io = IO
    ispfpanel = ISPF Panel Definitio...
    j = J
    java = Java
    java5 = Java 5
    javascript = JavaScript
    jcl = JCL
    jquery = jQuery
    json = JSON
    julia = Julia
    kixtart = KiXtart
    kotlin = Kotlin
    ksp = KSP (Kontakt Script)
    latex = Latex
    ldif = LDIF
    lb = Liberty BASIC
    lsl2 = Linden Scripting
    lisp = Lisp
    llvm = LLVM
    locobasic = Loco Basic
    logtalk = Logtalk
    lolcode = LOL Code
    lotusformulas = Lotus Formulas
    lotusscript = Lotus Script
    lscript = LScript
    lua = Lua
    m68k = M68000 Assembler
    magiksf = MagikSF
    make = Make
    mapbasic = MapBasic
    markdown = Markdown
    matlab = MatLab
    mercury = Mercury
    metapost = MetaPost
    mirc = mIRC
    mmix = MIX Assembler
    mk-61 = MK-61/52
    modula2 = Modula 2
    modula3 = Modula 3
    68000devpac = Motorola 68000 HiSof...
    mpasm = MPASM
    mxml = MXML
    mysql = MySQL
    nagios = Nagios
    netrexx = NetRexx
    newlisp = newLISP
    nginx = Nginx
    nim = Nim
    nsis = NullSoft Installer
    oberon2 = Oberon 2
    objeck = Objeck Programming L...
    objc = Objective C
    ocaml = OCaml
    ocaml-brief = OCaml Brief
    octave = Octave
    pf = OpenBSD PACKET FILTE...
    glsl = OpenGL Shading
    oorexx = Open Object Rexx
    oobas = Openoffice BASIC
    oracle8 = Oracle 8
    oracle11 = Oracle 11
    oz = Oz
    parasail = ParaSail
    parigp = PARI/GP
    pascal = Pascal
    pawn = Pawn
    pcre = PCRE
    per = Per
    perl = Perl
    perl6 = Perl 6
    phix = Phix
    php = PHP
    php-brief = PHP Brief
    pic16 = Pic 16
    pike = Pike
    pixelbender = Pixel Bender
    pli = PL/I
    plsql = PL/SQL
    postgresql = PostgreSQL
    postscript = PostScript
    povray = POV-Ray
    powerbuilder = PowerBuilder
    powershell = PowerShell
    proftpd = ProFTPd
    progress = Progress
    prolog = Prolog
    properties = Properties
    providex = ProvideX
    puppet = Puppet
    purebasic = PureBasic
    pycon = PyCon
    python = Python
    pys60 = Python for S60
    q = q/kdb+
    qbasic = QBasic
    qml = QML
    rsplus = R
    racket = Racket
    rails = Rails
    rbs = RBScript
    rebol = REBOL
    reg = REG
    rexx = Rexx
    robots = Robots
    roff = Roff Manpage
    rpmspec = RPM Spec
    ruby = Ruby
    gnuplot = Ruby Gnuplot
    rust = Rust
    sas = SAS
    scala = Scala
    scheme = Scheme
    scilab = Scilab
    scl = SCL
    sdlbasic = SdlBasic
    smalltalk = Smalltalk
    smarty = Smarty
    spark = SPARK
    sparql = SPARQL
    sqf = SQF
    sql = SQL
    sshconfig = SSH Config
    standardml = StandardML
    stonescript = StoneScript
    sclang = SuperCollider
    swift = Swift
    systemverilog = SystemVerilog
    tsql = T-SQL
    tcl = TCL
    teraterm = Tera Term
    texgraph = TeXgraph
    thinbasic = thinBasic
    typescript = TypeScript
    typoscript = TypoScript
    unicon = Unicon
    uscript = UnrealScript
    upc = UPC
    urbi = Urbi
    vala = Vala
    vbnet = VB.NET
    vbscript = VBScript
    vedit = Vedit
    verilog = VeriLog
    vhdl = VHDL
    vim = VIM
    vb = VisualBasic
    visualfoxpro = VisualFoxPro
    visualprolog = Visual Pro Log
    whitespace = WhiteSpace
    whois = WHOIS
    winbatch = Winbatch
    xbasic = XBasic
    xml = XML
    xojo = Xojo
    xorg_conf = Xorg Config
    xpp = XPP
    yaml = YAML
    yara = YARA
    z80 = Z80 Assembler
    zxbasic = ZXBasic
 
Creating A New Paste, The 'api_paste_expire_date' Parameter In Detail
We have 9 valid values available which you can use with the api_paste_expire_date parameter:
    N = Never
    10M = 10 Minutes
    1H = 1 Hour
    1D = 1 Day
    1W = 1 Week
    2W = 2 Weeks
    1M = 1 Month
    6M = 6 Months
    1Y = 1 Year
Creating A New Paste, The 'api_paste_private' Parameter In Detail
We have 3 valid values available which you can use with the api_paste_private parameter:
    0 = Public
    1 = Unlisted
    2 = Private (only allowed in combination with api_user_key, as you have to be logged into your account to access the paste)
Creating A New Paste, The 'api_folder_key' Parameter In Detail
With this parameter you can set the destination folder for your paste. Use the 'api_user_key' parameter first before using 'api_folder_key' of your existing folder.
Creating An 'api_user_key' Using The API Member Login System
With this API we allow you to create applications which use the Pastebin members system. Sending a valid POST request to our API login system will return a unique api_user_key which can then be used to create a paste as a logged in user. Please send the request to the link shown below:
https://pastebin.com/api/api_login.php
Include all the following POST parameters when you request the url:
1. api_dev_key - this is your API Developer Key, in your case: YOUR API DEVELOPER KEY
2. api_user_name - this is the username of the user you want to login.
3. api_user_password - this is the password of the user you want to login.

If all 3 values match, a valid user session key will be returned. This key can be used as the api_user_key parameter. Only one key can be active at the same time for the same user. This key does not expire, unless a new one is generated. We recommend creating just one, then caching that key locally as it does not expire.

Below is a PHP example using curl how to create a valid api_user_key:
$api_dev_key = 'YOUR API DEVELOPER KEY'; $api_user_name = 'a_users_username'; $api_user_password = 'a_users_password'; $api_user_name = urlencode($api_user_name); $api_user_password = urlencode($api_user_password); $url = 'https://pastebin.com/api/api_login.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_dev_key='.$api_dev_key.'&api_user_name='.$api_user_name.'&api_user_password='.$api_user_password.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to create a valid api_user_key:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_user_name=a_users_username' -d 'api_user_password=a_users_password' "https://pastebin.com/api/api_login.php"
Possible Good API Responses: (example)
6c6d3fe13b19bbd6e479b705df0a607f
Possible Bad API Responses:
Bad API request, use POST request, not GET Bad API request, invalid api_dev_key Bad API request, invalid login Bad API request, account not active Bad API request, invalid POST parameters
Listing Pastes Created By A User
With this API you can list all the pastes created by a certain user. You will need send a valid POST request to the url below to access the data:
https://pastebin.com/api/api_post.php
Include all the following POST parameters when you request the url:
1. api_dev_key - this is your API Developer Key, in your case: YOUR API DEVELOPER KEY
2. api_user_key - this is the session key of the logged in user. How to obtain such a key
3. api_results_limit - this is not required, by default its set to 50, min value is 1, max value is 1000
4. api_option - set as 'list'

Below is a PHP example using curl how to list pastes:
$api_dev_key = 'YOUR API DEVELOPER KEY'; $api_user_key = ''; $api_results_limit = '100'; $url = 'https://pastebin.com/api/api_post.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=list&api_user_key='.$api_user_key.'&api_dev_key='.$api_dev_key.'&api_results_limit='.$api_results_limit.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to list pastes:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_user_key=YOUR API USER KEY' -d 'api_option=list' -d 'api_results_limit=100' "https://pastebin.com/api/api_post.php"
Below is an example output of a users paste listing:
<paste> <paste_key>0b42rwhf</paste_key> <paste_date>1297953260</paste_date> <paste_title>javascript test</paste_title> <paste_size>15</paste_size> <paste_expire_date>1297956860</paste_expire_date> <paste_private>0</paste_private> <paste_format_long>JavaScript</paste_format_long> <paste_format_short>javascript</paste_format_short> <paste_url>https://pastebin.com/0b42rwhf</paste_url> <paste_hits>15</paste_hits> </paste> <paste> <paste_key>0C343n0d</paste_key> <paste_date>1297694343</paste_date> <paste_title>Welcome To Pastebin V3</paste_title> <paste_size>490</paste_size> <paste_expire_date>0</paste_expire_date> <paste_private>0</paste_private> <paste_format_long>None</paste_format_long> <paste_format_short>text</paste_format_short> <paste_url>https://pastebin.com/0C343n0d</paste_url> <paste_hits>65</paste_hits> </paste>
Other Possible Good API Responses:
No pastes found.
Possible Bad API Responses:
Bad API request, invalid api_option Bad API request, invalid api_dev_key Bad API request, invalid api_user_key
Deleting A Paste Created By A User
With this API you can delete pastes created by certain users. You will need to send a valid POST request to the url below to access the data:
https://pastebin.com/api/api_post.php
Include all the following POST parameters when you request the url:
1. api_dev_key - this is your API Developer Key, in your case: YOUR API DEVELOPER KEY
2. api_user_key - this is the session key of the logged in user. How to obtain such a key
3. api_paste_key - this is the unique key of the paste you want to delete.
4. api_option - set as 'delete'

Below is a PHP example using curl how to delete a paste:
$api_dev_key = 'YOUR API DEVELOPER KEY'; $api_user_key = ''; $api_paste_key = ''; $url = 'https://pastebin.com/api/api_post.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=delete&api_user_key='.$api_user_key.'&api_dev_key='.$api_dev_key.'&api_paste_key='.$api_paste_key.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to delete a paste:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_user_key=YOUR API USER KEY' -d 'api_option=delete' -d 'api_paste_key=API PASTE KEY' "https://pastebin.com/api/api_post.php"
Possible Good API Responses:
Paste Removed
Possible Bad API Responses:
Bad API request, invalid api_option Bad API request, invalid api_dev_key Bad API request, invalid api_user_key Bad API request, invalid permission to remove paste
Getting A Users Information And Settings
With this API you can obtain a users personal information and certain settings. You will need to send a valid POST request to the url below to access the data:
https://pastebin.com/api/api_post.php
Include all the following POST parameters when you request the url:
1. api_dev_key - this is your API Developer Key, in your case: YOUR API DEVELOPER KEY
2. api_user_key - this is the session key of the logged in user. How to obtain such a key
3. api_option - set as 'userdetails'

Below is a PHP example using curl how to get user information:
$api_dev_key = 'YOUR API DEVELOPER KEY'; $api_user_key = ''; $url = 'https://pastebin.com/api/api_post.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=userdetails&api_user_key='.$api_user_key.'&api_dev_key='.$api_dev_key.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to get user information:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_user_key=YOUR API USER KEY' -d 'api_option=userdetails' "https://pastebin.com/api/api_post.php"
Below is an example output of a user information listing:
<user> <user_name>wiz_kitty</user_name> <user_format_short>text</user_format_short> <user_expiration>N</user_expiration> <user_avatar_url>https://pastebin.com/cache/a/1.jpg</user_avatar_url> <user_private>1</user_private> (0 Public, 1 Unlisted, 2 Private) <user_website>https://myawesomesite.com</user_website> <user_email>oh@dear.com</user_email> <user_location>New York</user_location> <user_account_type>1</user_account_type> (0 normal, 1 PRO) </user>
Possible Bad API Responses:
Bad API request, invalid api_option Bad API request, invalid api_dev_key Bad API request, invalid api_user_key
Getting raw paste output of users pastes including 'private' pastes
With this API you can obtain the raw paste output of a users pastes, including private pastes:
https://pastebin.com/api/api_raw.php
Include all the following POST parameters when you request the url:
1. api_dev_key - this is your API Developer Key, in your case: YOUR API DEVELOPER KEY
2. api_user_key - this is the session key of the logged in user. How to obtain such a key
3. api_paste_key - this is paste key you want to fetch the data from.
4. api_option - set as 'show_paste'

Below is a PHP example using curl how to fetch a users raw paste output:
$api_dev_key = 'YOUR API DEVELOPER KEY'; $api_user_key = ''; $url = 'https://pastebin.com/api/api_raw.php'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=show_paste&api_user_key='.$api_user_key.'&api_dev_key='.$api_dev_key.'&api_paste_key=A_VALID_PASTE_KEY_HERE'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); $response = curl_exec($ch); echo $response;
Below is a curl command example how to fetch a users raw paste output:
curl -X POST -d 'api_dev_key=YOUR API DEVELOPER KEY' -d 'api_user_key=YOUR API USER KEY' -d 'api_option=show_paste' -d 'api_paste_key=API PASTE KEY' "https://pastebin.com/api/api_post.php"
Possible Bad API Responses:
Bad API request, invalid api_option Bad API request, invalid api_dev_key Bad API request, invalid api_user_key Bad API request, invalid permission to view this paste or invalid api_paste_key
Getting raw paste output of any 'public' & 'unlisted' pastes
This option is actually not part of our API, but you might still want to use it. To get the raw output of any public or unlisted paste you can use our raw data output url:
https://pastebin.com/raw/
Simply add the paste_key at the end of that url and you will get the raw output.
TIP: If you are trying to scrape our content, check out our scraping API.