SLAM API

Documentation
Overview

Holocentric supports an XML-based API that is based on OData and works with an XSD. The API supports a single RESTful service that can query and return item content. All API access is performed over HTTPS and accessed from a variable URI based on client installations and libraries. The API version 1.0 and as an original release is not a factor in the base URI.

Prerequisites
License

A separate API license key is required to be installed before a model is available over API.

API callers are required to be an authorised Modelpedia users and therefore follow standard subscription licensing model.

HTTP request methods

The BMS REST API strives to use appropriate HTTP methods for each action:

Method Action
HEAD Retrieve HTTP header information for one or more resources. Do not rely on this information between requests.
GET Retrieve one or more resources.
POST Create a resource or perform a custom action.
PATCH Partially update a resource.
PUT Completely replace a resource.
DELETE Delete a resource.
HTTP status codes

The following status codes will be sent from the Iconfinder REST API:

Status code Meaning
200 OK Indicates that a request completed successfully and the response contains data.
401 Unauthorized Error indicating that the request was performed with invalid or no authorization information.
404 Not Found Error indicating that the requested resource was not found or, alternatively, is not publicly available.
500 Internal Server Error
API Methods
Authentication

Holocentric BMS uses OAuth for the service authentication. This authentication mechanism requires an initial call to authenticate the API user based on the user name and password provided, and will then return an access token. This access token has a default expirt time of 8 hours. The API user must be a licensed user with the System Authority role ‘API Client (Full Read)’ assigned in order to be able to authenticate with the service. This user will have access to all mapped properties of the service.

The token that is received can then be used for subsequent API requests.

  • The API will require SSL to be enabled on any server providing the service.
  • Tokens must not be shared; only the requesting IP address can use the token provided.
  • Subsequent requests for a token within the 8 hour expiry period will not expire existing valid tokens.
POST /{server_url}/api/token
Obtain access token
POST /{server_url}/api/token

Prior to making any API requests, you need to obtain an access token that will be used for all subsequent API requests.

Path variables

server_url
string required

