{"info":{"_postman_id":"db6b47ec-2e27-150f-e40c-5f5742f2f134","name":"BLOCKv Publisher API","description":"<html><head></head><body><p>This API collection describes the endpoint provided by the BLOCKv platform for a vAtom developer or publisher.</p>\n<p>You need to load a BLOCKv-Environment in Postman to connect to the BLOCKv Server. The environment contains the API-Server URI and a App-ID (which has to be set in the Header for every Request) as a variable.</p>\n<p>All API calls require authentication. Once logged in successfully a session cookie is set and has to be added to every request for authentication.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"342127","collectionId":"db6b47ec-2e27-150f-e40c-5f5742f2f134","publishedId":"713ec9G","public":true,"customColor":{"top-bar":"000000","right-sidebar":"DDDDDD","highlight":"0087DD"},"publishDate":"2017-09-30T12:04:49.000Z"},"item":[{"name":"1. Login","item":[{"name":"v1.Login","id":"1c80b732-8e0f-ad05-ff7d-1b52a7323c22","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n\t\"email\" : \"admin@vatom_publisher.com\",\n\t\"password\": \"mysecret\"\n}\n\nor\n\n{\n\t\"phone_number\" : \"+1987654321\",\n\t\"password\": \"mysecret\"\n}\n"},"url":"{{BLOCKv-API}}/api/v1/user/login","description":"<p>Login using the email address or phone number assigned with your publisher admin account.</p>\n","urlObject":{"path":["api","v1","user","login"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1c80b732-8e0f-ad05-ff7d-1b52a7323c22"},{"name":"v1.Ping","id":"9fc4ce4e-a647-9773-58af-7b7c262158b9","request":{"method":"GET","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"formdata","formdata":[{"key":"avatar","value":"","type":"file"}]},"url":"{{BLOCKv-API}}/api/v1/general/ping","description":"<p>This API provides a simple response to test if the user has been logged in correctly.</p>\n","urlObject":{"path":["api","v1","general","ping"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9fc4ce4e-a647-9773-58af-7b7c262158b9"}],"id":"a2926ac1-c1a8-cf90-100b-b8ce09c953e0","description":"<p>To create vAtom Templates, Template-Variation, to emit individual vAtoms and to register Faces and Actions, you need to be logged in as an admin user of a registered vAtom publisher.</p>\n<p>Login is successful if either email or phone and password is given correctly otherwise it fails.</p>\n<p>The Login call will return adequate errors if the user does not exist or cannot be authenticated. </p>\n<p>Login returns an encrypted cookie to the client which needs to be used for calls which require authentication. So, after successful login, no auth is required anymore. The cookie will be revoked after logout and after a definable time and is bound to the host from which the authentication was initiated.</p>\n","_postman_id":"a2926ac1-c1a8-cf90-100b-b8ce09c953e0"},{"name":"2. Create vAtom Templates and Template-Variation","item":[{"name":"v1.CreatevAtomTemplate","id":"0a8d793b-08f9-e5e2-6376-6a4c3a96f594","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"template\": \"publisher_domain::Template_Name\",\n    \"public\": false,\n    \"cloneable\": false,\n\t\"vatom\": {\n      \t\"vAtomic::v1::vAtom::vAtomType\": {\n          \t\"root_type\": \"vAtomic::v1::vAtom::vAtomType\",\n          \t\"transferable\": true,\n          \t\"acquireable\": false,\n          \t\"title\": \"vAtom title\",\n          \t\"description\": \"vAtom description\",\n          \t\"category\": \"vAtom category\",\n          \t\"commerce\": {\n              \t\"redeemable\": false,\n              \t\"pricing\": {\n                  \t\"v1::PricingType\": \"\",\n                  \t\"value\": {\n                      \t\"currency\": \"\",\n                      \t\"price\": \"\",\n                      \t\"valid_from\": \"\",\n                      \t\"valid_through\": \"\",\n                      \t\"vat_included\": false\n                  \t}\n              \t}\n          \t},\n          \t\"states\": [\n              \t{\n                  \t\"name\": \"Activated\",\n                  \t\"value\": {\n                      \"type\": \"boolean\",\n                      \"value\": \"true\"\n                  \t}\n              \t}\n        \t],\n          \t\"resources\": [\n            \t{\n                \t\"name\": \"ActivatedImage\",\n                \t\"v1::ResourceType\": \"\",\n                \t\"value\": {\n                  \t\t\"v1::ResourceValueType\": \"ResourceValueType::URI\",\n                  \t\t\"value\": \"\"\n                \t}\n            \t},\n            \t{\n                \t\"name\": \"CardImage\",\n                \t\"v1::ResourceType\": \"\",\n                \t\"value\": {\n                \t\t\"v1::ResourceValueType\": \"ResourceValueType::URI\",\n                \t\t\"value\": \"\"\n                }\n            }\n        \t],\n        \t\"visibility\": {\n              \"type\": \"owner\",\n              \"value\": \"*\"\n            }\n    \t},\n    \t\"private\": {\n    \t\t\"my_own_property\": \"\"\n    \t}\n\t}\n}"},"url":"{{BLOCKv-API}}/api/v1/currentuser/vatom/template","description":"<p>The vAtom Template contains the meta section and the actual vAtom data structure. </p>\n<p>The meta section contains the following properties to be set:\n<code>template</code>, specifies the Template-Name and has to be a unique string beginning with the publisher domain name. \n<code>public</code>, true or false defines if the vAtom Template is visible to other publisher or only to admins of your domain.\n<code>cloneable</code>, true or false defines if the vAtoms based on this template can be shared with other users by sending them a clone of your vAtom using a Clone Action.</p>\n<p>The <code>vatom</code> part of the template includes the root (<code>vAtomic::v1::vAtom::vAtomType</code>) and <code>private</code> section:</p>\n<p><code>root_type</code> defines the vAtomType for example, <code>vAtomic::v1::vAtom::vAtomType</code>,\n<code>transferable</code>, true or false defines if the vAtom can be transferred with a Transfer Action\n<code>acquireable</code>, true or false defines if the vAtom can be acquired with a Acquire Action\n<code>title</code>, specifies a title or name of the vAtom\n<code>description</code>, you can add a text to describe  the function of the vAtom\n<code>category</code>, you can define a category for the vAtom\n<code>commerce</code> defines the <code>pricing</code> of the vAtom based on a <code>currency</code> and <code>price</code>\nand if it is <code>redeemable</code> with a Redeem Action.\n<code>states</code>, includes the states defined for the vAtom. At least one State has to be defines, otherwise the default Activated State for\n<code>resources</code>, defines an array of Resources of the vAtom. A resource can have any custom defined <code>name</code>, however we recommend to use at least one image resource called \"ActivatedImage\" which is a simple icon image to represent the vAtom. As <code>v1::ResourceType</code>, we currently support:<br />\n<code>ResourceType::Image::GIF</code>, <code>ResourceType::Image::PNG</code>, <code>ResourceType::Image::JPEG</code><br /> <code>ResourceType::3D::Geometry</code>, <code>ResourceType::3D::Material</code><br /> <code>ResourceType::Text::Plain</code>, <code>ResourceType::Text::HTML</code><br /> <code>ResourceType::Code::Javascript</code>, <code>ResourceType::Code::Golang</code><br /> <code>ResourceType::Audio::MPEG</code>, <code>ResourceType::Audio::WAV</code><br /> <code>ResourceType::Video::AVI</code>, <code>ResourceType::Video::MPEG</code>, <code>ResourceType::Video::Quicktime</code>, <code>ResourceType::Video::ASF</code></p>\n<p>The <code>value</code>field is the URI pointing to the Resource specified.\nThe <code>type</code>field in <code>visibility</code> can be set to <code>owner</code> is the vAtom can only be discovered by the current owner or <code>public</code> if its visible to all users. If a vAtom is part of a Folder it is set to <code>container</code> to inherit the visibility of the parent folder.</p>\n<p>In the <code>private</code> section you can define custom properties, states and resources.</p>\n","urlObject":{"path":["api","v1","currentuser","vatom","template"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0a8d793b-08f9-e5e2-6376-6a4c3a96f594"},{"name":"v1.GetvAtomTemplates","id":"89d9d4eb-9fac-4363-5d47-b1c7dcfc6211","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"ids\": [ \n        \"id_1\",\n        \"id_2\"\n    ],\n    \"parent_id\": \".\",\n    \"transferable\": false,\n    \"acquireable\": false,\n    \"visibility\": {\n        \"type\": \"owner\",\n        \"value\": \"*\"\n    }"},"url":"{{BLOCKv-API}}/spec/templates","description":"<p>This endpoint will return a list of currently registered vAtom Templates visible to you.</p>\n","urlObject":{"path":["spec","templates"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"89d9d4eb-9fac-4363-5d47-b1c7dcfc6211"},{"name":"v1.GetvAtomTemplate","id":"5f257a63-c5e8-6693-526c-ceb6ed1c7a21","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"ids\": [ \n        \"id_1\",\n        \"id_2\"\n    ],\n    \"parent_id\": \".\",\n    \"transferable\": false,\n    \"acquireable\": false,\n    \"visibility\": {\n        \"type\": \"owner\",\n        \"value\": \"*\"\n    }"},"url":"{{BLOCKv-API}}/spec/template/:Template-Name","description":"<p>This will return the full JSON of a specific vAtom-Template</p>\n","urlObject":{"path":["spec","template",":Template-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Template-Name"}]}},"response":[],"_postman_id":"5f257a63-c5e8-6693-526c-ceb6ed1c7a21"},{"name":"v1.CreatevAtomTemplateVariation","id":"8a90db94-b59f-f2a9-8695-3be264ab8311","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"template\": \"publisher_domain::Template_Name\",\n    \"template_variation\": \"publisher_domain::Template_Name::Template-Variation_Name\",\n    \"public\": false,\n    \"cloneable\": false,\n    \"redeemable\": {},\n    \"auto_create_on_acquire\": false,\n    \"vatom\": {\n    \"vAtomic::v1::vAtom::vAtomType\": {\n    \t\"transferable\": true,\n    \t\"acquireable\": false,\n    \t\"title\": \"Example\", \n    \t\"category\": \"Utilities\",\n    \t\"description\": \"This is just a demo\",\n    \t\"commerce\": {\n        \t\"redeemable\": false,\n        \t\"pricing\": {\n        \t\t\"v1::PricingType\": \"Fixed\",\n        \t\t\"value\": {\n            \t\t\"currency\": \"\",\n            \t\t\"price\": \"0\",\n            \t\t\"valid_from\": \"*\",\n            \t\t\"valid_through\": \"*\",\n            \t\t\"vat_included\": false\n        \t\t\t}\n        \t\t}\n    \t\t},\n    \t\"resources\": [\n        \t{\n        \t\t\"name\": \"ActivatedImage\",\n        \t\t\"v1::ResourceType\": \"ResourceTypes::Image::PNG\",\n        \t\t\"value\": {\n            \t\t\"v1::ResourceValueType\": \"ResourceValueType::URI\",\n            \t\t\"value\": \"https://cdn.blockv.net/blockv.example/Folder/example.png\"\n        \t\t}\n        \t},\n        \t{\n        \t\t\"name\": \"CardImage\",\n        \t\t\"v1::ResourceType\": \"ResourceTypes::Image::JPEG\",\n        \t\t\"value\": {\n            \t\t\"v1::ResourceValueType\": \"ResourceValueType::URI\",\n            \t\t\"value\": \"https://cdn.blockv.net/blockv.example/Folder/example.jpg\"\n        \t\t}\n    \t\t}\n        \n    \t],\n    \t\"visibility\": {\n        \t\"type\": \"owner\",\n        \t\"value\": \"*\"\n    \t}\n    },\n    \"private\": {\n    \t\t\"my_own_property\": \"This is just a text\"\n    \t}\n\t}\n}"},"url":"{{BLOCKv-API}}/api/v1/currentuser/vatom/template/variation","description":"<p>By creating a vAtom Template-Variation you specify the all values for the defined structure of the Template. You can not add additional properties or change the name of a property. The structure is defined in the Template.</p>\n<p>The meta section of the Template-Variation contains the follwing properties: \n<code>template</code>, spcifies the Template-Name on which the Variation is based on\n<code>template_variation</code>, is the name of the Template-Variation and like the Template, it has to begin with you pblisher domain followed by a unique string.\n<code>public</code>, true or false defines if the vAtom Template-Variation is visible to other publisher or only to admins of your domain.\n<code>cloneable</code>, false (by default). is set to true (also the Template has to be set to true), you can define a set of cloneable attributes:\n<code>max_clones_per_instance</code>, <code>max_clones_total</code>, <code>per_clone_gain</code>, <code>per_clone_gain_deduction</code>\n<code>redeemable</code>, defines the return values for a Redemption Action.\n<code>auto_create_on_acquire</code>, false (by default), if set to true, a AcquirePubVariation Action will automatically generate a new vAtom.</p>\n<p>In the <code>vatom</code>section the values of the defines data structre are set.</p>\n","urlObject":{"path":["api","v1","currentuser","vatom","template","variation"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8a90db94-b59f-f2a9-8695-3be264ab8311"},{"name":"v1.GetvAtomTemplateVariations","id":"20a26a1a-1571-095a-2d79-ffd103080d33","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"ids\": [ \n        \"id_1\",\n        \"id_2\"\n    ],\n    \"parent_id\": \".\",\n    \"transferable\": false,\n    \"acquireable\": false,\n    \"visibility\": {\n        \"type\": \"owner\",\n        \"value\": \"*\"\n    }"},"url":"{{BLOCKv-API}}/spec/templatevariations/:Template-Name","description":"<p>This endpoint lists all Template-Variations created for a specific Template.</p>\n","urlObject":{"path":["spec","templatevariations",":Template-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Template-Name"}]}},"response":[],"_postman_id":"20a26a1a-1571-095a-2d79-ffd103080d33"},{"name":"v1.GetvAtomTemplateVariation","id":"448bb176-9a6b-70a1-b26c-9b6e7d1d591b","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"ids\": [ \n        \"id_1\",\n        \"id_2\"\n    ],\n    \"parent_id\": \".\",\n    \"transferable\": false,\n    \"acquireable\": false,\n    \"visibility\": {\n        \"type\": \"owner\",\n        \"value\": \"*\"\n    }"},"url":"{{BLOCKv-API}}/spec/templatevariation/:Template-Variation-Name","description":"<p>This endpoint returns the full JSON of the specified Template-Variation.</p>\n","urlObject":{"path":["spec","templatevariation",":Template-Variation-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Template-Variation-Name"}]}},"response":[],"_postman_id":"448bb176-9a6b-70a1-b26c-9b6e7d1d591b"}],"id":"3cb8b11b-22fd-6d73-ea4b-3f4627d34cce","description":"<p>As a first step to create vAtoms you need to create a vAtom Template and a Template-Variation.</p>\n<p>The Template defines root vAtom type and the data structure for properties, states and resources. Every vAtom Template contains a number of mandatory root properties and one state.</p>\n","_postman_id":"3cb8b11b-22fd-6d73-ea4b-3f4627d34cce"},{"name":"3. Register vAtom Faces","item":[{"name":"v1.RegisterFace","id":"e84a9d3f-ae82-5d0d-a268-76eac83089f9","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"template\": \"publisher_name::v1::Template-Name\",\n    \"display_url\": \"native://image\",\n    \"package_url\": \"native://image\",\n    \"constraints\": {\n        \"bluetooth_le\": false,\n        \"contact_list\": false,\n        \"gps\": false,\n        \"view_mode\": \"icon\",\n        \"platform\": \"ios\",\n        \"three_d\": false,\n        \"quality\": \"high\"\n    },\n    \"resources\": [\"ActivatedImage\"]\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/face","description":"<p>This is an example of a icon face for iOS platform using a native (built-in) face displaying the <code>ActivatedImage</code> resource. In the icon view of a viewer only built-in faces are supported.</p>\n<p>Supported <code>platform</code> constraints are <code>ios</code>, <code>android</code>,  <code>web</code> and <code>generic</code>. The available <code>view_mode</code> are <code>icon</code>, <code>card</code>, <code>fullscreen</code>, <code>background</code>, <code>canvas</code> and <code>external</code>.</p>\n","urlObject":{"path":["api","v1","publisher","face"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e84a9d3f-ae82-5d0d-a268-76eac83089f9"},{"name":"v1.GetFaces","id":"bbca7c8c-c0b8-5554-22eb-ff8473695f11","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{BLOCKv-API}}/spec/faces/:Template-Name","description":"<p>This endpoint returns a list of registered faces for a specific Template.</p>\n","urlObject":{"path":["spec","faces",":Template-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Template-Name"}]}},"response":[],"_postman_id":"bbca7c8c-c0b8-5554-22eb-ff8473695f11"},{"name":"v1.PatchFace","id":"9da88f49-f248-2bf2-3a39-62e9bafae0de","request":{"method":"PATCH","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"\",\n    \"properties\": {\n        \"display_url\": null,\n        \"package_url\": null,\n        \"constraints\": {},\n        \"resources\": null\n    }\n}\n    "},"url":"{{BLOCKv-API}}/api/v1/publisher/face","description":"<p>A face configuration can be updated with a PATCH call for a face <code>id</code> and the new properties.</p>\n","urlObject":{"path":["api","v1","publisher","face"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9da88f49-f248-2bf2-3a39-62e9bafae0de"},{"name":"v1.DeleteFace","id":"14dce379-eb55-51b8-95df-5263f3a87e31","request":{"method":"DELETE","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":""},"url":"{{BLOCKv-API}}/api/v1/publisher/face/:Face-Id","description":"<p>A registered face can be deleted based on the id of the face.</p>\n","urlObject":{"path":["api","v1","publisher","face",":Face-Id"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Face-Id"}]}},"response":[],"_postman_id":"14dce379-eb55-51b8-95df-5263f3a87e31"}],"id":"87e1c493-21c5-4f53-e40e-ff33bf4b895c","description":"<p>After creating the vAtom Template and Template-Variation, the faces have to be configured to specify the rendering of the vAtom in a Viewer.</p>\n<p>The face configuration contains a number of set properties.\n<code>template</code>, is the Template-Name for which the face is registered.\n<code>display_url</code>and <code>package_url</code> define the URI for the Viewer to download the face code as index.html or packaged .zip\n<code>constraints</code>, define the Viewer parameters for which the face is build. If it requires <code>bluetooth_le</code>support, access to <code>contact_list</code> or <code>gps</code>, if it requires <code>three_d</code>support, a <code>quality</code>and the target <code>view_mode</code> which can be <code>icon</code>, <code>card</code>or <code>fullscreen</code> and the <code>platform</code> which can be <code>ios</code>, <code>android</code> or  <code>web</code>\nIn <code>resources</code>you have the specifiy an array of resource names defined in the Template and relevant for this face.</p>\n","_postman_id":"87e1c493-21c5-4f53-e40e-ff33bf4b895c"},{"name":"4. Register vAtom Actions","item":[{"name":"v1.RegisterAction (Transfer)","id":"ff255da9-22cc-e0a9-3ad9-230f618366c9","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Transfer\",\n    \"reactor\": \"vatomic://v1/Transfer\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\",\n            \"new.owner.email|new.owner.phone_number|new.owner.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {\n        \"auto_create_landing_page\": \"http://viewer.vatomic.io/#\",\n        \"auto_create_mode\": \"claim\",\n        \"auto_create_non_existing_recipient\": true\n    },\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": true,\n        \"msg\": \"You received a vAtom\",\n        \"custom\": {}\n    \t}\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ff255da9-22cc-e0a9-3ad9-230f618366c9"},{"name":"v1.RegisterAction (Trade)","id":"1a59e906-33c7-45ab-c31a-87e5b3b25be9","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Trade\",\n    \"reactor\": \"vatomic://v1/Trade\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\",\n            \"trade.template_variation\",\n            \"trade.conditions\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n    \t\"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n        }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1a59e906-33c7-45ab-c31a-87e5b3b25be9"},{"name":"v1.RegisterAction (Acquire)","id":"71ccfc60-2aad-158e-c36a-b8b64d47b6b4","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Acquire\",\n    \"reactor\": \"vatomic://v1/AcquireWithCoins\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n    \t\"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n        }\n}\n"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"71ccfc60-2aad-158e-c36a-b8b64d47b6b4"},{"name":"v1.RegisterAction (AcquirePubVariation)","id":"5b1cfdb2-9023-45b7-3001-db2bc2b079c8","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::AcquirePubVariation\",\n    \"reactor\": \"vatomic://v1/AcquirePubVariationWithCoins\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    \t}\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5b1cfdb2-9023-45b7-3001-db2bc2b079c8"},{"name":"v1.RegisterAction (Activate)","id":"f29dfcc5-ec36-8073-6f22-ab5d774b61ed","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Activate\",\n    \"reactor\": \"vatomic://v1/PackageActivate\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f29dfcc5-ec36-8073-6f22-ab5d774b61ed"},{"name":"v1.RegisterAction (Discover)","id":"5e4cfe18-65cb-a923-b4eb-9decb3978b25","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Discover\",\n    \"reactor\": \"vatomic://v1/Discover\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtoms|vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e4cfe18-65cb-a923-b4eb-9decb3978b25"},{"name":"v1.RegisterAction (Drop)","id":"607c8b2c-944a-8e3e-8f15-82f855cc4b9c","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Drop\",\n    \"reactor\": \"vatomic://v1/Drop\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\",\n            \"geo.pos\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"607c8b2c-944a-8e3e-8f15-82f855cc4b9c"},{"name":"v1.RegisterAction (Pickup)","id":"6fca4ca9-5021-3aa2-ebd5-25df420b2f03","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Pickup\",\n    \"reactor\": \"vatomic://v1/Pickup\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6fca4ca9-5021-3aa2-ebd5-25df420b2f03"},{"name":"v1.RegisterAction (Clone)","id":"35865e4a-6393-f41d-0ac1-473e038ea747","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Clone\",\n    \"reactor\": \"vatomic://v1/Clone\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {\n    \t\"auto_create_landing_page\": \"http://viewer.vatomic.io/#\",\n        \"auto_create_mode\": \"claim\",\n        \"auto_create_non_existing_recipient\": true\n        },\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"a vAtom has been shared with you\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"35865e4a-6393-f41d-0ac1-473e038ea747"},{"name":"v1.RegisterAction (CloningHistory)","id":"fc50bfcb-9357-a5b0-5e39-3aec186012d5","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::CloningHistory\",\n    \"reactor\": \"vatomic://v1/CloningHistory\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fc50bfcb-9357-a5b0-5e39-3aec186012d5"},{"name":"v1.RegisterAction (Redeem)","id":"5ca0a5b3-c4df-80ec-eb22-5e0bea5ff979","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"publisher_name::v1::Template_Name::Action::Redeem\",\n    \"reactor\": \"vatomic://v1/Redeem\",\n    \"wait\": true,\n    \"rollback\": false,\n    \"abort_on_pre_error\": true,\n    \"abort_on_post_error\": false,\n    \"abort_on_main_error\": true,\n    \"timeout\": 10000,\n    \"guest_user\": true,\n    \"state_impact\": [\n        \"this.owner\"\n    ],\n    \"policy\": {\n        \"pre\": [],\n        \"rule\": \"\",\n        \"post\": []\n    },\n    \"params\": {\n        \"input\": [\n            \"this.id\"\n        ],\n        \"output\": [\n            \"vAtomic::v1::Error\"\n        ]\n    },\n    \"config\": {},\n    \"limit_per_user\": 0,\n    \"action_notification\": {\n        \"on\": false,\n        \"msg\": \"a vAtom has been redeemed\",\n        \"custom\": {}\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5ca0a5b3-c4df-80ec-eb22-5e0bea5ff979"},{"name":"v1.GetActions","id":"08f430ed-4320-2f24-45c0-77bfcea49fcf","request":{"method":"GET","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"parent_id\": \".\",\n    \"page_token\": \"\",\n    \"page_amount\": 0\n}"},"url":"{{BLOCKv-API}}/api/v1/currentuser/actions/:vAtom-Template-Name","description":"<p>This endpoint returns a list of configured Actions for a given Template-Name.</p>\n","urlObject":{"path":["api","v1","currentuser","actions",":vAtom-Template-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"vAtom-Template-Name"}]}},"response":[],"_postman_id":"08f430ed-4320-2f24-45c0-77bfcea49fcf"},{"name":"v1.GetAction","id":"2bced52c-d1de-e1ca-c74e-a9baa0d4504a","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{BLOCKv-API}}/spec/action/:Template-Name::Action-Name","description":"<p>This endpoint will return the Actions registered for a specific Template.</p>\n","urlObject":{"path":["spec","action",":Template-Name::Action-Name"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[{"type":"any","value":"","key":"Template-Name"}]}},"response":[],"_postman_id":"2bced52c-d1de-e1ca-c74e-a9baa0d4504a"},{"name":"v1.PatchAction","id":"e1cd3afb-e6b4-478b-3d54-217008de9fec","request":{"method":"PATCH","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"Template-Name::Action-Name\",\n    \"properties\": {\n        \"policy\": {},\n        \"params\": {\n            \"input\": null,\n            \"output\": null\n        }\n    }\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","description":"<p>Based on the Action Name (as <code>id</code>) you can PATCH the properties of a registered Action.</p>\n","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e1cd3afb-e6b4-478b-3d54-217008de9fec"},{"name":"v1.DeleteAction","id":"75672955-855e-22f3-5113-ef25c2f305ff","request":{"method":"DELETE","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"\n{\n  \"id\": \"Template-Name::Action-Name\"\n}"},"url":"{{BLOCKv-API}}/api/v1/publisher/action","description":"<p>You can delete a registered Action with this endpoint.</p>\n","urlObject":{"path":["api","v1","publisher","action"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"75672955-855e-22f3-5113-ef25c2f305ff"}],"id":"978f7f36-e94f-32d1-43f7-152bf5bf1b71","description":"<p>For a viewer to interact with vAtoms, you have to register the desired Actions for a vAtom-Template. This sections provides the examples to register the BLOCKv built-in Actions for Transfer, Trade, Acquire, AcquirePubVariation, Drop, Pickup, Clone, CloningHistory and Redeem.</p>\n","_postman_id":"978f7f36-e94f-32d1-43f7-152bf5bf1b71"},{"name":"5. Emit and Transfer vAtoms","item":[{"name":"v1.CreatevAtom","id":"a5fd9ae4-b663-af3c-9b42-f0a0d4767bc8","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"template_variation\": \"publisher_name::v1::Example\",\n    \"num\": 1\n}"},"url":"{{BLOCKv-API}}/api/v1/currentuser/vatom","description":"<p>You can emit vAtoms based on a <code>template_variation</code> and specify the quantity with <code>num</code>. The emitted vAtoms are in the inventory of the logged in admin user.</p>\n","urlObject":{"path":["api","v1","currentuser","vatom"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a5fd9ae4-b663-af3c-9b42-f0a0d4767bc8"},{"name":"v1.CurrentUserAction (Transfer)","id":"a95b11fe-5ade-70ad-16ca-3a9477eb13dc","request":{"method":"POST","header":[{"key":"X-BLOCKv-App-Id","value":"{{App-ID}}"}],"body":{"mode":"raw","raw":"{\n    \"this.id\": \"vAtom-Id\",\n    \"new.owner.email\": \"you@publisher.com\"\n}"},"url":"{{BLOCKv-API}}/api/v1/currentuser/action/Transfer","description":"<p>If the Transfer Action is registered for your vAtom Template you can now send the emitted vAtom to another user.</p>\n","urlObject":{"path":["api","v1","currentuser","action","Transfer"],"host":["{{BLOCKv-API}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a95b11fe-5ade-70ad-16ca-3a9477eb13dc"}],"id":"0f04517d-2097-9f14-d8c9-e3629a17fbb4","_postman_id":"0f04517d-2097-9f14-d8c9-e3629a17fbb4","description":""}]}