Gcore Snapshots API

The Snapshots API from Gcore — 4 operation(s) for snapshots.

GitHub OpenAPI

Operations 7

POST /v1/pricing/{project_id}/{region_id}/snapshots Preview snapshot price #
POST /v1/snapshots/{project_id}/{region_id} Create snapshot #
GET /v1/snapshots/{project_id}/{region_id} List snapshots #
GET /v1/snapshots/{project_id}/{region_id}/{snapshot_id} Get snapshot #
PATCH /v1/snapshots/{project_id}/{region_id}/{snapshot_id} Update snapshot #
DELETE /v1/snapshots/{project_id}/{region_id}/{snapshot_id} Delete snapshot #
PUT /v1/snapshots/{project_id}/{region_id}/{snapshot_id}/metadata Replace snapshot tags #

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gcore:gcore-snapshots-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gcore-snapshots-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cloud Snapshots API
  description: '___brandName___ Cloud API provides an API to manage Cloud resources and services.

    API address is: https://api.___serverHost___/cloud


    # Authentication

    You can find the available authorization methods in this section:

    Authorization methods


    Project ID & Region ID


    Most endpoints require project_id and region_id path parameters.

    List Regions

    and

    List Projects

    to see available projects and regions.'
  version: 14.491.0
servers:
- url: https://api.___serverHost___/cloud
tags:
- name: Snapshots
paths:
  /v1/pricing/{project_id}/{region_id}/snapshots:
    post:
      operationId: SnapshotPricingHandler.post
      summary: Preview snapshot price
      description: Preview the billing price for snapshots.
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          format: int64
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          format: int64
          title: Region Id
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemPriceResponseSerializer'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SnapshotPricingRequestSerializer'
      tags:
      - Snapshots
  /v1/snapshots/{project_id}/{region_id}:
    post:
      operationId: SnapshotViewSet.post
      summary: Create snapshot
      description: Create a new snapshot from a volume.
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSnapshotSerializer'
      tags:
      - Snapshots
    get:
      operationId: SnapshotViewSet.get
      summary: List snapshots
      description: 'List all volume snapshots in the specified project and region.

        Results can be filtered by volume, instance, schedule, or lifecycle policy.'
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      - in: query
        name: instance_id
        required: false
        description: Optional. Filter snapshots by the instance whose volumes were snapshotted
        schema:
          description: Optional. Filter snapshots by the instance whose volumes were snapshotted
          examples:
          - 550e8400-e29b-41d4-a716-446655440000
          title: Instance Id
          type: string
      - in: query
        name: lifecycle_policy_id
        required: false
        description: Optional. Filter by lifecycle policy ID
        schema:
          description: Optional. Filter by lifecycle policy ID
          examples:
          - 1
          title: Lifecycle Policy Id
          type: integer
      - in: query
        name: limit
        required: false
        description: Limit of items on a single page
        schema:
          default: 1000
          description: Limit of items on a single page
          examples:
          - 1000
          exclusiveMinimum: 0
          maximum: 1000
          title: Limit
          type: integer
      - in: query
        name: offset
        required: false
        description: Offset in results list
        schema:
          default: 0
          description: Offset in results list
          examples:
          - 0
          minimum: 0
          title: Offset
          type: integer
      - in: query
        name: schedule_id
        required: false
        description: Optional. Filter by schedule ID
        schema:
          description: Optional. Filter by schedule ID
          examples:
          - 67baa7d1-08ea-4fc5-bef2-6b2465b7d227
          title: Schedule Id
          type: string
      - in: query
        name: volume_id
        required: false
        description: Optional. Filter by volume ID
        schema:
          description: Optional. Filter by volume ID
          examples:
          - 3ed9e2ce-f906-47fb-ba32-c25a3f63df4f
          title: Volume Id
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotCollectionSerializer'
      tags:
      - Snapshots
  /v1/snapshots/{project_id}/{region_id}/{snapshot_id}:
    get:
      operationId: SnapshotInstanceViewSet.get
      summary: Get snapshot
      description: Get detailed information about a specific snapshot.
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      - in: path
        name: snapshot_id
        required: true
        description: Unique identifier of the snapshot
        schema:
          description: Unique identifier of the snapshot
          examples:
          - 726ecfcc-7fd0-4e30-a86e-7892524aa483
          format: uuid4
          title: Snapshot Id
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotSerializer'
      tags:
      - Snapshots
    patch:
      operationId: SnapshotInstanceViewSet.patch
      summary: Update snapshot
      description: Rename snapshot or update tags.
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      - in: path
        name: snapshot_id
        required: true
        description: Unique identifier of the snapshot
        schema:
          description: Unique identifier of the snapshot
          examples:
          - 726ecfcc-7fd0-4e30-a86e-7892524aa483
          format: uuid4
          title: Snapshot Id
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotSerializer'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSnapshotSerializer'
      tags:
      - Snapshots
    delete:
      operationId: SnapshotInstanceViewSet.delete
      summary: Delete snapshot
      description: Delete a specific snapshot.
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      - in: path
        name: snapshot_id
        required: true
        description: Unique identifier of the snapshot
        schema:
          description: Unique identifier of the snapshot
          examples:
          - 726ecfcc-7fd0-4e30-a86e-7892524aa483
          format: uuid4
          title: Snapshot Id
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
      tags:
      - Snapshots
  /v1/snapshots/{project_id}/{region_id}/{snapshot_id}/metadata:
    put:
      operationId: SnapshotInstanceMetadataViewSet.put
      summary: Replace snapshot tags
      description: 'Replace all tags for a snapshot.

        Existing tags are deleted and replaced with the tags from the request.


        Use PATCH /v1/snapshots/{project_id}/{region_id}/{snapshot_id} instead


        Deprecated'
      parameters:
      - in: path
        name: project_id
        required: true
        description: Project ID
        schema:
          description: Project ID
          examples:
          - 1
          title: Project Id
          type: integer
      - in: path
        name: region_id
        required: true
        description: Region ID
        schema:
          description: Region ID
          examples:
          - 1
          title: Region Id
          type: integer
      - in: path
        name: snapshot_id
        required: true
        description: Unique identifier of the snapshot
        schema:
          description: Unique identifier of the snapshot
          examples:
          - 726ecfcc-7fd0-4e30-a86e-7892524aa483
          format: uuid4
          title: Snapshot Id
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotSerializer'
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTagsSerializer'
      tags:
      - Snapshots
