Product Metadata

Working with product metadata.

List Product Metadata

GET /v1/products/variations/:id/metadata

Retrieves a list of all the metadata stored against a product.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Return Type

array<ProductResourceMetadatas>

Rate limit cost

Each call to this endpoint deducts 3 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::PRODUCTS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "key": "my_key",
            "value": "some-value"
        }
    ]
}

Get Product Metadata

GET /v1/products/variations/:id/metadata/:key

Retrieves a single piece of metadata stored against a product.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}
  • :key: [a-zA-Z_][a-zA-Z0-9_]{0,}

Return Type

ProductResourceMetadatas

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::PRODUCTS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "key": "my_key",
        "value": "some-value"
    }
}

Set Product Metadata

PUT /v1/products/variations/:id/metadata/:key

Sets some metadata against a Product.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}
  • :key: [a-zA-Z_][a-zA-Z0-9_]{0,}

Request Body

UpdateResourceMetadata

Return Type

ProductResourceMetadatas

Types for the Request Body

UpdateResourceMetadata (root level)

KeyDescriptionTypesRestrictions
valueThe value.stringrequired
not null
max length is 65535

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
    "body" => json_encode([
        "value" => "some-value",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
  value: "some-value",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
    body: {
        "value": "some-value"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "value": "some-value"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "key": "my_key",
        "value": "some-value"
    }
}

Delete Product Metadata

DELETE /v1/products/variations/:id/metadata/:key

Deletes some metadata against a product.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}
  • :key: [a-zA-Z_][a-zA-Z0-9_]{0,}

Return Type

Empty.

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "DELETE",
    json: true,
    uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

null