NAV
shell

Introduction

Welcome to the Paste.ee API! You can use our API to access Paste.ee endpoints, which can get and submit pastes, and various other information like syntaxes.

We currently have no language bindings, if you’d like to submit one, please open an issue on Github

Authentication

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
  -H "Access-Key: meowmeowmeow"

curl "api_endpoint_here?key=meowmeowmeow"

curl "api_endpoint_here"
  -d "key=meowmeowmeow"

Make sure to replace meowmeowmeow with your API key.

Paste.ee uses Application keys to allow access to the API. You can register a new Application key at your account api page.

Paste.ee expects for the API key to be included in all API requests to the server in a header that looks like the following:

X-Auth-Token: meowmeowmeow

Or in a query parameter/request body:

key=meowmeowmeow

Or as the username in basic auth:

Authorization: Basic base64('meowmeowmeow:')

Pastes

List pastes

curl "https://api.paste.ee/v1/pastes"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
  "total": 0,
  "per_page": 0,
  "current_page": 0,
  "last_page": 0,
  "next_page_url": "string",
  "prev_page_url": "string",
  "from": 0,
  "to": 0,
  "data": [
    {
      "id": "string",
      "description": "string",
      "views": 0,
      "created_at": "string",
      "sections": [
        {
          "name": "string",
          "syntax": "string",
          "contents": "string"
        }
      ]
    }
  ]
}

This endpoint retrieves all pastes.

You can traverse pages by using next_page_url and prev_page_url. Please, when listing all pastes in an account, increase items per page to a reasonable amount to minimize requests.

HTTP Request

GET https://api.paste.ee/v1/pastes

Query Parameters

Parameter Default Description
perpage 25 Items to return per page.
page 1 Page number

Submit a new paste

curl "https://api.paste.ee/v1/pastes"
  -X "POST"
  -H "Content-Type: application/json"
  -H "X-Auth-Token: meowmeowmeow"
  -D '{"description":"test","sections":[{"name":"Section1","syntax":"autodetect","contents":"Testing!"}]}'

The above command returns JSON structured like this:

{
  "id": "<id>",
  "link": "https://paste.ee/p/<id>"
}

This endpoint submits a paste to the database.

HTTP Request

POST https://api.paste.ee/v1/pastes

Accepts data either as application/x-www-form-urlencoded or application/json

Request Body

Parameter Optional Description
encrypted true Whether the paste should be treated as encrypted. Default: false
description true Overall paste description.
sections false Array of sections.

Sections

Key Optional Description
name true Section name. Default: New Paste 1-10
syntax true Section syntax. Default: autodetect
contents false Section contents

Submit a new paste with a multipart request/files

curl "https://api.paste.ee/v1/pastes"
  -X "POST"
  -H "X-Auth-Token: meowmeowmeow"
  -F "files[]=@test.txt"
  -F "names[]=test.md"
  -F "syntaxes[]=markdown"

The above command returns JSON structured like this:

{
  "id": "<id>",
  "link": "https://paste.ee/p/<id>"
}

HTTP Request

POST https://api.paste.ee/v1/pastes/file

Request Body

Parameter Optional Description
files[] false Array of files
names[] true Array of names, can also specify names for only specific files;
syntaxes[] true Array of syntaxes, can also specify syntaxes for only specific files.

Get a paste

curl "https://api.paste.ee/v1/pastes/<id>"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
  "success":true,
  "paste": {
    "id":"<id>",
    "encrypted":false,
    "description":"",
    "views":123,
    "created_at":"2015-11-10 22:15:41",
    "expires_at":null,
    "sections":[
      {
        "id":0,
        "syntax":"autodetect",
        "name":"New Paste",
        "contents":"Something meow"
      }
    ]
  }
}

This endpoint gets a paste and it’s contents.

HTTP Request

GET https://api.paste.ee/v1/pastes/<id>

Path parameters

Parameter Description
id The paste identifier.

Remove a paste

curl "https://api.paste.ee/v1/pastes/<id>"
  -X "DELETE"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
  "success":true
}

This endpoint deletes a paste permanently.

HTTP Request

DELETE https://api.paste.ee/v1/pastes/<id>

Path parameters

Parameter Description
id The paste identifier.

Syntaxes

List Syntaxes

curl "https://api.paste.ee/v1/syntaxes"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
   "syntaxes":[
      {
         "id":1,
         "short":"autodetect",
         "name":"Auto Detect"
      },
      {
         "id":2,
         "short":"text",
         "name":"Text"
      }
   ],
   "success":true
}

This endpoint lists available syntaxes.

HTTP Request

GET https://api.paste.ee/v1/syntaxes

Get syntax

curl "https://api.paste.ee/v1/syntaxes/<id>"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
   "syntax":{
     "id": "1",
     "short": "text",
     "name": "Text"
   },
   "success":true
}

This endpoint returns information about a syntax.

HTTP Request

GET https://api.paste.ee/v1/syntaxes/<id>

Users

User/key information

curl "https://api.paste.ee/v1/users/info"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
  "type":"UserApplication"
}

This endpoint will return information about the current api key.

HTTP Request

GET https://api.paste.ee/v1/users/info

User Authentication

curl "https://api.paste.ee/v1/users/authenticate"
  -H "X-Auth-Token: meowmeowmeow"

The above command returns JSON structured like this:

{
  "success": true,
  "key": "<new or existing user application key>"
}

This endpoint authenticates users for UserApplications, allowing further api functionality like listing pastes and submitting them while attaching them to the user’s account.

You can also use the url https://paste.ee/account/api/authorize/<application key> to have the user generate a token themselves.

HTTP Request

POST https://api.paste.ee/v1/users/authenticate

Request Body

Parameter Description
username The user’s username.
password The user’s password.

Errors

The Paste.ee API uses the following error codes:

Error Code Meaning
400 Bad Request – Your request sucks
401 Unauthorized – Your Application/User application key is wrong.
403 Forbidden – The application is a standard Application, and the resource requires a UserApplication.
404 Not Found – The specified resource could not be found.
405 Method Not Allowed – You tried to access an endpoint with an invalid method.
406 Not Acceptable – You requested a format that isn’t json or xml.
429 Too Many Requests – You’re submitting pastes too fast, slow down and try again later.
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarially offline for maintanance. Please try again later.