PREVIEW Api Suite 3.6.0 (Current)
API change historyThis API Suite contains a complete list of Panviva's Version 3.6.0 API offerings, backed by a static (mock) data-set.
Content APIs perform resource related operations within Panviva products, e.g. document
, folder
, file
, container
, image
.
Live APIs enable real-time communications with online users on our client application.
Artefact APIs interact with curated Panviva content, created by the Digital Orchestrator.
Request
Request URL
Request parameters
-
string
Format - uuid. The id (ID) of an artefact
Request body
Responses
200 OK
The operation is successful and returns with the requested resource. An example of a successful response can be seen in the Sample payload.
Representations
{
"links": [
{
"href": "https://dev.panviva.com/v3/marvel/resources/document/343?version=229",
"rel": "document",
"type": "GET"
}
],
"title": "About Marvel Cinematic Universe",
"content": [
{
"mediaType": "text/plain",
"text": "The Marvel Cinematic Universe (MCU) is an American media franchise and shared universe that is centered on a series of superhero films.",
"href": null,
"resourceLocation": null
},
{
"mediaType": "image/jpeg",
"text": null,
"href": "https://terrigen-cdn-dev.marvel.com/content/prod/1x/mi-promo-featured-half-dsk-1140x680.jpg",
"resourceLocation": "external"
},
{
"mediaType": "text/plain",
"text": "The franchise has been commercially successful and has generally received a positive critical response",
"href": null,
"resourceLocation": null
}
],
"simpleContent": "The Marvel Cinematic Universe (MCU) is an American media franchise and shared universe that is centered on a series of superhero films.\nThe franchise has been commercially successful and has generally received a positive critical response",
"variations": [
{
"content": [
{
"mediaType": "text/plain",
"text": "The Marvel Cinematic Universe is a shared universe that is centered on a series of superhero films.",
"href": null,
"resourceLocation": null
}
],
"simpleContent": "The Marvel Cinematic Universe is a shared universe that is centered on a series of superhero films.",
"channels": [
{
"id": 0,
"name": "Amazon Alexa"
}
],
"id": 2,
"dateCreated": "2018-09-10T04:12:52.83+00:00",
"dateModified": "2018-09-10T04:12:52.83+00:00"
}
],
"category": {
"name": "Marvel Cinematic Universe",
"id": 1,
"dateCreated": "2018-09-05T04:12:52.83+00:00",
"dateModified": "2018-09-05T04:12:52.83+00:00"
},
"primaryQuery": "What is the Marvel Cinematic Universe?",
"queryVariations": [
{
"id": 12,
"query": "What fictional universe does Captain America belong to?"
}
],
"panvivaDocumentId": 235,
"panvivaDocumentVersion": 5,
"metaData": {
"Superheroes": {
"values": [
"Captain America",
"Captain Marvel"
],
"dataType": "string"
},
"Villains": {
"values": [
"Thanos"
],
"dataType": "string"
}
},
"id": "ae18c1ae-dd63-445b-b69a-46d89f8c315c",
"dateCreated": "2018-09-09T04:12:52.83+00:00",
"dateModified": "2018-09-10T04:12:52.83+00:00"
}
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"href": {
"type": "string"
},
"rel": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
},
"title": {
"type": "string"
},
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mediaType": {
"type": "string"
},
"text": {
"type": "string"
},
"href": {
"type": "string"
},
"resourceLocation": {
"type": "string"
}
}
}
},
"simpleContent": {
"type": "string"
},
"variations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mediaType": {
"type": "string"
},
"text": {
"type": "string"
},
"href": {
"type": "string"
},
"resourceLocation": {
"type": "string"
}
}
}
},
"simpleContent": {
"type": "string"
},
"channels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
}
},
"id": {
"type": "integer"
},
"dateCreated": {
"format": "date-time",
"type": "string"
},
"dateModified": {
"format": "date-time",
"type": "string"
}
}
}
},
"category": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"id": {
"type": "integer"
},
"dateCreated": {
"format": "date-time",
"type": "string"
},
"dateModified": {
"format": "date-time",
"type": "string"
}
}
},
"primaryQuery": {
"type": "string"
},
"queryVariations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"query": {
"type": "string"
}
}
}
},
"panvivaDocumentId": {
"type": "integer"
},
"panvivaDocumentVersion": {
"type": "integer"
},
"metaData": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string"
}
},
"dataType": {
"type": "string"
}
}
}
},
"id": {
"format": "uuid",
"type": "string"
},
"dateCreated": {
"format": "date-time",
"type": "string"
},
"dateModified": {
"format": "date-time",
"type": "string"
}
}
}
400 Bad Request
Bad Request - The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications.
Representations
{
"errorCode": "400",
"message": "Bad Request"
}
403 Forbidden
Out of call volume quota.
Representations
{
"errorCode": "403",
"message": "Out of call volume quota"
}
404 Not Found
Document not found - The server has not found anything matching the request URI.
Representations
{
"errorCode": "404",
"message": "Not Found"
}
405 Method Not Allowed
Method Not Allowed - The method specified in the request is not allowed for the resource identified by the request URI.
Representations
{
"errorCode": "405",
"message": "Method Not Allowed"
}
406 Not Acceptable
Not Acceptable - The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request. If accept headers is specified, application/json must be the only media type.
Representations
{
"errorCode": "406",
"message": "Not Acceptable"
}
415 Unsupported Media Type
Unsupported Media Type - The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method. The only supported media type is application/json.
Representations
{
"errorCode": "415",
"message": "Unsupported Media Type"
}
422 Unprocessable Entity
Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors.
Representations
{
"errorCode": "422",
"message": "Unprocessable Entity"
}
429 Too many requests
Too many requests - The number of requests has reached the plan’s rate limit.
Representations
{
"errorCode": "429",
"message": "Too Many Requests"
}
503 Service Unavailable
Service Unavailable - Panviva servers are under maintenance.
Representations
{
"errorCode": "503",
"message": "Service Unavailable"
}
Code samples
@ECHO OFF
curl -v -X GET "https://api.panviva.com/v3/preview/resources/artefact/{id}"
--data-ascii "{body}"
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
var uri = "https://api.panviva.com/v3/preview/resources/artefact/{id}?" + queryString;
var response = await client.GetAsync(uri);
}
}
}
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample
{
public static void main(String[] args)
{
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://api.panviva.com/v3/preview/resources/artefact/{id}");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
// Request body
StringEntity reqEntity = new StringEntity("{body}");
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://api.panviva.com/v3/preview/resources/artefact/{id}?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
},
type: "GET",
// Request body
data: "{body}",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* path = @"https://api.panviva.com/v3/preview/resources/artefact/{id}";
NSArray* array = @[
// Request parameters
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
// Request headers
// Request body
[_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if (nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if (nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://api.panviva.com/v3/preview/resources/artefact/{id}');
$url = $request->getUrl();
$headers = array(
// Request headers
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_GET);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
}
params = urllib.urlencode({
})
try:
conn = httplib.HTTPSConnection('api.panviva.com')
conn.request("GET", "/v3/preview/resources/artefact/{id}?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
}
params = urllib.parse.urlencode({
})
try:
conn = http.client.HTTPSConnection('api.panviva.com')
conn.request("GET", "/v3/preview/resources/artefact/{id}?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://api.panviva.com/v3/preview/resources/artefact/{id}')
request = Net::HTTP::Get.new(uri.request_uri)
# Request body
request.body = "{body}"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body