URL of the Modelpedia server. (e.g. http://modelpedia.com.au)

Request parameters

grant_type
string required

Use the value ‘password’ since you will be obtaining an access token using the your password credentials.

username
string required

The account username for which you want to obtain an access token.

password
string required

The account password for which you want to obtain an access token.

Request body

application/xml

Responses

200 OK

Upon successful submission of the API request, an XML response will be returned with the access token, token type issued and expiry time in milliseconds.

Body
Object
access_token
string
Example:
mUZrfE9MJySA1YTyGl9HsMjIypWNtl9jqjpfqxMKakdV00Fkh6C38gZkztrtCzWS
token_type
string
Example:
Bearer
Schema

These API requests are used to retreive the list of item types and associated relationships relating to a specified library.

Get item schema using library model uuid
GET /{server_url}/api/{model_choice}/{model_guid}/items/schema

This is to query the schema of a library using the model_guid. When using the library UUID, you are required to provide the model choice. (i.e. LatestDraft, LatestProposed otr LatestFinal)

Path variables

server_url
string required

Modelpedia server URL. e.g. http://www.modelpedia.com.au

model_choice
string required

Specifies if you want to retreive the draft, proposed or final version of the library. (e.g., LatestDraft, LatestProposed or LatestFinal)

model_guid
string required

The published model uuid. (i.e. the uuid of the specific library version.)

Responses

200 OK
Get item schema using specific model version
GET /{server_url}/api/{model_guid}/items/schema

This is used to query the items schema when you provide the UUID of the specific published model library.

Path variables

server_url
string required

Modelpedia server URL. (e.g., http://www.modelpedia.com.au)

model_guid
string required

The UUID of the published model library.

Items
List items of a specified type
GET /{server_url}/api/{model_guid}/items?$filter=isof('{item_type}')

This API request will retreive all items relating to the specified item type. The item type can be filtered out using the $filter paramater and the ‘isOf’ option. e.g., filter=isof(‘Business Rule’) will list out all items that are listed under item type ‘Business Rule’.

Path variables

server_url
string required
model_guid
string required

Request parameters

top
integer optional
skip
integer optional
count
boolean optional
Example 1
GET https://uat-313.holocentric.com/api/LatestDraft/{F43EC40F-B1EC-41DE-A59A-8E19705666D7}/items?$filter=isof('Branch')

Content-Type: application/xml

200 OK

<?xml version="1.0" encoding="utf-8"?>
<items xsi:schemaLocation="https://uat-313.holocentric.com/api/{FA404B82-C6AF-4AD2-B029-9FFEFBB959FD}/items/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Branch>
        <uuid>{0C1BACCE-3F97-475C-90EE-7E1E99BCD732}</uuid>
        <title>Branch - Octal Ocelot</title>
        <name>Branch - Octal Ocelot</name>
        <aliases>
            <value>Octal Ocelot</value>
        </aliases>
        <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;</description>
        <memberPositions>
            <PositionInstance refUuid="{31C7D04E-9E7C-4871-877A-1D8834E165A7}" />
        </memberPositions>
        <organisedBy>
            <Division refUuid="{7224D4CF-5988-4C9D-89A7-514047C3C55D}" />
        </organisedBy>
    </Branch>
    <Branch>
        <uuid>{1FDA8AF5-0F73-49EE-97C8-EF78DDA8C9DD}</uuid>
        <title>Branch - Monal Vast</title>
        <name>Branch - Monal Vast</name>
        <aliases>
            <value>Monal Vast</value>
        </aliases>
        <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;</description>
        <organisedBy>
            <Division refUuid="{7224D4CF-5988-4C9D-89A7-514047C3C55D}" />
        </organisedBy>
    </Branch>
    <Branch>
        <uuid>{2C8952F6-C1FA-4BC1-B101-D5183A20353C}</uuid>
        <title>Branch - Eel Chinchilla</title>
        <name>Branch - Eel Chinchilla</name>
        <aliases>
            <value>Eel Chinchilla</value>
        </aliases>
        <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;</description>
        <responsibleForReleaseOf>
            <InformationAsset refUuid="{7F5F3BD5-2A7A-4A01-A61D-750D73468EC8}" />
        </responsibleForReleaseOf>
    </Branch>
    <Branch>
        <uuid>{373596B5-3817-4EA0-BAD6-D030356F9A11}</uuid>
        <title>Branch - Newt Bellicose</title>
        <name>Branch - Newt Bellicose</name>
        <aliases>
            <value>Newt Bellicose</value>
        </aliases>
        <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;</description>
        <responsibleForReleaseOf>
            <InformationAsset refUuid="{B58EA090-62E1-4968-B7B8-480329C6F6AB}" />
        </responsibleForReleaseOf>
    </Branch>
    <Branch>
        <uuid>{39D54441-DD44-48B1-9962-8E9B477ACBAE}</uuid>
        <title>Branch - Karmic Iguanodon</title>
        <name>Branch - Karmic Iguanodon</name>
        <aliases>
            <value>Karmic Iguanodon</value>
        </aliases>
        <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;</description>
        <organisedBy>
            <Division refUuid="{7224D4CF-5988-4C9D-89A7-514047C3C55D}" />
        </organisedBy>
    </Branch>
</items>
Responses
400 bad_request
Applied to all operations

The request was malformed.

Body
Examples
{
    "code": "bad_request",
    "message": "The request was malformed."
}
400 invalid_<parameter>
Applied to all operations

The request was malformed. The query parameter parameter contains an invalid value.

401 bad_credentials
Applied to all operations

Invalid credentials were used to authenticate the request.

403 permission_denied
Applied to all operations

Permission to the requested resource was denied. This often means that a request should have been authenticated but wasn’t. dispatched to clean up the mess immediately!

403 insufficient_permissions
Applied to all operations

The authentication used does not have the required permissions to access the requested resource. Make sure the authentication was performed with the necessary scope.

403 not_purchased
Applied to all operations

The premium resource you’re trying to access has not been purchased by the authenticated user.

404 not_found
Applied to all operations

The requested resource does not exist or is not publicly available.

429 rate_limit_exceeded
Applied to all operations

API request rate limit exceeded. See rate limiting.

500 server_error
Applied to all operations

An internal server error occured. This shouldn’t happen, and robots will be dispatched to deal with it immediately.

Data Reference
Author

See Format Model bold

Object
author_id
number
Example:
2
name
string
Example:
Everaldo Coelho
iconsets_count
number
Example:
12
website_url
string
Example:
http://www.everaldo.com/
Category
Object
identifier
string
Example:
halloween
name
string
Example:
Halloween
Format
Object
preview_url
string
Example:
https://cdn1.iconfinder.com/data/icons/streamline-business-finance/60/cell-0-12-30.png
download_url
string
Example:
/icons/233366/formats/png/30/download
format
string
Example:
png
Types: Icon
IdAndName

Name - Description pair

Object
identifier
string
Example:
outline
name
string
Example:
Outline
Types: Icon Iconset
License
Object
url
string
Example:
https://www.iconfinder.com/licenses/basic
license_id
number
Example:
71
name
string
Example:
Basic license
scope
string
Example:
free
Types: Price
Price
Object
currency
string
Example:
USD
price
number
Example:
1
license
Types: Icon Iconset
Icon
Object
raster_sizes
Array
Object
size_width
number
Example:
30
size_height
number
Example:
30
formats
Array of Format
size
number
Example:
30
styles
Array of IdAndName
tags
Array of string
Example:
interest
icon_id
number
Example:
233366
vector_sizes
Array
Object
size_width
number
Example:
60
size_height
number
Example:
60
formats
Array of IdAndName
target_sizes
Array
Object
0
number
Example:
30
1
number
Example:
60
2
number
Example:
120
3
number
Example:
180
4
number
Example:
240
5
number
Example:
480
size
number
Example:
60
is_premium
boolean
Example:
true
published_at
string
Example:
2014-01-24T12:00:14.811Z
containers
Array of Format
prices
Array of Price
type
string
Example:
vector
categories
Array of IdAndName
temp

test enums

primiti
unknown
Iconset
Object
styles
Array of IdAndName
icons_count
number
Example:
50
author
is_premium
boolean
Example:
true
published_at
string
Example:
2014-05-29T11:38:43.852Z
prices
Array of Price
identifier
string
Example:
coloricons-5
type
string
Example:
vector
iconset_id
number
Example:
5411
categories
Array of IdAndName
name
string
Example:
Coloricons 5
User

[See docs](doc://Data transmission sdfwef)

Object
username
string
Example:
webalys
user_id
number
Example:
40097
name
string
Example:
Vincent Le Moign
iconsets_count
number
Example:
74
company
string
Example:
Webalys
is_designer
boolean
Example:
true
location
string
Example:
Hong Kong
social_twitter
string
Example:
webalys
social_dribbble
string
Example:
webalys
website_url
string
Example:
http://www.webalys.com/
Types: Iconset
SearchforiconsRequest

ewf

Object
coordinates
unknown
favorited
boolean
Example:
false
truncated
boolean
Example:
false
created_at
string
Example:
Wed Aug 29 17:12:58 +0000 2012
id_str
string
Example:
240859602684612608
entities
unknown
in_reply_to_user_id_str
unknown
contributors
unknown
text
string
Example:
Introducing the Twitter Certified Products Program: https://t.co/MjJ8xAnT
retweet_count
number
Example:
121
in_reply_to_status_id_str
unknown
id
number
Example:
240859602684612600
geo
unknown
retweeted
boolean
Example:
false
possibly_sensitive
boolean
Example:
false
in_reply_to_user_id
unknown
place
unknown
user
unknown
in_reply_to_screen_name
unknown
source
string
Example:
<a href="http://sites.google.com/site/yorufukurou/" rel="nofollow">YoruFukurou</a>
in_reply_to_status_id
unknown
Error model
IconSet Envelope

Response wrapper object

Object
total_count
string
iconsets
Object data_container

Data container

Test enum

ewfwef

string
Enumeration:
wefwef

value sescription!

Types: Icon