components:
  schemas:
    TaskIDsSerializer:
      properties:
        tasks:
          description: "List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:\n  * `GET /v1/tasks/{task_id}` - Check individual task status and details\n  Poll task status until completion (`FINISHED`/`ERROR`) before proceeding with dependent operations."
          examples:
          - - d478ae29-dedc-4869-82f0-96104425f565
          items:
            type: string
          title: Tasks
          type: array
      required:
      - tasks
      title: TaskIDsSerializer
      type: object
    UpdateSnapshotSerializer:
      properties:
        name:
          description: Display name for the snapshot (3-63 chars). Used in customer portal and API. Does not affect snapshot data.
          examples:
          - my-backup-snapshot
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        tags:
          anyOf:
          - $ref: '#/components/schemas/UpdateTagsSerializer'
          - type: 'null'
          description: 'Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide key-value pairs to add or update tags. Set tag values to `null` to remove tags. Unspecified tags remain unchanged. Read-only tags are always preserved and cannot be modified.


            **Examples:**


            * **Add/update tags:** `{''tags'': {''environment'': ''production'', ''team'': ''backend''}}` adds new tags or updates existing ones.


            * **Delete tags:** `{''tags'': {''old_tag'': null}}` removes specific tags.


            * **Remove all tags:** `{''tags'': null}` removes all user-managed tags (read-only tags are preserved).


            * **Partial update:** `{''tags'': {''environment'': ''staging''}}` only updates specified tags.


            * **Mixed operations:** `{''tags'': {''environment'': ''production'', ''cost_center'': ''engineering'', ''deprecated_tag'': null}}` adds/updates ''environment'' and ''cost_center'' while removing ''deprecated_tag'', preserving other existing tags.


            * **Replace all:** first delete existing tags with null values, then add new ones in the same request.'
          examples:
          - my-tag: my-tag-value
            my-tag-to-remove: null
      title: UpdateSnapshotSerializer
      type: object
    CreateSnapshotSerializer:
      properties:
        description:
          description: Snapshot description
          examples:
          - Snapshot description
          title: Description
          type: string
        name:
          description: Snapshot name
          examples:
          - my-snapshot
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        tags:
          $ref: '#/components/schemas/CreateTagsSerializer'
          description: Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.
          examples:
          - my-tag: my-tag-value
        volume_id:
          description: Volume ID to make snapshot of
          examples:
          - 67baa7d1-08ea-4fc5-bef2-6b2465b7d227
          format: uuid4
          title: Volume Id
          type: string
      required:
      - volume_id
      - name
      title: CreateSnapshotSerializer
      type: object
    SnapshotCollectionSerializer:
      properties:
        count:
          description: Number of objects
          examples:
          - 1
          minimum: 0
          title: Count
          type: integer
        results:
          description: Objects
          items:
            $ref: '#/components/schemas/SnapshotSerializer'
          title: Results
          type: array
      required:
      - count
      - results
      title: SnapshotCollectionSerializer
      type: object
    PriceDisplayStatus:
      enum:
      - error
      - hide
      - show
      title: PriceDisplayStatus
      type: string
    TagSerializer:
      description: 'A tag is a key-value pair that can be associated with a resource,

        enabling efficient filtering and grouping for better organization and management.

        Some tags are read-only and cannot be modified by the user.

        Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.'
      properties:
        key:
          description: Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.
          examples:
          - my-tag
          title: Key
          type: string
        read_only:
          description: If true, the tag is read-only and cannot be modified by the user
          examples:
          - false
          title: Read Only
          type: boolean
        value:
          description: Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.
          examples:
          - my-tag-value
          title: Value
          type: string
      required:
      - key
      - value
      - read_only
      title: TagSerializer
      type: object
    CreateTagsSerializer:
      description: 'A tag is a key-value pair that can be associated with a resource,

        enabling efficient filtering and grouping for better organization and management.

        Some tags are read-only and cannot be modified by the user.

        Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.'
      propertyNames:
        description: 'Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or ''='' character. Trailing or leading whitespaces will be stripped. '
        examples:
        - my-tag
        maxLength: 255
        minLength: 1
        pattern: ^[^\s=]+$
      title: CreateTagsSerializer
      type: object
      additionalProperties:
        description: 'Tag value. Maximum 255 characters. Cannot contain tabs, newlines, or empty strings. Trailing or leading whitespaces will be stripped. '
        examples:
        - my-tag-value
        maxLength: 255
        minLength: 1
        pattern: ^[^ \t\n\r\f\v]([^\t\n\r\f\v]*[^ \t\n\r\f\v])?$
        type: string
    SnapshotSerializer:
      properties:
        created_at:
          description: Datetime when the snapshot was created
          examples:
          - 2019-05-29T05:32:41+0000
          format: date-time
          title: Created At
          type: string
        creator_task_id:
          description: Task that created this entity
          examples:
          - 2358e3b1-5c42-4705-8950-6ddcfc19c3bd
          format: uuid4
          title: Creator Task Id
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: Snapshot description
          examples:
          - Snapshot description
          title: Description
        id:
          description: Snapshot ID
          examples:
          - 726ecfcc-7fd0-4e30-a86e-7892524aa483
          format: uuid4
          title: Id
          type: string
        name:
          description: Snapshot name
          examples:
          - my-snapshot
          title: Name
          type: string
        project_id:
          description: Project ID
          examples:
          - 1337
          title: Project Id
          type: integer
        region:
          description: Region name
          examples:
          - Luxembourg 1
          title: Region
          type: string
        region_id:
          description: Region ID
          examples:
          - 7
          title: Region Id
          type: integer
        size:
          description: Snapshot size, GiB
          examples:
          - 20
          title: Size
          type: integer
        status:
          $ref: '#/components/schemas/SnapshotStatusChoices'
          description: Snapshot status
          examples:
          - available
        tags:
          description: List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.
          examples:
          - - key: my-tag
              read_only: false
              value: my-tag-value
          items:
            $ref: '#/components/schemas/TagSerializer'
          title: Tags
          type: array
        task_id:
          anyOf:
          - format: uuid4
            type: string
          - type: 'null'
          description: The UUID of the active task that currently holds a lock on the resource. This lock prevents concurrent modifications to ensure consistency. If `null`, the resource is not locked.
          examples:
          - null
          title: Task Id
        updated_at:
          description: Datetime when the snapshot was last updated
          examples:
          - 2019-05-29T05:39:20+0000
          format: date-time
          title: Updated At
          type: string
        volume_id:
          description: ID of the volume this snapshot was made from
          examples:
          - 67baa7d1-08ea-4fc5-bef2-6b2465b7d227
          format: uuid4
          title: Volume Id
          type: string
      required:
      - project_id
      - region_id
      - region
      - id
      - name
      - description
      - status
      - size
      - volume_id
      - created_at
      - updated_at
      - tags
      - creator_task_id
      - task_id
      title: SnapshotSerializer
      type: object
    UpdateTagsSerializer:
      propertyNames:
        description: 'Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or ''='' character. Trailing or leading whitespaces will be stripped. '
        examples:
        - my-tag
        maxLength: 255
        minLength: 1
        pattern: ^[^\s=]+$
      title: UpdateTagsSerializer
      type: object
      additionalProperties:
        anyOf:
        - maxLength: 255
          minLength: 1
          pattern: ^[^ \t\n\r\f\v]([^\t\n\r\f\v]*[^ \t\n\r\f\v])?$
          type: string
        - type: 'null'
        description: Tag value. Maximum 255 characters. Cannot contain tabs, newlines, empty string or start/end with whitespace. Trailing or leading whitespaces will be stripped. Set to `null` in order to delete this tag.
        examples:
        - my-tag-value
    SnapshotStatusChoices:
      enum:
      - available
      - backing-up
      - creating
      - deleted
      - deleting
      - error
      - error_deleting
      - restoring
      - unmanaging
      title: SnapshotStatusChoices
      type: string
    ItemPriceResponseSerializer:
      description: Response with prices per hour and per month
      examples:
      - currency_code: USD
        discount_percent: 0.16
        price_per_hour: 1
        price_per_month: 720
        price_status: show
        price_without_discount_per_month: 604.8
        tax_percent: 17.0
      properties:
        currency_code:
          anyOf:
          - enum:
            - AZN
            - EUR
            - USD
            type: string
          - type: 'null'
          description: Currency code (3 letter code per ISO 4217)
          title: Currency Code
        discount_percent:
          anyOf:
          - type: number
          - type: 'null'
          description: Actual discount relative value
          examples:
          - 0.16
          title: Discount Percent
        price_per_hour:
          anyOf:
          - type: number
          - type: 'null'
          description: Price of the item charged per hour
          examples:
          - 1.0
          title: Price Per Hour
        price_per_month:
          anyOf:
          - type: number
          - type: 'null'
          description: Price of the item charged per month
          examples:
          - 720.0
          title: Price Per Month
        price_status:
          $ref: '#/components/schemas/PriceDisplayStatus'
          description: Price status for the UI
          examples:
          - show
        price_without_discount_per_month:
          anyOf:
          - type: number
          - type: 'null'
          description: Total price VAT inclusive per month without discount
          examples:
          - 604.8
          title: Price Without Discount Per Month
        tax_percent:
          description: Tax rate applied to the subtotal, represented as a percentage
          examples:
          - 0
          - 17.0
          - 12.0
          title: Tax Percent
          type: number
      required:
      - currency_code
      - price_per_hour
      - price_per_month
      - price_without_discount_per_month
      - discount_percent
      - price_status
      - tax_percent
      title: ItemPriceResponseSerializer
      type: object
    SnapshotPricingRequestSerializer:
      examples:
      - volume_id: c23fb11d-4748-489e-a659-e888e121e825
      properties:
        volume_id:
          description: Volume ID
          examples:
          - c23fb11d-4748-489e-a659-e888e121e825
          title: Volume Id
          type: string
      required:
      - volume_id
      title: SnapshotPricingRequestSerializer
      type: object