# API Reference The paste.sr.ht API allows you to browse and create pastes on paste.sr.ht programmatically. This API follows the [standard sourcehut API conventions](../api-conventions.md). ## Authentication Authentication is done via the [meta.sr.ht OAuth flow](https://man.sr.ht/meta.sr.ht/oauth-api.md). The following OAuth scopes are available for paste.sr.ht: - **paste:read**, **paste:write**: read & write paste resources ## Resources ### Paste resource ```json { "created": "timestamp", "sha": "id of this paste (SHA-1 hash)", "user": { short-form user resource }, "files": [ { "filename": "filename" or null, "blob_id": "id of this blob (SHA-1 hash)" }, ... ] } ``` ### Blob resource ```json { "created": "timestamp", "sha": "id of this blob (SHA-1 hash)", "contents": "contents of this blob" } ``` ## Endpoints ### GET /api/pastes List of [paste resources](#paste-resource). **OAuth scope**: `pastes:read` ### POST /api/pastes Create a new paste resource. **OAuth scope**: `pastes:write` **Request body** ```json { "files": [ { "filename": "filename" or null, (optional) "contents": "contents of this file" } ] } ``` - **contents** must be a UTF-8 encoded string; binary files are not allowed **Response** The new [paste resource](#paste-resource). ### GET /api/pastes/:sha **OAuth scope**: `pastes:read` Retrieves a [paste resource](#paste-resource). ### GET /api/blobs/:sha **OAuth scope**: `pastes:read` Retrieves a [blob resource](#blob-resource). ## Webhooks ### /api/pastes/... Webhook for paste events. Includes the [standard webhook endpoints](../api-conventions.md#webhooks) #### paste:create Issued when a new paste is created. Requires `paste:read` OAuth scope. **Request body** Affected [paste resource](#paste-resource).