A TypeScript client for interacting with the Pastefy.app API (v2). This library provides full access to pastes, folders, tags, users, and more, and supports both authenticated and public endpoints.
- Create, edit, delete and fetch pastes (including support for multipaste)
- Manage folders and organize pastes
- Fetch and filter public trending or latest pastes
- Manage users and authentication
- API key management
- Fully typed with TypeScript
- Built-in error handling with custom exceptions
npm install @interaapps/pastefy
import { PastefyClient } from '@interaapps/pastefy-client';
const client = new PastefyClient('YOUR_API_KEY');
// Create a paste
const paste = await client.createPaste({
title: 'Hello World',
content: 'This is a sample paste.',
visibility: 'PUBLIC',
});
console.log(paste.id);
createPaste(paste: CreatePasteRequest)
editPaste(id: string, data: EditPasteRequest)
getPastes(query: PasteFilters)
getPaste(id: string)
getPasteRaw(id: string)
deletePaste(id: string)
starPaste(id: string)
unstarPaste(id: string)
getPublicPastes(query: PasteFilters)
getPublicTrendingPastes(query: PasteFilters)
getLatestPublicPastes(query: PasteFilters)
getUserPastes(query: PasteFilters)
getStarredPastes(query: PasteFilters)
createFolder(data: CreateFolderRequest)
getFolder(id: string, options?)
getFolders(query: Filters)
getUserFolders(query?)
getCurrentUser()
getUserOverview()
getPublicUser(id: string)
getUser(id: string)
getUsers(query: string)
editUser(id: string, data: EditUser)
deleteUser(id: string)
createApiKey()
getApiKeys()
deleteApiKey(id: string)
getTags(query: Filters)
getTag(id: string)
Pass your API token when creating the client instance:
const client = new PastefyClient('your-api-token');
You can also update the token later:
client.setApiToken('new-token');
Custom exceptions are automatically thrown for common error types:
AuthenticationException
AwaitingAccessException
BlockedException
FeatureDisabledException
NotFoundException
PastePrivateException
PermissionsDeniedException
Catch them like this:
try {
await client.getPaste('invalid-id');
} catch (e) {
if (e instanceof NotFoundException) {
console.error('Paste not found');
}
}
The library exports many useful types:
-
Paste
,CreatePasteRequest
,EditPasteRequest
-
Folder
,CreateFolderRequest
-
User
,PublicUser
,UserAsAdmin
,EditUser
Tag
-
Filters
,PasteFilters
ApiKey
UserOverview
const paste = await client.createPaste({
title: 'My First Paste',
content: 'Welcome to Pastefy!',
visibility: 'UNLISTED',
tags: ['welcome', 'test'],
});
console.log(`Paste created at: https://pastefy.app/${paste.id}`);
MIT License