network.bsky.jetstream.importTimestamps

bsky-lexicons.bsky.social

Documentation

Submit a timestamp-import job. The referenced CSV is staged server-local out-of-band and named by a path confined to the server's configured import directory (paths escaping it via .. or a symlink are rejected). The job runs asynchronously and shares the segment-rewrite lock with delete-compaction, so only one import runs at a time; a concurrent submit is rejected. Bearer-token gated: without a configured token the endpoint always returns 401.

main procedure

Submit a timestamp-import job. The referenced CSV is staged server-local out-of-band and named by a path confined to the server's configured import directory (paths escaping it via .. or a symlink are rejected). The job runs asynchronously and shares the segment-rewrite lock with delete-compaction, so only one import runs at a time; a concurrent submit is rejected. Bearer-token gated: without a configured token the endpoint always returns 401.

Input

Encodingapplication/json
path string Required

Server-local path to the plain (uncompressed) import CSV, resolved within the configured import directory. May be relative to that directory or an absolute path inside it.

Output

Encodingapplication/json
job string Required

Opaque job id. Poll getImportStatus with this id to observe progress and the terminal result.

Errors

ImportInProgress Another import job is already running; only one runs at a time.
ImportNotReady Timestamp import requires the server to be in steady state with the live writer running.
InvalidPath The path is empty, escapes the import directory, does not exist, or is not a regular file.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "type": "procedure",
  "input": {
    "schema": {
      "type": "object",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "string",
          "description": "Server-local path to the plain (uncompressed) import CSV, resolved within the configured import directory. May be relative to that directory or an absolute path inside it."
        }
      }
    },
    "encoding": "application/json"
  },
  "errors": [
    {
      "name": "ImportInProgress",
      "description": "Another import job is already running; only one runs at a time."
    },
    {
      "name": "ImportNotReady",
      "description": "Timestamp import requires the server to be in steady state with the live writer running."
    },
    {
      "name": "InvalidPath",
      "description": "The path is empty, escapes the import directory, does not exist, or is not a regular file."
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "job"
      ],
      "properties": {
        "job": {
          "type": "string",
          "description": "Opaque job id. Poll getImportStatus with this id to observe progress and the terminal result."
        }
      }
    },
    "encoding": "application/json"
  },
  "description": "Submit a timestamp-import job. The referenced CSV is staged server-local out-of-band and named by a path confined to the server's configured import directory (paths escaping it via .. or a symlink are rejected). The job runs asynchronously and shares the segment-rewrite lock with delete-compaction, so only one import runs at a time; a concurrent submit is rejected. Bearer-token gated: without a configured token the endpoint always returns 401."
}

Lexicon Garden

@