Prepare for the PgBouncer and IPv4 deprecations on 26th January 2024

Storage Server Reference

Create a bucket

post/bucket/

Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "examples": [
          "avatars"
        ]
      }
    },
    "required": [
      "name"
    ]
  }
}

Gets all buckets

get/bucket/

Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "array",
    "items": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "public": {
          "type": "boolean"
        },
        "file_size_limit": {
          "type": [
            "null",
            "integer"
          ]
        },
        "allowed_mime_types": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "created_at": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "id": "bucket2",
          "name": "bucket2",
          "public": false,
          "file_size_limit": 1000000,
          "allowed_mime_types": [
            "image/png",
            "image/jpeg"
          ],
          "owner": "4d56e902-f0a0-4662-8448-a4d9e643c142",
          "created_at": "2021-02-17T04:43:32.770206+00:00",
          "updated_at": "2021-02-17T04:43:32.770206+00:00"
        }
      ],
      "title": "bucketSchema"
    }
  },
  "example": [
    {
      "id": "avatars",
      "name": "avatars",
      "owner": "4d56e902-f0a0-4662-8448-a4d9e643c142",
      "public": false,
      "file_size_limit": 1000000,
      "allowed_mime_types": [
        "image/png",
        "image/jpeg"
      ],
      "created_at": "2021-02-17T04:43:32.770206+00:00",
      "updated_at": "2021-02-17T04:43:32.770206+00:00"
    }
  ]
}

Empty a bucket

post/bucket/{bucketId}/empty

Path Parameters
    bucketId
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "examples": [
          "Successfully emptied"
        ]
      }
    }
  }
}

Get details of a bucket

get/bucket/{bucketId}

Path Parameters
    bucketId
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "owner": {
        "type": "string"
      },
      "public": {
        "type": "boolean"
      },
      "file_size_limit": {
        "type": [
          "null",
          "integer"
        ]
      },
      "allowed_mime_types": {
        "type": [
          "null",
          "array"
        ],
        "items": {
          "type": "string"
        }
      },
      "created_at": {
        "type": "string"
      },
      "updated_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "name"
    ],
    "additionalProperties": false
  },
  "example": {
    "id": "bucket2",
    "name": "bucket2",
    "public": false,
    "file_size_limit": 1000000,
    "allowed_mime_types": [
      "image/png",
      "image/jpeg"
    ],
    "owner": "4d56e902-f0a0-4662-8448-a4d9e643c142",
    "created_at": "2021-02-17T04:43:32.770206+00:00",
    "updated_at": "2021-02-17T04:43:32.770206+00:00"
  }
}

Update properties of a bucket

put/bucket/{bucketId}

Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "examples": [
          "Successfully updated"
        ]
      }
    },
    "required": [
      "message"
    ]
  }
}

Delete a bucket

delete/bucket/{bucketId}

Path Parameters
    bucketId
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "examples": [
          "Successfully deleted"
        ]
      }
    }
  }
}

Delete an object

delete/object/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "examples": [
          "Successfully deleted"
        ]
      }
    }
  }
}

Get object

get/object/{bucketName}/{wildcard}

use GET /object/authenticated/{bucketName} instead

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Default Response

{
  "schema": {
    "$ref": "#/components/schemas/def-1"
  }
}

Update the object at an existing key

put/object/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "Id": {
        "type": "string"
      },
      "Key": {
        "type": "string",
        "examples": [
          "avatars/folder/cat.png"
        ]
      }
    },
    "required": [
      "Key"
    ]
  }
}

Upload a new object

post/object/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "Id": {
        "type": "string"
      },
      "Key": {
        "type": "string",
        "examples": [
          "avatars/folder/cat.png"
        ]
      }
    },
    "required": [
      "Key"
    ]
  }
}

Delete multiple objects

delete/object/{bucketName}

Path Parameters
    bucketName
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "array",
    "items": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "bucket_id": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "owner_id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "last_accessed_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "metadata": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        },
        "buckets": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "owner": {
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "file_size_limit": {
              "type": [
                "null",
                "integer"
              ]
            },
            "allowed_mime_types": {
              "type": [
                "null",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "created_at": {
              "type": "string"
            },
            "updated_at": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false,
          "examples": [
            {
              "id": "bucket2",
              "name": "bucket2",
              "public": false,
              "file_size_limit": 1000000,
              "allowed_mime_types": [
                "image/png",
                "image/jpeg"
              ],
              "owner": "4d56e902-f0a0-4662-8448-a4d9e643c142",
              "created_at": "2021-02-17T04:43:32.770206+00:00",
              "updated_at": "2021-02-17T04:43:32.770206+00:00"
            }
          ]
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "name": "folder/cat.png",
          "bucket_id": "avatars",
          "owner": "317eadce-631a-4429-a0bb-f19a7a517b4a",
          "id": "eaa8bdb5-2e00-4767-b5a9-d2502efe2196",
          "updated_at": "2021-04-06T16:30:35.394674+00:00",
          "created_at": "2021-04-06T16:30:35.394674+00:00",
          "last_accessed_at": "2021-04-06T16:30:35.394674+00:00",
          "metadata": {
            "size": 1234
          }
        }
      ],
      "title": "objectSchema"
    }
  }
}

Retrieve an object

get/object/authenticated/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Error response

{
  "schema": {
    "$ref": "#/components/schemas/def-1",
    "description": "Error response"
  }
}

Generate a presigned url to retrieve an object

post/object/sign/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "signedURL": {
        "type": "string",
        "examples": [
          "/object/sign/avatars/folder/cat.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJhdmF0YXJzL2ZvbGRlci9jYXQucG5nIiwiaWF0IjoxNjE3NzI2MjczLCJleHAiOjE2MTc3MjcyNzN9.s7Gt8ME80iREVxPhH01ZNv8oUn4XtaWsmiQ5csiUHn4"
        ]
      }
    },
    "required": [
      "signedURL"
    ]
  }
}

Retrieve an object via a presigned URL

get/object/sign/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    download
    Optional
    no type
    token
    REQUIRED
    no type
Responses

Error response

{
  "schema": {
    "$ref": "#/components/schemas/def-1",
    "description": "Error response"
  }
}

Generate presigned urls to retrieve objects

post/object/sign/{bucketName}

Path Parameters
    bucketName
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "array",
    "items": {
      "type": "object",
      "properties": {
        "error": {
          "error": [
            "string",
            "null"
          ],
          "examples": [
            "Either the object does not exist or you do not have access to it"
          ]
        },
        "path": {
          "type": "string",
          "examples": [
            "folder/cat.png"
          ]
        },
        "signedURL": {
          "type": [
            "null",
            "string"
          ],
          "examples": [
            "/object/sign/avatars/folder/cat.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJhdmF0YXJzL2ZvbGRlci9jYXQucG5nIiwiaWF0IjoxNjE3NzI2MjczLCJleHAiOjE2MTc3MjcyNzN9.s7Gt8ME80iREVxPhH01ZNv8oUn4XtaWsmiQ5csiUHn4"
          ]
        }
      },
      "required": [
        "error",
        "path",
        "signedURL"
      ]
    }
  }
}

Moves an object

post/object/move

Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "examples": [
          "Successfully moved"
        ]
      }
    },
    "required": [
      "message"
    ]
  }
}

Search for objects under a prefix

post/object/list/{bucketName}

Path Parameters
    bucketName
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "array",
    "items": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "bucket_id": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "owner_id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "last_accessed_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "metadata": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        },
        "buckets": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "owner": {
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "file_size_limit": {
              "type": [
                "null",
                "integer"
              ]
            },
            "allowed_mime_types": {
              "type": [
                "null",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "created_at": {
              "type": "string"
            },
            "updated_at": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false,
          "examples": [
            {
              "id": "bucket2",
              "name": "bucket2",
              "public": false,
              "file_size_limit": 1000000,
              "allowed_mime_types": [
                "image/png",
                "image/jpeg"
              ],
              "owner": "4d56e902-f0a0-4662-8448-a4d9e643c142",
              "created_at": "2021-02-17T04:43:32.770206+00:00",
              "updated_at": "2021-02-17T04:43:32.770206+00:00"
            }
          ]
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "name": "folder/cat.png",
          "bucket_id": "avatars",
          "owner": "317eadce-631a-4429-a0bb-f19a7a517b4a",
          "id": "eaa8bdb5-2e00-4767-b5a9-d2502efe2196",
          "updated_at": "2021-04-06T16:30:35.394674+00:00",
          "created_at": "2021-04-06T16:30:35.394674+00:00",
          "last_accessed_at": "2021-04-06T16:30:35.394674+00:00",
          "metadata": {
            "size": 1234
          }
        }
      ]
    }
  }
}

Retrieve object info

get/object/info/authenticated/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Query Parameters
    authorization
    REQUIRED
    no type
Responses

Error response

{
  "schema": {
    "$ref": "#/components/schemas/def-1",
    "description": "Error response"
  }
}

Copies an object

post/object/copy

Query Parameters
    authorization
    REQUIRED
    no type
Responses

Successful response

{
  "schema": {
    "description": "Successful response",
    "type": "object",
    "properties": {
      "Key": {
        "type": "string",
        "examples": [
          "folder/destination.png"
        ]
      }
    },
    "required": [
      "Key"
    ]
  }
}

Retrieve an object from a public bucket

get/object/public/{bucketName}/{wildcard}

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Responses

Error response

{
  "schema": {
    "$ref": "#/components/schemas/def-1",
    "description": "Error response"
  }
}

Get object info

get/object/info/public/{bucketName}/{wildcard}

returns object info

Path Parameters
    bucketName
    REQUIRED
    no type
    *
    REQUIRED
    no type
Responses

Default Response

{
  "schema": {
    "$ref": "#/components/schemas/def-1"
  }
}