Skip to content

Instantly share code, notes, and snippets.

@drwasho
Created September 11, 2018 02:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drwasho/70f2dc010ae8192d79b6dc1f55c33c7b to your computer and use it in GitHub Desktop.
Save drwasho/70f2dc010ae8192d79b6dc1f55c33c7b to your computer and use it in GitHub Desktop.
swagger: '2.0'
info:
version: '1.0'
title: OpenBazaar API
description: >-
The OpenBazaar networking daemon combines a forked version of IPFS, a
Bitcoin wallet, and a peer-to-peer contracting system. This JSON API is the
primary mechanism for controlling the node. It offers a RESTful api for
building user interfaces as well as a number of RPC calls. In this
documentation you'll find a full list of API calls and example usages.
# Authentication
When running on localhost (the default), the API is unauthenticated. You can
enable authentication by setting the config file as follows:
```
{
"JSON-API": {
"Authenticated": true
}
}
```
Note that on mainnet the server enables authentication automatically if the
gateway url is bound to anything other than localhost (implying open
internet access) even if the config file is set to false.
There are two ways for a client to authenticate. The default (and preferred)
is via an authentication cookie. On start up the server generates a random
cookie and saves it in the data directory as a .cookie file. You need to add
this cookie to the header of all requests. For example:
```
cookie: OpenBazaar_Auth_Cookie=2Yc7VZtG/pVKrH5Lp0mKRSEPC4xlm1dGpkbUXLehTUI
```
Alternatively, you can use basic authentication by setting a username and
password in the config file:
```
{
"JSON-API": {
"Username": "Aladdin",
"Password": "1c8bfe8f801d79745c4631d09fff36c82aa37fc4cce4fc946683d7b336b63032"
}
}
```
The password should be saved as the hex - encoded SHA - 256 hash of your
password.You can run `openbazaar-go setapicreds` to have it hash and save
the password in the config file for you.
The username and password need to be included in the request header
following [RFC 2617](https://www.ietf.org/rfc/rfc2617.txt):
```
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
```
Where the username and password are encoded as `base64encode(username + ":"
+ password)`
or included in the Url:
```
http://username:password@localhost:8080/ob/
```
# SSL
**NEVER** open the JSON API to the internet without also encrypting the
connection with SSL. Without SSL enabled your authentication information be
sent to the server in the clear allowing anyone who views your packets to
access your server and potentially steal your bitcoins. For instructions on
how to enable SSL, see
[here](https://github.com/OpenBazaar/openbazaar-go/blob/master/docs/ssl.md).
# Cross-Origin Resource Sharing
CORS is turned off by default, meaning that you will not be able to make API
calls from a browser to a running server on localhost. You can turn CORS on
for a specific domain by setting an origin in the config file as follows:
```
{
"JSON-API": {
"CORS": "https://openbazaar.org"
}
}
```
Use "*" to allow all domains. Keep in mind that running the server with CORS
enabled for all domains is a potential secrity risk as it will allow any
website you visit to make calls to your server. Authentication should be
enabled along side CORS.
host: 'localhost:4002'
basePath: /
securityDefinitions:
auth:
type: basic
x-testValue: []
x-skip-client-authentication: false
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
'/ob/blocknode/{peerId}':
post:
description: >-
Block a node from the network. Note that this subjective blocking in
that it only affects your node.
summary: Block a node
tags:
- block
operationId: ObBlocknodeByPeerIdPost
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/blocknode/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Block a node
x-testDescription: >-
Block a node from the network. Note that this subjective blocking in
that it only affects your node.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
description: Unblock a blocked node.
summary: Unblock a node
tags:
- block
operationId: ObBlocknodeByPeerIdDelete
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/blocknode/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Unblock a node
x-testDescription: Unblock a blocked node.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/chatconversations:
get:
description: API call to retrieve chat conversations
summary: Fetch chat conversations
tags:
- chat
operationId: ObChatconversationsGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/chatconversations
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch chat conversations
x-testDescription: API call to retrieve chat conversations
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/chatmessages/{peerID}':
get:
description: >-
API call to retrieve chat messages in a specific chat conversation.
General chat messages have a subject of: "".
`limit` sets the maximum number of messages that will be returned.
When `offsetId` is set to a chat message ID it will only return chat
messages in the database which were received after the message with that
ID.
summary: Fetch chat messages
tags:
- chat
operationId: ObChatmessagesByPeerIDGet
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
- name: subject
in: query
required: true
type: string
description: ''
- name: peerID
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/chatmessages/?limit=&offsetId=&subject=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch chat messages
x-testDescription: >-
API call to retrieve chat messages in a specific chat conversation.
General chat messages have a subject of: "".
`limit` sets the maximum number of messages that will be returned.
When `offsetId` is set to a chat message ID it will only return chat
messages in the database which were received after the message with
that ID.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/chatmessages:
get:
description: >-
API call to retrieve group chat messages, specifically those related to
an order.
summary: Fetch group chat messages
tags:
- chat
operationId: ObChatmessagesGet
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
- name: subject
in: query
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/chatmessages?limit=&offsetId=&subject=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch group chat messages
x-testDescription: >-
API call to retrieve group chat messages, specifically those related
to an order.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/chat:
post:
description: >-
Send a chat message in a chat conversation.
Chat messages are limited to 20,000 characters and subjects are limited
to 500 characters.
summary: Send a chat message
tags:
- chat
operationId: ObChatPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SendAChatMessagerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/chat
headers:
Content-Type: application/json
body: '{"subject":"","message":"","peerId":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Send a chat message
x-testDescription: >-
Send a chat message in a chat conversation.
Chat messages are limited to 20,000 characters and subjects are
limited to 500 characters.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/groupchat:
post:
description: >-
Send a chat message in a chat conversation.
Chat messages are limited to 20,000 characters and subjects are limited
to 500 characters.
summary: Send a group chat message
tags:
- chat
operationId: ObGroupchatPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SendAGroupChatMessagerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/groupchat
headers:
Content-Type: application/json
body: '{"subject":"","message":"","peerIds":[]}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Send a group chat message
x-testDescription: >-
Send a chat message in a chat conversation.
Chat messages are limited to 20,000 characters and subjects are
limited to 500 characters.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/markchatasread/{peerID}':
post:
description: 'Mark all messages in a conversation as read. '
summary: Mark chat message as read
tags:
- chat
operationId: ObMarkchatasreadByPeerIDPost
produces:
- application/json
parameters:
- name: subject
in: query
required: true
type: string
description: ''
- name: peerID
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/markchatasread/?subject=
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Mark chat message as read
x-testDescription: 'Mark all messages in a conversation as read. '
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/chatmessage/{messageId}':
delete:
description: Delete a chat message in a chat conversation
summary: Delete a chat message
tags:
- chat
operationId: ObChatmessageByMessageIdDelete
produces:
- application/json
parameters:
- name: messageId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/chatmessage/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Delete a chat message
x-testDescription: Delete a chat message in a chat conversation
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/chatconversation/{peerID}':
delete:
description: Delete a chat conversation
summary: Delete a chat conversation
tags:
- chat
operationId: ObChatconversationByPeerIDDelete
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/chatconversation/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Delete a chat conversation
x-testDescription: Delete a chat conversation
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/cases:
get:
description: Returns a list of all moderation cases that the node was involved in.
summary: Get cases history
tags:
- orders
operationId: ObCasesGet2
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/cases?limit=&offsetId=
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get cases history
x-testDescription: >-
Returns a list of all moderation cases that the node was involved
in.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/case/{caseId}':
get:
description: >-
API call to retrieve a specific dispute resolution case that you're the
moderator for.
summary: Fetch case
tags:
- disputes
operationId: ObCaseByCaseIdGet
produces:
- application/json
parameters:
- name: caseId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/case/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch case
x-testDescription: >-
API call to retrieve a specific dispute resolution case that you're
the moderator for.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/opendispute:
post:
description: Open a dispute of a case you're involved in
summary: Open a dispute
tags:
- disputes
operationId: ObOpendisputePost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/OpenADisputerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/opendispute
headers:
Content-Type: application/json
body: '{"orderId":"","claim":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Open a dispute
x-testDescription: Open a dispute of a case you're involved in
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/closedispute:
post:
description: |-
Close a dispute of a case you're involved in
`buyerPercentage` and `vendorPercentage` are integers between 0 and 100.
summary: Close a dispute
tags:
- disputes
operationId: ObClosedisputePost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CloseADisputerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/closedispute
headers:
Content-Type: application/json
body: >-
{"orderId":"","buyerPercentage":100,"vendorPercentage":0,"resolution":""}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Close a dispute
x-testDescription: >-
Close a dispute of a case you're involved in
`buyerPercentage` and `vendorPercentage` are integers between 0 and
100.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/releasefunds:
post:
description: >-
Release the funds from a multisignature address for a dispute of a case
you're involved in
summary: Release funds
tags:
- disputes
operationId: ObReleasefundsPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/ReleaseFundsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/releasefunds
headers:
Content-Type: application/json
body: '{"orderId":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Release funds
x-testDescription: >-
Release the funds from a multisignature address for a dispute of a
case you're involved in
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ipfs/{hash}':
get:
description: >-
This API call will query the DHT using the given hash to get a list of
peers who are seeding the file. Depending on the size of the file it
will then download it from one or more of them. The hash may be a
directory. In which case this API returns an HTML directory view. To
view the files inside the directory, you can add either add their
filename or hash to the query. For example... ```
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/some_image.jpg
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
``` And of course nested directories are also supported, referenced
again by a name or hash. ```
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/my_directory/some_image.jpg
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr/some_image.jpg
```
summary: Fetch file from IPFS
tags:
- files
operationId: IpfsByHashGet
produces:
- application/json
parameters:
- name: hash
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ipfs/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch file from IPFS
x-testDescription: >-
This API call will query the DHT using the given hash to get a list
of peers who are seeding the file. Depending on the size of the file
it will then download it from one or more of them. The hash may be a
directory. In which case this API returns an HTML directory view. To
view the files inside the directory, you can add either add their
filename or hash to the query. For example... ```
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/some_image.jpg
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
``` And of course nested directories are also supported, referenced
again by a name or hash. ```
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/my_directory/some_image.jpg
ipfs/QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG/QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr/some_image.jpg
```
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ipns/{hash}/{directory}':
get:
description: >-
The IPNS protocol allows for a user to map their peer ID to an IPFS hash
in a cryptographically secure manner. When an IPNS query is made, the
server first queries the DHT to resolve the peer ID into an IPFS hash,
then proceeds to make an IPFS query given the resolved hash. For
example, suppose we have the following mapping.. ``` {peerId} = {hash}
``` Then the following API calls are equal... ```
ipfs/{hash}/some_image.jpg ipns/{peerId}/some_image.jpg ```
summary: Fetch file from IPNS
tags:
- files
operationId: IpnsByHashAndDirectoryGet
produces:
- application/json
parameters:
- name: hash
in: path
required: true
type: string
description: ''
- name: directory
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ipns//
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch file from IPNS
x-testDescription: >-
The IPNS protocol allows for a user to map their peer ID to an IPFS
hash in a cryptographically secure manner. When an IPNS query is
made, the server first queries the DHT to resolve the peer ID into
an IPFS hash, then proceeds to make an IPFS query given the resolved
hash. For example, suppose we have the following mapping.. ```
{peerId} = {hash} ``` Then the following API calls are equal... ```
ipfs/{hash}/some_image.jpg ipns/{peerId}/some_image.jpg ```
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/followers:
get:
description: >-
Returns a list of peers IDs that follow you
`limit` and `offsetId` work the same as with chat messages. Not using
the `limit` option will return all the followers (or all after
`offsetId` if you're using that).
summary: Get a list of your followers
tags:
- followers/following
operationId: ObFollowersGet
produces:
- application/json
parameters:
- name: offsetId
in: query
required: true
type: string
description: ''
- name: limit
in: query
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/followers?offsetId=&limit=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get a list of your followers
x-testDescription: >-
Returns a list of peers IDs that follow you
`limit` and `offsetId` work the same as with chat messages. Not
using the `limit` option will return all the followers (or all after
`offsetId` if you're using that).
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/following:
get:
description: >-
Returns a list of peer IDs you are following
`limit` and `offsetId` work the same as with chat messages. Not using
the `limit` option will return all the following (or all after
`offsetId` if you're using that).
summary: Get a list of following
tags:
- followers/following
operationId: ObFollowingGet
produces:
- application/json
parameters:
- name: offsetId
in: query
required: true
type: string
description: ''
- name: limit
in: query
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/following?offsetId=&limit=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get a list of following
x-testDescription: >-
Returns a list of peer IDs you are following
`limit` and `offsetId` work the same as with chat messages. Not
using the `limit` option will return all the following (or all after
`offsetId` if you're using that).
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/isfollowing/{peerId}':
get:
description: Returns true if you're following the given peer
summary: Am I following <peer>?
tags:
- followers/following
operationId: ObIsfollowingByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/isfollowing/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Am I following <peer>?
x-testDescription: Returns true if you're following the given peer
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/followsme/{peerId}':
get:
description: Returns true if the given peer follows you
summary: Does <peer> follow me?
tags:
- followers/following
operationId: ObFollowsmeByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/followsme/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Does <peer> follow me?
x-testDescription: Returns true if the given peer follows you
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/followers/{peerID}':
get:
description: Get a list of followers for a node given the peer ID.
summary: Get followers (external)
tags:
- followers/following
operationId: ObFollowersByPeerIDGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/followers/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get followers (external)
x-testDescription: Get a list of followers for a node given the peer ID.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/following/{peerID}':
get:
description: Get a list of nodes following a node given the peer ID.
summary: Get following (external)
tags:
- followers/following
operationId: ObFollowingByPeerIDGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/following/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get following (external)
x-testDescription: Get a list of nodes following a node given the peer ID.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/follow:
post:
description: RPC call to follow another peer on the network.
summary: Follow a peer
tags:
- followers/following
operationId: ObFollowPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/FollowAPeerrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/follow
headers:
Content-Type: application/json
body: '{"id":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Follow a peer
x-testDescription: RPC call to follow another peer on the network.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/unfollow:
post:
description: RPC call to unfollow another peer on the network.
summary: Unfollow a peer
tags:
- followers/following
operationId: ObUnfollowPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/UnfollowAPeerrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/unfollow
headers:
Content-Type: application/json
body: '{"id":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Unfollow a peer
x-testDescription: RPC call to unfollow another peer on the network.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/images/{imageHash}':
get:
description: 'Get an image given its filename. Alternatively, you can use /ipfs/{hash}'
summary: Get images (self)
tags:
- images
operationId: ObImagesByImageHashGet
produces:
- application/json
parameters:
- name: imageHash
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/images/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get images (self)
x-testDescription: >-
Get an image given its filename. Alternatively, you can use
/ipfs/{hash}
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/avatar/{peerID}/{size}':
get:
description: Get the avatar image of a node according to its size.
summary: Get avatar (ob)
tags:
- images
operationId: ObAvatarByPeerIDAndSizeGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: size
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/avatar//
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get avatar (ob)
x-testDescription: Get the avatar image of a node according to its size.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/header/{peerID}/{size}':
get:
description: Get the header image of a node according to its size.
summary: Get header (ob)
tags:
- images
operationId: ObHeaderByPeerIDAndSizeGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: size
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/header//
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get header (ob)
x-testDescription: Get the header image of a node according to its size.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/images:
post:
description: >-
Upload one or more images. Returns the IPFS hash of each image which can
be used to fetch the image using the IPFS API call.
summary: Upload image
tags:
- images
operationId: ObImagesPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
type: array
items:
$ref: '#/definitions/UploadImagerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/images
headers:
Content-Type: application/json
body: '[{"filename":"","image":""}]'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Upload image
x-testDescription: >-
Upload one or more images. Returns the IPFS hash of each image which
can be used to fetch the image using the IPFS API call.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/avatar:
post:
description: >-
Set the avatar image. This will also update the avatar hash in the
profile.
summary: Set the avatar
tags:
- images
operationId: ObAvatarPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetTheAvatarrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/avatar
headers:
Content-Type: application/json
body: '{"avatar":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set the avatar
x-testDescription: >-
Set the avatar image. This will also update the avatar hash in the
profile.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/header:
post:
description: >-
Set the header image. This will also update the header hash in the
profile.
summary: Set the header
tags:
- images
operationId: ObHeaderPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetTheHeaderrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/header
headers:
Content-Type: application/json
body: '{"header":""}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set the header
x-testDescription: >-
Set the header image. This will also update the header hash in the
profile.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/inventory:
get:
description: Get a list of all inventory counts
summary: Get all inventory
tags:
- inventory
operationId: ObInventoryGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/inventory
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get all inventory
x-testDescription: Get a list of all inventory counts
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: >-
Set the inventory for a given item. The item format must be
/slug/variant/...
summary: Set inventory levels
tags:
- inventory
operationId: ObInventoryPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetInventoryLevelsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/inventory
headers:
Content-Type: application/json
body: '{"slug":"","quantity":0}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set inventory levels
x-testDescription: >-
Set the inventory for a given item. The item format must be
/slug/variant/...
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/listings:
get:
description: Returns an array of node's own listings.
summary: Get an array of own listings
tags:
- listings
operationId: ObListingsGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/listings
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an array of own listings
x-testDescription: Returns an array of node's own listings.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/listings/{peerId}':
get:
description: This returns an array of listings from an external node.
summary: Get an array of external listings
tags:
- listings
operationId: ObListingsByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/listings/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an array of external listings
x-testDescription: This returns an array of listings from an external node.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/listing/{slug}':
get:
description: Returns a specific listing with the inventory attached to the return.
summary: Get own listing
tags:
- listings
operationId: ObListingBySlugGet
produces:
- application/json
parameters:
- name: slug
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/listing/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get own listing
x-testDescription: >-
Returns a specific listing with the inventory attached to the
return.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
description: Delete a listing and associated inventory
summary: Delete a listing
tags:
- listings
operationId: ObListingBySlugDelete
produces:
- application/json
parameters:
- name: slug
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/listing/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Delete a listing
x-testDescription: Delete a listing and associated inventory
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/listing/{peerID}/{slug}':
get:
description: >-
This returns a listing wrapped in a Ricardian Contract which contains
the signatures needed to validate the listing. Alternatively, you can
fetch a listing using `/ipfs/{listing_hash}`
summary: Get an external listing
tags:
- listings
operationId: ObListingByPeerIDAndSlugGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: slug
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/listing//
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an external listing
x-testDescription: >-
This returns a listing wrapped in a Ricardian Contract which
contains the signatures needed to validate the listing.
Alternatively, you can fetch a listing using `/ipfs/{listing_hash}`
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/listing:
put:
description: >-
Update a listing. The currentSlug field is used specify the listing
being updated. If the listing contains a new slug, the listing will be
renamed using the new slug.
summary: Update a listing
tags:
- listings
operationId: ObListingPut
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/UpdateAListingrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PUT
uri: /ob/listing
headers:
Content-Type: application/json
body: "{\"slug\":\"vintage-nice-dress\",\"metadata\":{\"contractType\":\"PHYSICAL_GOOD\",\"format\":\"FIXED_PRICE\",\"expiry\":\"2037-12-31T05:00:00Z\",\"pricingCurrency\":\"USD\"},\"item\":{\"title\":\"YuooMuoo V-neck Knitted Dress\",\"description\":\"This is a listing example.\",\"processingTime\":\"3 days\",\"price\":100,\"tags\":[\"vintage dress\"],\"images\":[{\"filename\":\"front\",\"tiny\":\"QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz\",\"small\":\"QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9\",\"medium\":\"QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF\",\"large\":\"QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h\",\"original\":\"QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq\"},{\"filename\":\"cream\",\"tiny\":\"QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq\",\"small\":\"QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr\",\"medium\":\"QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43\",\"large\":\"QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9\",\"original\":\"QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny\"},{\"filename\":\"black\",\"tiny\":\"QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe\",\"small\":\"QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP\",\"medium\":\"QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b\",\"large\":\"QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s\",\"original\":\"QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr\"},{\"filename\":\"other_red\",\"tiny\":\"QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt\",\"small\":\"QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG\",\"medium\":\"QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL\",\"large\":\"QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv\",\"original\":\"QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF\"}],\"categories\":[\"\U0001F45A Apparel & Accessories\"],\"condition\":\"New\",\"options\":[{\"name\":\"Color\",\"description\":\"Color of the dress.\",\"variants\":[\"Red\",\"Cream\",\"Black\"]},{\"name\":\"Sizes\",\"description\":\"Size of the dress.\",\"variants\":[\"Small\",\"Medium\",\"Large\"]}],\"skus\":[{\"variantCombo\":[0,0],\"productID\":\"dress-red-small\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[0,1],\"productID\":\"dress-red-medium\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[0,2],\"productID\":\"dress-red-large\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[1,0],\"productID\":\"dress-cream-small\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[1,1],\"productID\":\"dress-cream-medium\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[1,2],\"productID\":\"dress-cream-large\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[2,0],\"productID\":\"dress-black-small\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[2,1],\"productID\":\"dress-black-medium\",\"surcharge\":0,\"quantity\":1000},{\"variantCombo\":[2,2],\"productID\":\"dress-black-large\",\"surcharge\":0,\"quantity\":1000}],\"nsfw\":false},\"shippingOptions\":[{\"name\":\"Worldwide\",\"type\":\"FIXED_PRICE\",\"regions\":[\"ALL\"],\"services\":[{\"name\":\"Standard\",\"price\":0,\"estimatedDelivery\":\"5 days\"},{\"name\":\"Express\",\"price\":50,\"estimatedDelivery\":\"3 days\"}]}],\"taxes\":[],\"coupons\":[],\"moderators\":[],\"termsAndConditions\":\"Terms and conditions.\",\"refundPolicy\":\"Refund policy.\"}"
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Update a listing
x-testDescription: >-
Update a listing. The currentSlug field is used specify the listing
being updated. If the listing contains a new slug, the listing will
be renamed using the new slug.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: Create a new listing and set its inventory
summary: Create a new listing (service; no options)
tags:
- listings
operationId: ObListingPost6
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CreateANewListingServiceNoOptionsRequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/listing
headers:
Content-Type: application/json
body: "{\"slug\":\"vintage-dress-service-no-options\",\"metadata\":{\"contractType\":\"SERVICE\",\"format\":\"FIXED_PRICE\",\"expiry\":\"2037-12-31T05:00:00Z\",\"pricingCurrency\":\"USD\"},\"item\":{\"title\":\"Vintage dress (service; no options)\",\"description\":\"This is a listing example.\",\"processingTime\":\"3 days\",\"price\":100,\"tags\":[\"vintage dress\"],\"images\":[{\"filename\":\"front\",\"tiny\":\"QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz\",\"small\":\"QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9\",\"medium\":\"QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF\",\"large\":\"QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h\",\"original\":\"QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq\"},{\"filename\":\"cream\",\"tiny\":\"QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq\",\"small\":\"QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr\",\"medium\":\"QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43\",\"large\":\"QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9\",\"original\":\"QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny\"},{\"filename\":\"black\",\"tiny\":\"QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe\",\"small\":\"QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP\",\"medium\":\"QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b\",\"large\":\"QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s\",\"original\":\"QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr\"},{\"filename\":\"other_red\",\"tiny\":\"QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt\",\"small\":\"QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG\",\"medium\":\"QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL\",\"large\":\"QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv\",\"original\":\"QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF\"}],\"categories\":[\"\U0001F45A Apparel & Accessories\"],\"condition\":\"New\",\"options\":[],\"skus\":[],\"nsfw\":false},\"shippingOptions\":[],\"taxes\":[],\"coupons\":[],\"moderators\":[\"QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U\",\"Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G\"],\"termsAndConditions\":\"Terms and conditions.\",\"refundPolicy\":\"Refund policy.\"}"
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Create a new listing (service; no options)
x-testDescription: Create a new listing and set its inventory
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/config:
get:
description: Returns the node's own peer ID and the type of cryptocurrency used.
summary: Get node configuration
tags:
- miscellaneous
operationId: ObConfigGet
produces:
- application/json
parameters:
- name: Cookie
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/config
headers:
Cookie: '{{cookie}}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get node configuration
x-testDescription: Returns the node's own peer ID and the type of cryptocurrency used.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/peers:
get:
description: Returns a list of IDs of the peers connected to this node.
summary: Get connected peers
tags:
- miscellaneous
operationId: ObPeersGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/peers
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get connected peers
x-testDescription: Returns a list of IDs of the peers connected to this node.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/status/{peerID}':
get:
description: Pings the peer and returns if it is online or not
summary: Get peer online status
tags:
- miscellaneous
operationId: ObStatusByPeerIDGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/status/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get peer online status
x-testDescription: Pings the peer and returns if it is online or not
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/healthcheck:
get:
description: Pings the peer and returns if it is online or not
summary: Get health check on node
tags:
- miscellaneous
operationId: ObHealthcheckGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/healthcheck
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get health check on node
x-testDescription: Pings the peer and returns if it is online or not
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/status/peerinfo/{peerId}':
get:
description: Get information on a peer
summary: Get peer info
tags:
- miscellaneous
operationId: ObStatusPeerinfoByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/status/peerinfo/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get peer info
x-testDescription: Get information on a peer
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/closestpeers/{peerId}':
get:
description: >-
Crawls the DHT and returns up to 20 of the closest peers to the given
ID.
summary: Crawl for closest peers
tags:
- miscellaneous
operationId: ObClosestpeersByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/closestpeers/QmRBhyTivwngraebqBVoPYCh8SBrsagqRtMwj44dMLXhwn
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Crawl for closest peers
x-testDescription: >-
Crawls the DHT and returns up to 20 of the closest peers to the
given ID.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/publish:
post:
description: Publish any changes made on your node to the network.
summary: Publish changes to the network
tags:
- miscellaneous
operationId: ObPublishPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/publish
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Publish changes to the network
x-testDescription: Publish any changes made on your node to the network.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/purgecache:
post:
description: Purge any data you are seeding on the network.
summary: Purge cache
tags:
- miscellaneous
operationId: ObPurgecachePost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/purgecache
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Purge cache
x-testDescription: Purge any data you are seeding on the network.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/shutdown:
post:
description: Shutdown your node safely.
summary: Shutdown the node
tags:
- miscellaneous
operationId: ObShutdownPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/shutdown
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Shutdown the node
x-testDescription: Shutdown your node safely.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/moderators:
get:
description: >-
Returns a list of moderator peer IDs. Since the server must do a network
crawl to find the IDs, there are two ways make this query. The default
is a simple long polling GET which returns after the crawl completes. If
you want to receive the peer IDs asynchronously, add the async parameter
to the request and it will return a random ID which can be used to
receive the results over the websocket.
summary: Get a list of moderators
tags:
- moderators
operationId: ObModeratorsGet
produces:
- application/json
parameters:
- name: async
in: query
required: true
type: string
description: ''
- name: include
in: query
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/moderators?async=&include=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get a list of moderators
x-testDescription: >-
Returns a list of moderator peer IDs. Since the server must do a
network crawl to find the IDs, there are two ways make this query.
The default is a simple long polling GET which returns after the
crawl completes. If you want to receive the peer IDs asynchronously,
add the async parameter to the request and it will return a random
ID which can be used to receive the results over the websocket.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/moderator:
put:
description: Update the moderation info for this node
summary: Update moderator info
tags:
- moderators
operationId: ObModeratorPut
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/UpdateModeratorInforequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PUT
uri: /ob/moderator
headers:
Content-Type: application/json
body: >-
{"description":"Long time OpenBazaar moderator located in
Chicago","termsAndConditions":"Will moderate anything and
everything","languages":["English","Spanish"],"fee":{"feeType":"FIXED_PLUS_PERCENTAGE","fixedFee":{"currencyCode":"USD","amount":300},"percentage":5}}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Update moderator info
x-testDescription: Update the moderation info for this node
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: Make this node as a moderator and set the modertor's information.
summary: Set as moderator
tags:
- moderators
operationId: ObModeratorPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetAsModeratorrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/moderator
headers:
Content-Type: application/json
body: >-
{"description":"Long time OpenBazaar moderator located in
Chicago","termsAndConditions":"Will moderate anything and
everything","languages":["English","Spanish"],"fee":{"feeType":"FIXED_PLUS_PERCENTAGE","fixedFee":{"currencyCode":"USD","amount":300},"percentage":5}}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set as moderator
x-testDescription: Make this node as a moderator and set the modertor's information.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/moderator/{peerID}':
delete:
description: Unset self as moderator and delete moderation info
summary: Unset moderator
tags:
- moderators
operationId: ObModeratorByPeerIDDelete
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/moderator/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Unset moderator
x-testDescription: Unset self as moderator and delete moderation info
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/notifications:
get:
description: API call to retrieve notifications
summary: Fetch notifications
tags:
- notifications
operationId: ObNotificationsGet
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/notifications?limit=&offsetId=
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fetch notifications
x-testDescription: API call to retrieve notifications
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/marknotificationasread/{notificationId}':
post:
description: Mark a notification as read
summary: Mark notification as read
tags:
- notifications
operationId: ObMarknotificationasreadByNotificationIdPost
produces:
- application/json
parameters:
- name: notificationId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/marknotificationasread/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Mark notification as read
x-testDescription: Mark a notification as read
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/marknotificationsasread:
post:
description: Mark all notifications as read
summary: Mark notifications as read (all)
tags:
- notifications
operationId: ObMarknotificationsasreadPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/marknotificationsasread
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Mark notifications as read (all)
x-testDescription: Mark all notifications as read
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/notifications/{notificationId}':
delete:
description: Delete a notification
summary: Delete a notification
tags:
- notifications
operationId: ObNotificationsByNotificationIdDelete
produces:
- application/json
parameters:
- name: notificationId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/notifications/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Delete a notification
x-testDescription: Delete a notification
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/order/{orderId}':
get:
description: Get an order by ID
summary: Get an order
tags:
- orders
operationId: ObOrderByOrderIdGet
produces:
- application/json
parameters:
- name: orderId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/order/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an order
x-testDescription: Get an order by ID
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/purchases:
get:
description: Returns a list of all purchases that the node has made.
summary: Get purchase history
tags:
- orders
operationId: ObPurchasesGet
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/purchases?limit=&offsetId=
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get purchase history
x-testDescription: Returns a list of all purchases that the node has made.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/sales:
get:
description: Returns a list of all sales that the node has made.
summary: Get sales history
tags:
- orders
operationId: ObSalesGet
produces:
- application/json
parameters:
- name: limit
in: query
required: true
type: string
description: ''
- name: offsetId
in: query
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/sales?limit=&offsetId=
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get sales history
x-testDescription: Returns a list of all sales that the node has made.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/estimatetotal:
post:
description: Find out how much a listing is going to cost.
summary: Get Estimate to Purchase a Listing
tags:
- orders
operationId: ObEstimatetotalPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/GetEstimateToPurchaseAListingrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/estimatetotal
headers:
Content-Type: application/json
body: >-
{"address":"31 Spooner Street Apt.
124","city":"Quahog","state":"RI","shipTo":"Globex
Corporation","countryCode":"UNITED_STATES","postalCode":"","addressNotes":"Leave
package at back
door","items":[{"listingHash":"zb2rhad6oPUEHTNMCCS6MQND541S2KSa7DrYAaBAxQgRDYQ8C","quantity":1,"options":[{"name":"Color","value":"Cream"},{"name":"Sizes","value":"Medium"}],"shipping":{"value":0,"name":"Worldwide","service":"Standard","estimatedDelivery":"3
days","price":0},"moderator":"QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U"}]}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get Estimate to Purchase a Listing
x-testDescription: Find out how much a listing is going to cost.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/purchase:
post:
description: "The purchase call can be made to a reachable or a unreachable vendor (offline or not able to receive incoming messages). \r\n\r\nAn order will be created in the AWAITING_PAYMENT state after this call.\r\n\r\nIf the total of the purchase is not more than 4X the current transaction fee, the purchase will be rejected (ie: if the fee is 0.0001, the total purchase must be more than 0.0004)."
summary: Purchase an item
tags:
- orders
operationId: ObPurchasePost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/PurchaseAnItemrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/purchase
headers:
Content-Type: application/json
body: >-
{"shipTo":"Dr Washington Sanchez","address":"1060 W
Addison","city":"Chicago","state":"Illinois","countryCode":"UNITED_STATES","postalCode":"60613","addressNotes":"","items":[{"listingHash":"zb2rhXdiuRc5GhfmnvP35DTQNur3cGRUBfL3WNNSF3ZKHEkJd","quantity":1,"options":[],"shipping":{"name":"USA","service":"USPS
Standard"},"memo":"thanks!","coupons":[]}],"moderator":"QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U"}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Purchase an item
x-testDescription: "The purchase call can be made to a reachable or a unreachable vendor (offline or not able to receive incoming messages). \r\n\r\nAn order will be created in the AWAITING_PAYMENT state after this call.\r\n\r\nIf the total of the purchase is not more than 4X the current transaction fee, the purchase will be rejected (ie: if the fee is 0.0001, the total purchase must be more than 0.0004)."
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/orderconfirmation:
post:
description: >-
Online orders are confirmed instantly. This API call is to confirm an
order sent to the vendor while he was offline.
summary: Confirm an order (offline)
tags:
- orders
operationId: ObOrderconfirmationPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/ConfirmAnOrderofflinerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/orderconfirmation
headers:
Content-Type: application/json
body: >-
{"orderId":"QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr","reject":false}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Confirm an order (offline)
x-testDescription: >-
Online orders are confirmed instantly. This API call is to confirm
an order sent to the vendor while he was offline.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/orderfulfillment:
post:
description: >-
Send an order fulfillment message to the buyer. Typically used to tell
the buyer an item has been shipped.
summary: Fulfill an order
tags:
- orders
operationId: ObOrderfulfillmentPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/FulfillAnOrderrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/orderfulfillment
headers:
Content-Type: application/json
body: >-
{"orderId":"QmSJmnSgxfME35BiwedKvVMRBcFu4NA7MpB22vhsZ9GF2H","physicalDelivery":[{"shipper":"UPS","trackingNumber":"1Z204E380338943508"}],"digitalDelivery":[{"url":"http://example.com/download.mp3","password":"letmein"}]}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Fulfill an order
x-testDescription: >-
Send an order fulfillment message to the buyer. Typically used to
tell the buyer an item has been shipped.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/ordercompletion:
post:
description: >-
Send the order complete message (including the rating) to the vendor. If
this is a moderated order, it will sign and release the funds to the
vendor.
summary: Complete an order
tags:
- orders
operationId: ObOrdercompletionPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CompleteAnOrderrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/ordercompletion
headers:
Content-Type: application/json
body: >-
{"orderId":"QmP9rtg9tm5zv8RrPTJpyDc3bfqwnaogjbneBTPaf8TjA9","ratings":[{"slug":"vintage-nice-dress","overall":3,"quality":4,"description":5,"deliverySpeed":5,"customerService":3,"review":"This
rocks!","anonymous":true}]}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Complete an order
x-testDescription: >-
Send the order complete message (including the rating) to the
vendor. If this is a moderated order, it will sign and release the
funds to the vendor.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/refund:
post:
description: >-
Refund the order. If it's a moderated order, it will release the funds
back to the buyer. If it's direct it will send the coins from your
wallet.
summary: Refund an order
tags:
- orders
operationId: ObRefundPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/RefundAnOrderrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/refund
headers:
Content-Type: application/json
body: '{"orderId":"QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr"}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Refund an order
x-testDescription: >-
Refund the order. If it's a moderated order, it will release the
funds back to the buyer. If it's direct it will send the coins from
your wallet.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/ordercancel:
post:
description: >-
Cancel an outstanding offline order. It will move the bitcoins back into
your wallet.
summary: Cancel an offline order
tags:
- orders
operationId: ObOrdercancelPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CancelAnOfflineOrderrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/ordercancel
headers:
Content-Type: application/json
body: '{"orderId":"QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr"}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Cancel an offline order
x-testDescription: >-
Cancel an outstanding offline order. It will move the bitcoins back
into your wallet.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/posts:
get:
description: Returns an array of node's own posts.
summary: Get an array of own posts
tags:
- posts
operationId: ObPostsGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/posts
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an array of own posts
x-testDescription: Returns an array of node's own posts.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/posts/{peerId}':
get:
description: This returns an array of posts from an external node.
summary: Get an array of external posts
tags:
- posts
operationId: ObPostsByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/posts/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an array of external posts
x-testDescription: This returns an array of posts from an external node.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/post/{slug}':
get:
description: Returns a specific listing with the inventory attached to the return.
summary: Get own post
tags:
- posts
operationId: ObPostBySlugGet
produces:
- application/json
parameters:
- name: slug
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/post/
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get own post
x-testDescription: >-
Returns a specific listing with the inventory attached to the
return.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
description: Delete a listing and associated inventory
summary: Delete a listing
tags:
- posts
operationId: ObPostBySlugDelete
produces:
- application/json
parameters:
- name: slug
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: DELETE
uri: /ob/post/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Delete a listing
x-testDescription: Delete a listing and associated inventory
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/post/{peerID}/{slug}':
get:
description: >-
This returns a listing wrapped in a Ricardian Contract which contains
the signatures needed to validate the listing. Alternatively, you can
fetch a listing using `/ipfs/{listing_hash}`
summary: Get an external post
tags:
- posts
operationId: ObPostByPeerIDAndSlugGet
produces:
- application/json
parameters:
- name: peerID
in: path
required: true
type: string
description: ''
- name: slug
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/post//
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get an external post
x-testDescription: >-
This returns a listing wrapped in a Ricardian Contract which
contains the signatures needed to validate the listing.
Alternatively, you can fetch a listing using `/ipfs/{listing_hash}`
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/post:
put:
description: >-
Update a post. The currentSlug field is used specify the listing being
updated. If the listing contains a new slug, the listing will be renamed
using the new slug.
summary: Update a post
tags:
- posts
operationId: ObPostPut
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/UpdateAPostrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PUT
uri: /ob/post
headers:
Content-Type: application/json
body: >-
{"title":"testy","longForm":"This is a test post
dawg.","images":[{"filename":"cat","large":"zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY","medium":"zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN","original":"zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm","small":"zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY","tiny":"zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV"}],"tags":["Yo","Yo
yo"]}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Update a post
x-testDescription: >-
Update a post. The currentSlug field is used specify the listing
being updated. If the listing contains a new slug, the listing will
be renamed using the new slug.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: Create a new post
summary: Create a new post
tags:
- posts
operationId: ObPostPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CreateANewPostrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/post
headers:
Content-Type: application/json
body: >-
{"title":"testy","longForm":"This is a test post
dawg.","images":[{"filename":"cat","large":"zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY","medium":"zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN","original":"zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm","small":"zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY","tiny":"zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV"}],"tags":["Yo"]}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Create a new post
x-testDescription: Create a new post
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/profile:
get:
description: Get your profile.
summary: Get your profile (ob)
tags:
- profile
operationId: ObProfileGet
produces:
- application/json
parameters:
- name: async
in: query
required: true
type: boolean
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/profile?async=true
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get your profile (ob)
x-testDescription: Get your profile.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
put:
description: Edit the profile for this node
summary: Edit the profile
tags:
- profile
operationId: ObProfilePut
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/EditTheProfilerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PUT
uri: /ob/profile
headers:
Content-Type: application/json
body: >-
{"peerID":"QmVD3WwjZKRwEnczMcVEwEm9Xq9ZKoZpQbDkqPp5Uoi9RZ","handle":"@manbazaar","name":"Men&#39;s
Clothing
Bazaar","location":"","about":"","shortDescription":"Clothing for
men","nsfw":false,"vendor":true,"moderator":false,"contactInfo":{"website":"","email":"","phoneNumber":""},"colors":{"primary":"","secondary":"","text":"","highlight":"","highlightText":""},"avatarHashes":{"tiny":"Qmckqkv8su5Tw6Styrmzzi3gv78k95iReZrQywb5Rny3gz","small":"QmZ6irSjduA6w3p9EMi7fcZGNdPNYungpxekBAn3PWhDKK","medium":"QmRfe8HTeUqEYj2NvrTo24SZBxUaBganTVSo76PRksFggE","large":"QmYwgMDSYpokfz7seLkj3rtZhat6qJtcvddt1c1XR4s5jL","original":"QmPK8X2FPi9cregxSRvfhPxMVowSLxHBJfdMnyRg1LkyUW"},"headerHashes":{"tiny":"Qmdzo6zCzTUyDdwWC5hg4axXkxPRS7wFiKX6nvcBkRFQUw","small":"QmZpAfKAy4NG9PZfJaSM9ahXS9mQTtjQ8hDNPcHyQJLBps","medium":"QmZirmkZpuLTBUmBU4G5iPZ2ZFLeb3hkmx46mPrWhqRkWR","large":"QmXA6ZSLM9HXCNfyk3QS4z436VeZoZ2sXLWN3NCvwSH6sM","original":"QmVYEs71oQM78ZFWpWD5RX1tYXpjYoSzitvfuyfi8ovQWJ"},"stats":{"followerCount":0,"followingCount":0,"listingCount":3,"ratingCount":0,"averageRating":0},"bitcoinPubkey":"0299f8403f38e7af3487faceada4d60919d01ed6ed2b6d5f38e151ffc9c0d71be2","lastModified":"2017-06-08T11:02:38.264019143Z"}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Edit the profile
x-testDescription: Edit the profile for this node
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: Set the profile for this node
summary: Set the profile
tags:
- profile
operationId: ObProfilePost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetTheProfilerequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/profile
headers:
Content-Type: application/json
body: >-
{"handle":"drwasho","name":"Washington
Sanchez","location":"Brisbane","about":"The
Dude","shortDescription":"Yo","contactInfo":{"website":"openbazaar.org","email":"drwasho@openbazaar.org","phoneNumber":"12345"},"nsfw":false,"vendor":true,"moderator":false,"colors":{"primary":"#000000","secondary":"#FFD700","text":"#ffffff","highlight":"#123ABC","highlightText":"#DEAD00"}}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set the profile
x-testDescription: Set the profile for this node
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
patch:
description: Patch the profile for this node
summary: Patch the profile
tags:
- profile
operationId: ObProfilePatch
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/PatchTheProfilerequest'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Drwasho'
examples:
application/json:
handle: '@drwasho'
name: Dr Washington Sanchez
location: 'Brisbane, Australia'
about: drwasho's node
shortDescription: drwasho's node
website: 'https://openbazaar.org'
email: drwasho@openbazaar.org
phoneNumber: 555-8790
social:
- type: TWITTER
username: '@drwasho'
proof: 'https://twitter.com/drwasho/status/792595422376144897'
avgRating: 0
numRatings: 0
nsfw: false
vendor: true
moderator: true
primaryColor: '#AF854C'
secondaryColor: '#E3E3E3'
textColor: '#FFFFFF'
highlightColor: ''
highlightTextColor: ''
avatarHashes:
tiny: QmPjkgnvCY8RnYQ5LFBrr36EEzTiagjZjVtxcZ5kV7NFNw
small: QmPJhf9FQ74qZebKZBXXR81bFNbC1tWPXzTNjmNNm58rES
medium: QmWdwMSNWFSKYdL8n47dK5EN7DRmPuTzjG12LPqQHAWb6P
large: QmSReXYhgiWATTuiYWDXzPMDy2k9g3PnM5VmHhwNREVA3B
original: QmUQmMHqpFR2SN6s5iNktUBHgBnzxpH9862pCDpNKnA5Vd
headerHashes:
tiny: Qmavc5kgtpbkgZ6vmRUKSpe4cVZwBfLumTJj2ZKdCKfm2P
small: QmRz7atxA7W57EeDRJ17RjV7w6xBm9X6i4h8agxdnnVaK9
medium: QmSaYCYQNZNRPS2ozfDnZm63gSnS2DzRDSLrLtN94ZjUkn
large: QmXZZekqM1HwNrgBTLksKd6W1VCyTesbdxnPCwkVKBVNBJ
original: QmcY9Pt3ZzivBGxXenjbrG4xQ4uAd4BUvLRLuXv3E6688S
followerCount: 0
followingCount: 0
listingCount: 0
bitcoinPubkey: >-
03486870b222ff981bf0ff202680a3b8bd0c1be1ae65a9284914995bab7952c225
acceptStealth: false
security:
- auth: []
x-unitTests:
- request:
method: PATCH
uri: /ob/profile
headers:
Content-Type: application/json
body: >-
{"peerID":"Qmai9U7856XKgDSvMFExPbQufcsc4ksG779VyG4Md5dn4J","handle":"drwasho","name":"Washington
Sanchez","location":"Brisbane","about":"The
Dude","shortDescription":"Yo","nsfw":true,"vendor":true,"moderator":false,"contactInfo":{"website":"openbazaar.org","email":"drwasho@openbazaar.org","phoneNumber":"12345"},"colors":{"primary":"#000000","secondary":"#FFD700","text":"#ffffff","highlight":"#123ABC","highlightText":"#DEAD00"},"avatarHashes":{"tiny":"QmPjkgnvCY8RnYQ5LFBrr36EEzTiagjZjVtxcZ5kV7NFNw","small":"QmPJhf9FQ74qZebKZBXXR81bFNbC1tWPXzTNjmNNm58rES","medium":"QmWdwMSNWFSKYdL8n47dK5EN7DRmPuTzjG12LPqQHAWb6P","large":"QmSReXYhgiWATTuiYWDXzPMDy2k9g3PnM5VmHhwNREVA3B","original":"QmUQmMHqpFR2SN6s5iNktUBHgBnzxpH9862pCDpNKnA5Vd"},"stats":{"followerCount":0,"followingCount":0,"listingCount":0,"ratingCount":0,"averageRating":0},"bitcoinPubkey":"03b54f70a26768dfc6335ff1896de9fb34c7c8de98b45141fc264913583b867387","lastModified":"2017-03-24T13:10:53.419703009Z"}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: RAW
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers:
Content-Length: '1649'
Content-Type: application/json
Date: 'Fri, 13 Jan 2017 04:10:52 GMT'
body: >-
{"handle":"@drwasho","name":"Dr Washington
Sanchez","location":"Brisbane, Australia","about":"drwasho's
node","shortDescription":"drwasho's
node","website":"https://openbazaar.org","email":"drwasho@openbazaar.org","phoneNumber":"555-8790","social":[{"type":"TWITTER","username":"@drwasho","proof":"https://twitter.com/drwasho/status/792595422376144897"}],"avgRating":0,"numRatings":0,"nsfw":false,"vendor":true,"moderator":true,"primaryColor":"#AF854C","secondaryColor":"#E3E3E3","textColor":"#FFFFFF","highlightColor":"","highlightTextColor":"","avatarHashes":{"tiny":"QmPjkgnvCY8RnYQ5LFBrr36EEzTiagjZjVtxcZ5kV7NFNw","small":"QmPJhf9FQ74qZebKZBXXR81bFNbC1tWPXzTNjmNNm58rES","medium":"QmWdwMSNWFSKYdL8n47dK5EN7DRmPuTzjG12LPqQHAWb6P","large":"QmSReXYhgiWATTuiYWDXzPMDy2k9g3PnM5VmHhwNREVA3B","original":"QmUQmMHqpFR2SN6s5iNktUBHgBnzxpH9862pCDpNKnA5Vd"},"headerHashes":{"tiny":"Qmavc5kgtpbkgZ6vmRUKSpe4cVZwBfLumTJj2ZKdCKfm2P","small":"QmRz7atxA7W57EeDRJ17RjV7w6xBm9X6i4h8agxdnnVaK9","medium":"QmSaYCYQNZNRPS2ozfDnZm63gSnS2DzRDSLrLtN94ZjUkn","large":"QmXZZekqM1HwNrgBTLksKd6W1VCyTesbdxnPCwkVKBVNBJ","original":"QmcY9Pt3ZzivBGxXenjbrG4xQ4uAd4BUvLRLuXv3E6688S"},"followerCount":0,"followingCount":0,"listingCount":0,"bitcoinPubkey":"03486870b222ff981bf0ff202680a3b8bd0c1be1ae65a9284914995bab7952c225","acceptStealth":false}
x-testShouldPass: true
x-testEnabled: true
x-testName: Patch the profile
x-testDescription: Patch the profile for this node
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/profile/{peerID}':
get:
description: Get an external profile.
summary: Get external profile (ob)
tags:
- profile
operationId: ObProfileByPeerIDGet
produces:
- application/json
parameters:
- name: usecache
in: query
required: true
type: boolean
description: ''
- name: peerID
in: path
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/profile/?usecache=true
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get external profile (ob)
x-testDescription: Get an external profile.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/fetchprofiles:
post:
description: Fetch multiple profiles
summary: Batch fetch profiles
tags:
- profile
operationId: ObFetchprofilesPost
produces:
- application/json
parameters:
- name: async
in: query
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
type: array
items:
type: string
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/fetchprofiles?async=
headers:
Content-Type: application/json
body: >-
["QmSQdPxagtLYptbFEnWycdj6rWfkYSfXN68d6ghTX3bByj","QmPUTcwFdCdd4CntWAVcS8Kvg5xvD4X7cfbK8CVYC57JuU","QmSit3mDpKWJi9ChT8UtfvuJYEF6UebeXSUUKzmryCvMgJ","QmdzzGGc9xZq8w4z42vSHe32DZM7VXfDUFEUyfPvYNYhXE","QmRqNRKaqinxpTRJ5JUSzJNSzjdWWTRGy3XxVxdn5h2FnW","QmbeiRH4SsoHqC1SYbCFQxHdiVi24a6FRY4s7yLAXA5ZRM","QmS8xvjUfFdPhx6BpsMr8HNywMAokqTiWcCPHkyQinRUbi","QmTBkgWoN2ERwutZHGN58vdh8faSmsXX2UJJuf23Wewwc2","QmbtjH8WXyj5Fg39cezEHiVtVsh4v6Dnar9WuQdzs3kEdC"]
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Batch fetch profiles
x-testDescription: Fetch multiple profiles
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/rating/{ratingHash}':
get:
description: Get a rating
summary: Get a rating
tags:
- rating
operationId: ObRatingByRatingHashGet
produces:
- application/json
parameters:
- name: ratingHash
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/rating/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get a rating
x-testDescription: Get a rating
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/ob/ratings/{peerId}':
get:
description: Get the rating history of a node
summary: Get ratings of a node
tags:
- rating
operationId: ObRatingsByPeerIdGet
produces:
- application/json
parameters:
- name: peerId
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/ratings/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get ratings of a node
x-testDescription: Get the rating history of a node
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/settings:
get:
description: Fetch the settings from the database
summary: Get the settings
tags:
- settings
operationId: ObSettingsGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/settings
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get the settings
x-testDescription: Fetch the settings from the database
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
put:
description: Update the settings object in the database. Overwrites all fields.
summary: Update settings
tags:
- settings
operationId: ObSettingsPut
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/UpdateSettingsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PUT
uri: /ob/settings
headers:
Content-Type: application/json
body: >-
{"blockedNodes":[],"country":"UNITED_STATES","language":"English","localCurrency":"USD","mispaymentBuffer":1,"paymentDataInQR":true,"refundPolicy":"All
sales are final.","shippingAddresses":[{"addressLineOne":"1060 W
Addison","addressLineTwo":"Apt. 124","addressNotes":"Leave package
at back
door","city":"Chicago","company":"Me","country":"UNITED_STATES","name":"Washington
Sanchez","postalCode":"60613","state":"Illinois"}],"showNotifications":true,"showNsfw":true,"smtpSettings":{"notifications":false,"password":"letmein","recipientEmail":"Dave@gmail.com","senderEmail":"notifications@urbanart.com","serverAddress":"smtp.urbanart.com:465","username":"urbanart"},"storeModerators":["QmcguX9HRJPH4L9aZjVoWjQXHw9sf9dp5MHgKz6sPxNeXT"],"termsAndConditions":"By
purchasing this item you agree to the
following...","version":"/openbazaar-go:0.5.6/"}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Update settings
x-testDescription: Update the settings object in the database. Overwrites all fields.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
description: Set the settings object in the database
summary: Set settings
tags:
- settings
operationId: ObSettingsPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SetSettingsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /ob/settings
headers:
Content-Type: application/json
body: >-
{"paymentDataInQR":true,"showNotifications":true,"showNsfw":true,"shippingAddresses":[{"name":"Seymour
Butts","company":"Globex Corporation","addressLineOne":"31 Spooner
Street","addressLineTwo":"Apt.
124","city":"Quahog","state":"RI","country":"UNITED_STATES","addressNotes":"Leave
package at back
door"}],"localCurrency":"USD","country":"UNITED_STATES","language":"English","termsAndConditions":"By
purchasing this item you agree to the
following...","refundPolicy":"All sales are
final.","blockedNodes":["QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG","QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr","QmPDLS7TV9Q3gtxRXQVqrm2RpEtz1Mq6u2YGeuEJWCqu6B"],"moderators":["QmNedYJ6WmLhacAL2ozxb4k33Gxd9wmKB7HyoxZCwXid1e","QmQdi7EaJUmuRUtSaCPkijw5cptFfNcX2EPvMyQwR117Y2"],"smtpSettings":{"notifications":true,"serverAddress":"smtp.urbanart.com:465","username":"urbanart","password":"letmein","senderEmail":"notifications@urbanart.com","recipientEmail":"Dave@gmail.com"}}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Set settings
x-testDescription: Set the settings object in the database
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
patch:
description: Update individual settings without overwriting the rest.
summary: Patch settings
tags:
- settings
operationId: ObSettingsPatch
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/PatchSettingsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: PATCH
uri: /ob/settings
headers:
Content-Type: application/json
body: '{"localCurrency":"AUD"}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Patch settings
x-testDescription: Update individual settings without overwriting the rest.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/address:
get:
description: >-
Returns an unused bitcoin address. Note the same address is returned
until the address is used.
summary: Get a bitcoin address
tags:
- wallet
operationId: WalletAddressGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/address
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get a bitcoin address
x-testDescription: >-
Returns an unused bitcoin address. Note the same address is returned
until the address is used.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/mnemonic:
get:
description: >-
Returns the mnemonic seed used to derive all the bitcoin keys. Note this
seed should never be disclosed as it will allow someone to drain your
wallet and steal your OpenBazaar identity.
summary: Get the mnemonic seed
tags:
- wallet
operationId: WalletMnemonicGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/mnemonic
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get the mnemonic seed
x-testDescription: >-
Returns the mnemonic seed used to derive all the bitcoin keys. Note
this seed should never be disclosed as it will allow someone to
drain your wallet and steal your OpenBazaar identity.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/balance:
get:
description: >-
Returns the unconfirmed and confirmed balances of the wallet in satoshi
(1/100000000 of a full bitcoin).
summary: Get the wallet's balance
tags:
- wallet
operationId: WalletBalanceGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/balance
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get the wallet's balance
x-testDescription: >-
Returns the unconfirmed and confirmed balances of the wallet in
satoshi (1/100000000 of a full bitcoin).
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/transactions:
get:
description: >-
Returns the wallet transaction history with associated metadata.
Response will contain:
1. Txid
2. Value (satoshis)
3. Address
4. Status
5. Memo (if applicable)
6. Timestamp
7. Confirmations
8. OrderId (if applicable)
9. Thumbnail (IPFS hash of the order image if applicable)
summary: Get the wallet history
tags:
- wallet
operationId: WalletTransactionsGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/transactions
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get the wallet history
x-testDescription: >-
Returns the wallet transaction history with associated metadata.
Response will contain:
1. Txid
2. Value (satoshis)
3. Address
4. Status
5. Memo (if applicable)
6. Timestamp
7. Confirmations
8. OrderId (if applicable)
9. Thumbnail (IPFS hash of the order image if applicable)
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/status:
get:
description: Returns the last seen block height and hash.
summary: Get wallet status
tags:
- wallet
operationId: WalletStatusGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/status
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get wallet status
x-testDescription: Returns the last seen block height and hash.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/fees:
get:
description: Estimate the network transaction fees
summary: Estimate fees
tags:
- wallet
operationId: WalletFeesGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /wallet/fees
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Estimate fees
x-testDescription: Estimate the network transaction fees
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/ob/exchangerate:
get:
description: >-
Returns either the exchange rate (per BTC) for the given fiat currency
or all rates.
summary: Get exchange rates
tags:
- wallet
operationId: ObExchangerateGet
produces:
- application/json
parameters: []
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: GET
uri: /ob/exchangerate
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Get exchange rates
x-testDescription: >-
Returns either the exchange rate (per BTC) for the given fiat
currency or all rates.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/spend:
post:
description: >-
Send bitcoins to someone. Note the feelLevel parameter controls how much
of a fee to use. By default the wallet will query a fee api to get the
appropriate fee-per-byte for the given level. There is a max fee value
in the config file. If the api returns more than the max, then a default
fee will be used. The default values, max values, and api can be
configured in the config file. If you do not wish to use a fee api, and
just want to use the default value, set the fee api to "".
summary: Send bitcoins
tags:
- wallet
operationId: WalletSpendPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/SendBitcoinsrequest'
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /wallet/spend
headers:
Content-Type: application/json
body: >-
{"address":"mwMzbdFs5rW9yYAj2UkLXXsY9cpXcaugE8","amount":100000,"feeLevel":"NORMAL","memo":"Yo"}
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Send bitcoins
x-testDescription: >-
Send bitcoins to someone. Note the feelLevel parameter controls how
much of a fee to use. By default the wallet will query a fee api to
get the appropriate fee-per-byte for the given level. There is a max
fee value in the config file. If the api returns more than the max,
then a default fee will be used. The default values, max values, and
api can be configured in the config file. If you do not wish to use
a fee api, and just want to use the default value, set the fee api
to "".
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
'/wallet/bumpfee/{txid}':
post:
description: >-
This API call will rebroadcast a transaction with a higher fee, which
should be used if a transaction is stuck due to an insufficient fee.
summary: Bump fee
tags:
- wallet
operationId: WalletBumpfeeByTxidPost
produces:
- application/json
parameters:
- name: txid
in: path
required: true
type: string
description: ''
- name: Content-Type
in: header
required: true
type: string
description: ''
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /wallet/bumpfee/
headers:
Content-Type: application/json
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Bump fee
x-testDescription: >-
This API call will rebroadcast a transaction with a higher fee,
which should be used if a transaction is stuck due to an
insufficient fee.
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/wallet/resyncblockchain:
post:
description: >-
RPC call to re-download the blocks in the blockchain. It is
theoretically possible that the wallet could fail to hear of a
transaction intended for itself if its peers fail to relay a
transaction. In such cases the recourse is to re-download the historical
blocks from a new peer to discover the missing transaction(s).
summary: Re-sync blockchain
tags:
- wallet
operationId: WalletResyncblockchainPost
produces:
- application/json
parameters:
- name: Content-Type
in: header
required: true
type: string
description: ''
- name: Body
in: body
required: true
description: ''
schema:
type: object
responses:
'200':
description: ''
security:
- auth: []
x-unitTests:
- request:
method: POST
uri: /wallet/resyncblockchain
headers:
Content-Type: application/json
body: '{}'
expectedResponse:
x-allowExtraHeaders: true
x-bodyMatchMode: NONE
x-arrayOrderedMatching: false
x-arrayCheckCount: false
x-matchResponseSchema: true
headers: {}
x-testShouldPass: true
x-testEnabled: true
x-testName: Re-sync blockchain
x-testDescription: >-
RPC call to re-download the blocks in the blockchain. It is
theoretically possible that the wallet could fail to hear of a
transaction intended for itself if its peers fail to relay a
transaction. In such cases the recourse is to re-download the
historical blocks from a new peer to discover the missing
transaction(s).
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
definitions:
SendAChatMessagerequest:
title: Send a chat messageRequest
example:
subject: ''
message: ''
peerId: ''
type: object
properties:
subject:
description: ''
type: string
message:
description: ''
type: string
peerId:
description: ''
type: string
required:
- subject
- message
- peerId
SendAGroupChatMessagerequest:
title: Send a group chat messageRequest
example:
subject: ''
message: ''
peerIds: []
type: object
properties:
subject:
description: ''
type: string
message:
description: ''
type: string
peerIds:
description: ''
example: []
type: array
items:
type: string
required:
- subject
- message
- peerIds
OpenADisputerequest:
title: Open a disputeRequest
example:
orderId: ''
claim: ''
type: object
properties:
orderId:
description: ''
type: string
claim:
description: ''
type: string
required:
- orderId
- claim
CloseADisputerequest:
title: Close a disputeRequest
example:
orderId: ''
buyerPercentage: 100
vendorPercentage: 0
resolution: ''
type: object
properties:
orderId:
description: ''
type: string
buyerPercentage:
description: ''
example: 100
type: integer
format: int32
vendorPercentage:
description: ''
example: 0
type: integer
format: int32
resolution:
description: ''
type: string
required:
- orderId
- buyerPercentage
- vendorPercentage
- resolution
ReleaseFundsrequest:
title: Release fundsRequest
example:
orderId: ''
type: object
properties:
orderId:
description: ''
type: string
required:
- orderId
FollowAPeerrequest:
title: Follow a peerRequest
example:
id: ''
type: object
properties:
id:
description: ''
type: string
required:
- id
UnfollowAPeerrequest:
title: Unfollow a peerRequest
example:
id: ''
type: object
properties:
id:
description: ''
type: string
required:
- id
UploadImagerequest:
title: Upload imageRequest
example:
filename: ''
image: ''
type: object
properties:
filename:
description: ''
type: string
image:
description: ''
type: string
required:
- filename
- image
SetTheAvatarrequest:
title: Set the avatarRequest
example:
avatar: ''
type: object
properties:
avatar:
description: ''
type: string
required:
- avatar
SetTheHeaderrequest:
title: Set the headerRequest
example:
header: ''
type: object
properties:
header:
description: ''
type: string
required:
- header
SetInventoryLevelsrequest:
title: Set inventory levelsRequest
example:
slug: ''
quantity: 0
type: object
properties:
slug:
description: ''
type: string
quantity:
description: ''
example: 0
type: integer
format: int32
required:
- slug
- quantity
CreateANewListing(physical;W/Options)request:
title: Create a new listing (physical; w/ options)Request
type: object
properties:
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item'
shippingOptions:
description: ''
example:
- name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 3 days
- name: Express
price: 1
estimatedDelivery: 3 days
type: array
items:
$ref: '#/definitions/ShippingOption'
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
Metadata:
title: Metadata
example:
contractType: PHYSICAL_GOOD
format: FIXED_PRICE
expiry: '2037-12-31T05:00:00Z'
pricingCurrency: USD
type: object
properties:
contractType:
description: ''
example: PHYSICAL_GOOD
type: string
format:
description: ''
example: FIXED_PRICE
type: string
expiry:
description: ''
example: '12/31/2037 5:00:00 AM'
type: string
pricingCurrency:
description: ''
example: USD
type: string
required:
- contractType
- format
- expiry
- pricingCurrency
Item:
title: Item
type: object
properties:
title:
description: ''
example: Vintage dress (physical; w/ options)
type: string
description:
description: ''
example: This is a listing example.
type: string
processingTime:
description: ''
example: 3 days
type: string
price:
description: ''
example: 100
type: integer
format: int32
tags:
description: ''
example:
- vintage dress
type: array
items:
type: string
images:
description: ''
example:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
type: array
items:
$ref: '#/definitions/Image'
categories:
description: ''
example:
- "\U0001F45A Apparel & Accessories"
type: array
items:
type: string
condition:
description: ''
example: New
type: string
options:
description: ''
type: array
items:
$ref: '#/definitions/Option'
skus:
description: ''
example:
- variantCombo:
- 0
- 0
productID: dress-red-small
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 1
productID: dress-red-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 2
productID: dress-red-large
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 0
productID: dress-cream-small
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 1
productID: dress-cream-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 2
productID: dress-cream-large
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 0
productID: dress-black-small
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 1
productID: dress-black-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 2
productID: dress-black-large
surcharge: 0
quantity: 1000
type: array
items:
$ref: '#/definitions/Sku'
nsfw:
description: ''
example: false
type: boolean
required:
- title
- description
- processingTime
- price
- tags
- images
- categories
- condition
- options
- skus
- nsfw
Image:
title: Image
example:
filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
type: object
properties:
filename:
description: ''
example: front
type: string
tiny:
description: ''
example: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
type: string
small:
description: ''
example: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
type: string
medium:
description: ''
example: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
type: string
large:
description: ''
example: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
type: string
original:
description: ''
example: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
type: string
required:
- filename
- tiny
- small
- medium
- large
- original
Option:
title: Option
type: object
properties:
name:
description: ''
example: Color
type: string
description:
description: ''
example: Color of the dress.
type: string
variants:
description: ''
example:
- name: Red
image:
filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- name: Cream
image:
filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- name: Black
image:
filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
type: array
items:
$ref: '#/definitions/Variant'
required:
- name
- description
- variants
Variant:
title: Variant
example:
name: Red
image:
filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
type: object
properties:
name:
description: ''
example: Red
type: string
image:
$ref: '#/definitions/Image'
required:
- name
- image
Sku:
title: Sku
example:
variantCombo:
- 0
- 0
productID: dress-red-small
surcharge: 0
quantity: 1000
type: object
properties:
variantCombo:
description: ''
example:
- 0
- 0
type: array
items:
type: integer
format: int32
productID:
description: ''
example: dress-red-small
type: string
surcharge:
description: ''
example: 0
type: integer
format: int32
quantity:
description: ''
example: 1000
type: integer
format: int32
required:
- variantCombo
- productID
- surcharge
- quantity
ShippingOption:
title: ShippingOption
example:
name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 3 days
- name: Express
price: 1
estimatedDelivery: 3 days
type: object
properties:
name:
description: ''
example: Worldwide
type: string
type:
description: ''
example: FIXED_PRICE
type: string
regions:
description: ''
example:
- ALL
type: array
items:
type: string
services:
description: ''
example:
- name: Standard
price: 0
estimatedDelivery: 3 days
- name: Express
price: 1
estimatedDelivery: 3 days
type: array
items:
$ref: '#/definitions/Service'
required:
- name
- type
- regions
- services
Service:
title: Service
example:
name: Standard
price: 0
estimatedDelivery: 3 days
type: object
properties:
name:
description: ''
example: Standard
type: string
price:
description: ''
example: 0
type: integer
format: int32
estimatedDelivery:
description: ''
example: 3 days
type: string
required:
- name
- price
- estimatedDelivery
CreateANewListing(physical;NoOptions)request:
title: Create a new listing (physical; no options)Request
example:
slug: vintage-dress-physical-no-options
metadata:
contractType: PHYSICAL_GOOD
format: FIXED_PRICE
expiry: '2037-12-31T05:00:00Z'
pricingCurrency: USD
item:
title: Vintage dress (physical; no options)
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options: []
skus: []
nsfw: false
shippingOptions:
- name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 3 days
- name: Express
price: 1
estimatedDelivery: 3 days
taxes: []
coupons: []
moderators:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
termsAndConditions: Terms and conditions.
refundPolicy: Refund policy.
type: object
properties:
slug:
description: ''
example: vintage-dress-physical-no-options
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item23'
shippingOptions:
description: ''
example:
- name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 3 days
- name: Express
price: 1
estimatedDelivery: 3 days
type: array
items:
$ref: '#/definitions/ShippingOption'
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
Item23:
title: Item23
example:
title: Vintage dress (physical; no options)
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options: []
skus: []
nsfw: false
type: object
properties:
title:
description: ''
example: Vintage dress (physical; no options)
type: string
description:
description: ''
example: This is a listing example.
type: string
processingTime:
description: ''
example: 3 days
type: string
price:
description: ''
example: 100
type: integer
format: int32
tags:
description: ''
example:
- vintage dress
type: array
items:
type: string
images:
description: ''
example:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
type: array
items:
$ref: '#/definitions/Image'
categories:
description: ''
example:
- "\U0001F45A Apparel & Accessories"
type: array
items:
type: string
condition:
description: ''
example: New
type: string
options:
description: ''
example: []
type: array
items:
type: string
skus:
description: ''
example: []
type: array
items:
type: string
nsfw:
description: ''
example: false
type: boolean
required:
- title
- description
- processingTime
- price
- tags
- images
- categories
- condition
- options
- skus
- nsfw
CreateANewListing(digital;W/Options)request:
title: Create a new listing (digital; w/ options)Request
type: object
properties:
slug:
description: ''
example: vintage-dress-digital-options
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item'
shippingOptions:
description: ''
example: []
type: array
items:
type: string
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
CreateANewListing(digital;NoOptions)request:
title: Create a new listing (digital; no options)Request
example:
slug: vintage-dress-digital-no-options
metadata:
contractType: DIGITAL_GOOD
format: FIXED_PRICE
expiry: '2037-12-31T05:00:00Z'
pricingCurrency: USD
item:
title: Vintage dress (digital; no options)
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options: []
skus: []
nsfw: false
shippingOptions: []
taxes: []
coupons: []
moderators:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
termsAndConditions: Terms and conditions.
refundPolicy: Refund policy.
type: object
properties:
slug:
description: ''
example: vintage-dress-digital-no-options
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item23'
shippingOptions:
description: ''
example: []
type: array
items:
type: string
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
CreateANewListing(service;W/Options)request:
title: Create a new listing (service; w/ options)Request
type: object
properties:
slug:
description: ''
example: vintage-dress-service-options
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item'
shippingOptions:
description: ''
example: []
type: array
items:
type: string
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
CreateANewListingServiceNoOptionsRequest:
title: Create a new listing (service; no options)Request
example:
slug: vintage-dress-service-no-options
metadata:
contractType: SERVICE
format: FIXED_PRICE
expiry: '2037-12-31T05:00:00Z'
pricingCurrency: USD
item:
title: Vintage dress (service; no options)
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options: []
skus: []
nsfw: false
shippingOptions: []
taxes: []
coupons: []
moderators:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
termsAndConditions: Terms and conditions.
refundPolicy: Refund policy.
type: object
properties:
slug:
description: ''
example: vintage-dress-service-no-options
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item23'
shippingOptions:
description: ''
example: []
type: array
items:
type: string
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example:
- QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
- Qmbh95GgLueUusSgm4tUhHFEZA6hNuB8yYAgzi1FCDQX2G
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
UpdateAListingrequest:
title: Update a listingRequest
example:
slug: vintage-nice-dress
metadata:
contractType: PHYSICAL_GOOD
format: FIXED_PRICE
expiry: '2037-12-31T05:00:00Z'
pricingCurrency: USD
item:
title: YuooMuoo V-neck Knitted Dress
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options:
- name: Color
description: Color of the dress.
variants:
- Red
- Cream
- Black
- name: Sizes
description: Size of the dress.
variants:
- Small
- Medium
- Large
skus:
- variantCombo:
- 0
- 0
productID: dress-red-small
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 1
productID: dress-red-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 2
productID: dress-red-large
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 0
productID: dress-cream-small
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 1
productID: dress-cream-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 2
productID: dress-cream-large
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 0
productID: dress-black-small
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 1
productID: dress-black-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 2
productID: dress-black-large
surcharge: 0
quantity: 1000
nsfw: false
shippingOptions:
- name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 5 days
- name: Express
price: 50
estimatedDelivery: 3 days
taxes: []
coupons: []
moderators: []
termsAndConditions: Terms and conditions.
refundPolicy: Refund policy.
type: object
properties:
slug:
description: ''
example: vintage-nice-dress
type: string
metadata:
$ref: '#/definitions/Metadata'
item:
$ref: '#/definitions/Item53'
shippingOptions:
description: ''
example:
- name: Worldwide
type: FIXED_PRICE
regions:
- ALL
services:
- name: Standard
price: 0
estimatedDelivery: 5 days
- name: Express
price: 50
estimatedDelivery: 3 days
type: array
items:
$ref: '#/definitions/ShippingOption'
taxes:
description: ''
example: []
type: array
items:
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
moderators:
description: ''
example: []
type: array
items:
type: string
termsAndConditions:
description: ''
example: Terms and conditions.
type: string
refundPolicy:
description: ''
example: Refund policy.
type: string
required:
- slug
- metadata
- item
- shippingOptions
- taxes
- coupons
- moderators
- termsAndConditions
- refundPolicy
Item53:
title: Item53
example:
title: YuooMuoo V-neck Knitted Dress
description: This is a listing example.
processingTime: 3 days
price: 100
tags:
- vintage dress
images:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
categories:
- "\U0001F45A Apparel & Accessories"
condition: New
options:
- name: Color
description: Color of the dress.
variants:
- Red
- Cream
- Black
- name: Sizes
description: Size of the dress.
variants:
- Small
- Medium
- Large
skus:
- variantCombo:
- 0
- 0
productID: dress-red-small
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 1
productID: dress-red-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 2
productID: dress-red-large
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 0
productID: dress-cream-small
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 1
productID: dress-cream-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 2
productID: dress-cream-large
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 0
productID: dress-black-small
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 1
productID: dress-black-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 2
productID: dress-black-large
surcharge: 0
quantity: 1000
nsfw: false
type: object
properties:
title:
description: ''
example: YuooMuoo V-neck Knitted Dress
type: string
description:
description: ''
example: This is a listing example.
type: string
processingTime:
description: ''
example: 3 days
type: string
price:
description: ''
example: 100
type: integer
format: int32
tags:
description: ''
example:
- vintage dress
type: array
items:
type: string
images:
description: ''
example:
- filename: front
tiny: QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz
small: QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9
medium: QmTJfeeapZwFM8EoZAuf16JsSJyxZtKaAR6hmWiMf4CTcF
large: QmfTKL3Z67mWKTKf9XKSCj1ptmDRaZLr5yjPS4JrVDgo5h
original: QmNexx7SaJCVCjyGGG3j2k7fenn3iVhtWdm9RvKvT7GTLq
- filename: cream
tiny: QmU1cBgjyHpuzDYbEd4iDVuPzxgKM3CqhRhDJqkHWCKBXq
small: QmP3BVFuga7N4XEX8iU2MFYC7pc6mfTRQRrpZbKiVy2Csr
medium: QmQaSzaoHzp8raZLtPEFyCjTnwfXvDGKdXFM83STDVWG43
large: QmNsFdsX2LNALG2WBxw6E6FTPZWgJcRAcLHnKdWczrCNf9
original: QmTEUnCjuQPj1ggj5UL5vJujkgBiNYY4jkteugnogiCJny
- filename: black
tiny: QmdA3Nmc8VnwSvt98Deo2RQztEiCsAkNLhron73bnBzARe
small: QmcADxUo89ZsEAWiYsuUk7hrgjWDMKXL1CtoA9sTNrQFFP
medium: QmZydpAJoLsJWbP5vmh59W6bW1kuiCV34yD62hq28AtP7b
large: QmXixGseetihe6vZiWcTw9N1pieok1YtRoxwvyd5d7jz6s
original: QmZsZ78FJwt281gfeUvGzDnsBW7WNjPWW3aJWDKskhpCRr
- filename: other_red
tiny: QmbRFtxNWqACak1vvMJrrxUjzWjTJbMqi3vdUK5ZYvibgt
small: QmRdYph9YrfpdzMsaDnuySj6U4AY9dZhmjd8Cv2e6SscUG
medium: QmcD4pkp7SwCmN95pFnED2hz1LfsoYTPpynxeZbxCMoYPL
large: QmbSQZNAL3pZspUYWm6WNBD1oEQ6i9EnWPEsnk1DfdKnAv
original: QmZpgjK4jXmdqPg8Jt9YHGVmiuowVve3sbN2AZx7GXioDF
type: array
items:
$ref: '#/definitions/Image'
categories:
description: ''
example:
- "\U0001F45A Apparel & Accessories"
type: array
items:
type: string
condition:
description: ''
example: New
type: string
options:
description: ''
example:
- name: Color
description: Color of the dress.
variants:
- Red
- Cream
- Black
- name: Sizes
description: Size of the dress.
variants:
- Small
- Medium
- Large
type: array
items:
$ref: '#/definitions/Option55'
skus:
description: ''
example:
- variantCombo:
- 0
- 0
productID: dress-red-small
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 1
productID: dress-red-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 0
- 2
productID: dress-red-large
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 0
productID: dress-cream-small
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 1
productID: dress-cream-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 1
- 2
productID: dress-cream-large
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 0
productID: dress-black-small
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 1
productID: dress-black-medium
surcharge: 0
quantity: 1000
- variantCombo:
- 2
- 2
productID: dress-black-large
surcharge: 0
quantity: 1000
type: array
items:
$ref: '#/definitions/Sku'
nsfw:
description: ''
example: false
type: boolean
required:
- title
- description
- processingTime
- price
- tags
- images
- categories
- condition
- options
- skus
- nsfw
Option55:
title: Option55
example:
name: Color
description: Color of the dress.
variants:
- Red
- Cream
- Black
type: object
properties:
name:
description: ''
example: Color
type: string
description:
description: ''
example: Color of the dress.
type: string
variants:
description: ''
example:
- Red
- Cream
- Black
type: array
items:
type: string
required:
- name
- description
- variants
SetAsModeratorrequest:
title: Set as moderatorRequest
example:
description: Long time OpenBazaar moderator located in Chicago
termsAndConditions: Will moderate anything and everything
languages:
- English
- Spanish
fee:
feeType: FIXED_PLUS_PERCENTAGE
fixedFee:
currencyCode: USD
amount: 300
percentage: 5
type: object
properties:
description:
description: ''
example: Long time OpenBazaar moderator located in Chicago
type: string
termsAndConditions:
description: ''
example: Will moderate anything and everything
type: string
languages:
description: ''
example:
- English
- Spanish
type: array
items:
type: string
fee:
$ref: '#/definitions/Fee'
required:
- description
- termsAndConditions
- languages
- fee
Fee:
title: Fee
example:
feeType: FIXED_PLUS_PERCENTAGE
fixedFee:
currencyCode: USD
amount: 300
percentage: 5
type: object
properties:
feeType:
description: ''
example: FIXED_PLUS_PERCENTAGE
type: string
fixedFee:
$ref: '#/definitions/FixedFee'
percentage:
description: ''
example: 5
type: integer
format: int32
required:
- feeType
- fixedFee
- percentage
FixedFee:
title: FixedFee
example:
currencyCode: USD
amount: 300
type: object
properties:
currencyCode:
description: ''
example: USD
type: string
amount:
description: ''
example: 300
type: integer
format: int32
required:
- currencyCode
- amount
UpdateModeratorInforequest:
title: Update moderator infoRequest
example:
description: Long time OpenBazaar moderator located in Chicago
termsAndConditions: Will moderate anything and everything
languages:
- English
- Spanish
fee:
feeType: FIXED_PLUS_PERCENTAGE
fixedFee:
currencyCode: USD
amount: 300
percentage: 5
type: object
properties:
description:
description: ''
example: Long time OpenBazaar moderator located in Chicago
type: string
termsAndConditions:
description: ''
example: Will moderate anything and everything
type: string
languages:
description: ''
example:
- English
- Spanish
type: array
items:
type: string
fee:
$ref: '#/definitions/Fee'
required:
- description
- termsAndConditions
- languages
- fee
GetEstimateToPurchaseAListingrequest:
title: Get Estimate to Purchase a ListingRequest
example:
address: 31 Spooner Street Apt. 124
city: Quahog
state: RI
shipTo: Globex Corporation
countryCode: UNITED_STATES
postalCode: ''
addressNotes: Leave package at back door
items:
- listingHash: zb2rhad6oPUEHTNMCCS6MQND541S2KSa7DrYAaBAxQgRDYQ8C
quantity: 1
options:
- name: Color
value: Cream
- name: Sizes
value: Medium
shipping:
value: 0
name: Worldwide
service: Standard
estimatedDelivery: 3 days
price: 0
moderator: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: object
properties:
address:
description: ''
example: 31 Spooner Street Apt. 124
type: string
city:
description: ''
example: Quahog
type: string
state:
description: ''
example: RI
type: string
shipTo:
description: ''
example: Globex Corporation
type: string
countryCode:
description: ''
example: UNITED_STATES
type: string
postalCode:
description: ''
type: string
addressNotes:
description: ''
example: Leave package at back door
type: string
items:
description: ''
example:
- listingHash: zb2rhad6oPUEHTNMCCS6MQND541S2KSa7DrYAaBAxQgRDYQ8C
quantity: 1
options:
- name: Color
value: Cream
- name: Sizes
value: Medium
shipping:
value: 0
name: Worldwide
service: Standard
estimatedDelivery: 3 days
price: 0
moderator: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: array
items:
$ref: '#/definitions/Item66'
required:
- address
- city
- state
- shipTo
- countryCode
- postalCode
- addressNotes
- items
Item66:
title: Item66
example:
listingHash: zb2rhad6oPUEHTNMCCS6MQND541S2KSa7DrYAaBAxQgRDYQ8C
quantity: 1
options:
- name: Color
value: Cream
- name: Sizes
value: Medium
shipping:
value: 0
name: Worldwide
service: Standard
estimatedDelivery: 3 days
price: 0
moderator: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: object
properties:
listingHash:
description: ''
example: zb2rhad6oPUEHTNMCCS6MQND541S2KSa7DrYAaBAxQgRDYQ8C
type: string
quantity:
description: ''
example: 1
type: integer
format: int32
options:
description: ''
example:
- name: Color
value: Cream
- name: Sizes
value: Medium
type: array
items:
$ref: '#/definitions/Option67'
shipping:
$ref: '#/definitions/Shipping'
moderator:
description: ''
example: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: string
required:
- listingHash
- quantity
- options
- shipping
- moderator
Option67:
title: Option67
example:
name: Color
value: Cream
type: object
properties:
name:
description: ''
example: Color
type: string
value:
description: ''
example: Cream
type: string
required:
- name
- value
Shipping:
title: Shipping
example:
value: 0
name: Worldwide
service: Standard
estimatedDelivery: 3 days
price: 0
type: object
properties:
value:
description: ''
example: 0
type: integer
format: int32
name:
description: ''
example: Worldwide
type: string
service:
description: ''
example: Standard
type: string
estimatedDelivery:
description: ''
example: 3 days
type: string
price:
description: ''
example: 0
type: integer
format: int32
required:
- value
- name
- service
- estimatedDelivery
- price
PurchaseAnItemrequest:
title: Purchase an itemRequest
example:
shipTo: Dr Washington Sanchez
address: 1060 W Addison
city: Chicago
state: Illinois
countryCode: UNITED_STATES
postalCode: '60613'
addressNotes: ''
items:
- listingHash: zb2rhXdiuRc5GhfmnvP35DTQNur3cGRUBfL3WNNSF3ZKHEkJd
quantity: 1
options: []
shipping:
name: USA
service: USPS Standard
memo: thanks!
coupons: []
moderator: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: object
properties:
shipTo:
description: ''
example: Dr Washington Sanchez
type: string
address:
description: ''
example: 1060 W Addison
type: string
city:
description: ''
example: Chicago
type: string
state:
description: ''
example: Illinois
type: string
countryCode:
description: ''
example: UNITED_STATES
type: string
postalCode:
description: ''
example: '60613'
type: string
addressNotes:
description: ''
type: string
items:
description: ''
example:
- listingHash: zb2rhXdiuRc5GhfmnvP35DTQNur3cGRUBfL3WNNSF3ZKHEkJd
quantity: 1
options: []
shipping:
name: USA
service: USPS Standard
memo: thanks!
coupons: []
type: array
items:
$ref: '#/definitions/Item70'
moderator:
description: ''
example: QmamG5uQjRqrdxAxp4DJK4TLvs2Yet8Nuiztip4ALD7i1U
type: string
required:
- shipTo
- address
- city
- state
- countryCode
- postalCode
- addressNotes
- items
- moderator
Item70:
title: Item70
example:
listingHash: zb2rhXdiuRc5GhfmnvP35DTQNur3cGRUBfL3WNNSF3ZKHEkJd
quantity: 1
options: []
shipping:
name: USA
service: USPS Standard
memo: thanks!
coupons: []
type: object
properties:
listingHash:
description: ''
example: zb2rhXdiuRc5GhfmnvP35DTQNur3cGRUBfL3WNNSF3ZKHEkJd
type: string
quantity:
description: ''
example: 1
type: integer
format: int32
options:
description: ''
example: []
type: array
items:
type: string
shipping:
$ref: '#/definitions/Shipping71'
memo:
description: ''
example: thanks!
type: string
coupons:
description: ''
example: []
type: array
items:
type: string
required:
- listingHash
- quantity
- options
- shipping
- memo
- coupons
Shipping71:
title: Shipping71
example:
name: USA
service: USPS Standard
type: object
properties:
name:
description: ''
example: USA
type: string
service:
description: ''
example: USPS Standard
type: string
required:
- name
- service
ConfirmAnOrderofflinerequest:
title: Confirm an order (offline)
example:
orderId: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
reject: false
type: object
properties:
orderId:
description: ''
example: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
type: string
reject:
description: ''
example: false
type: boolean
required:
- orderId
- reject
FulfillAnOrderrequest:
title: Fulfill an orderRequest
example:
orderId: QmSJmnSgxfME35BiwedKvVMRBcFu4NA7MpB22vhsZ9GF2H
physicalDelivery:
- shipper: UPS
trackingNumber: 1Z204E380338943508
digitalDelivery:
- url: 'http://example.com/download.mp3'
password: letmein
type: object
properties:
orderId:
description: ''
example: QmSJmnSgxfME35BiwedKvVMRBcFu4NA7MpB22vhsZ9GF2H
type: string
physicalDelivery:
description: ''
example:
- shipper: UPS
trackingNumber: 1Z204E380338943508
type: array
items:
$ref: '#/definitions/PhysicalDelivery'
digitalDelivery:
description: ''
example:
- url: 'http://example.com/download.mp3'
password: letmein
type: array
items:
$ref: '#/definitions/DigitalDelivery'
required:
- orderId
- physicalDelivery
- digitalDelivery
PhysicalDelivery:
title: PhysicalDelivery
example:
shipper: UPS
trackingNumber: 1Z204E380338943508
type: object
properties:
shipper:
description: ''
example: UPS
type: string
trackingNumber:
description: ''
example: 1Z204E380338943508
type: string
required:
- shipper
- trackingNumber
DigitalDelivery:
title: DigitalDelivery
example:
url: 'http://example.com/download.mp3'
password: letmein
type: object
properties:
url:
description: ''
example: 'http://example.com/download.mp3'
type: string
password:
description: ''
example: letmein
type: string
required:
- url
- password
CompleteAnOrderrequest:
title: Complete an orderRequest
example:
orderId: QmP9rtg9tm5zv8RrPTJpyDc3bfqwnaogjbneBTPaf8TjA9
ratings:
- slug: vintage-nice-dress
overall: 3
quality: 4
description: 5
deliverySpeed: 5
customerService: 3
review: This rocks!
anonymous: true
type: object
properties:
orderId:
description: ''
example: QmP9rtg9tm5zv8RrPTJpyDc3bfqwnaogjbneBTPaf8TjA9
type: string
ratings:
description: ''
example:
- slug: vintage-nice-dress
overall: 3
quality: 4
description: 5
deliverySpeed: 5
customerService: 3
review: This rocks!
anonymous: true
type: array
items:
$ref: '#/definitions/Rating'
required:
- orderId
- ratings
Rating:
title: Rating
example:
slug: vintage-nice-dress
overall: 3
quality: 4
description: 5
deliverySpeed: 5
customerService: 3
review: This rocks!
anonymous: true
type: object
properties:
slug:
description: ''
example: vintage-nice-dress
type: string
overall:
description: ''
example: 3
type: integer
format: int32
quality:
description: ''
example: 4
type: integer
format: int32
description:
description: ''
example: 5
type: integer
format: int32
deliverySpeed:
description: ''
example: 5
type: integer
format: int32
customerService:
description: ''
example: 3
type: integer
format: int32
review:
description: ''
example: This rocks!
type: string
anonymous:
description: ''
example: true
type: boolean
required:
- slug
- overall
- quality
- description
- deliverySpeed
- customerService
- review
- anonymous
RefundAnOrderrequest:
title: Refund an orderRequest
example:
orderId: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
type: object
properties:
orderId:
description: ''
example: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
type: string
required:
- orderId
CancelAnOfflineOrderrequest:
title: Cancel an offline orderRequest
example:
orderId: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
type: object
properties:
orderId:
description: ''
example: QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
type: string
required:
- orderId
CreateANewPostrequest:
title: Create a new postRequest
example:
title: testy
longForm: This is a test post dawg.
images:
- filename: cat
large: zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY
medium: zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN
original: zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm
small: zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY
tiny: zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV
tags:
- Yo
type: object
properties:
title:
description: ''
example: testy
type: string
longForm:
description: ''
example: This is a test post dawg.
type: string
images:
description: ''
example:
- filename: cat
large: zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY
medium: zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN
original: zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm
small: zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY
tiny: zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV
type: array
items:
$ref: '#/definitions/Image'
tags:
description: ''
example:
- Yo
type: array
items:
type: string
required:
- title
- longForm
- images
- tags
UpdateAPostrequest:
title: Update a postRequest
example:
title: testy
longForm: This is a test post dawg.
images:
- filename: cat
large: zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY
medium: zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN
original: zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm
small: zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY
tiny: zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV
tags:
- Yo
- Yo yo
type: object
properties:
title:
description: ''
example: testy
type: string
longForm:
description: ''
example: This is a test post dawg.
type: string
images:
description: ''
example:
- filename: cat
large: zb2rhmBUB9i7UkfmeD3obJYK3FFS5K8N8QHaUanG8UWLVBHiY
medium: zb2rhaFhqziCWk1zo5tMRxQEUchfvJFaGG4DY1anEoR4GnYrN
original: zb2rhe2o6WbHqcER5VUKsMUbQrmpCC6ihg8qZ4JS9wVgKz9wm
small: zb2rhbDCeEiTTunugWPaRRKFCfNKUaB7aCR53nrPnMa9usZXY
tiny: zb2rhgqJDbshwAgPjs7X2h4mDm3V3BpLbp4tFGqkg1LNkg9yV
type: array
items:
$ref: '#/definitions/Image'
tags:
description: ''
example:
- Yo
- Yo yo
type: array
items:
type: string
required:
- title
- longForm
- images
- tags
SetTheProfilerequest:
title: Set the profileRequest
example:
handle: drwasho
name: Washington Sanchez
location: Brisbane
about: The Dude
shortDescription: Yo
contactInfo:
website: openbazaar.org
email: drwasho@openbazaar.org
phoneNumber: '12345'
nsfw: false
vendor: true
moderator: false
colors:
primary: '#000000'
secondary: '#FFD700'
text: '#ffffff'
highlight: '#123ABC'
highlightText: '#DEAD00'
type: object
properties:
handle:
description: ''
example: drwasho
type: string
name:
description: ''
example: Washington Sanchez
type: string
location:
description: ''
example: Brisbane
type: string
about:
description: ''
example: The Dude
type: string
shortDescription:
description: ''
example: Yo
type: string
contactInfo:
$ref: '#/definitions/ContactInfo'
nsfw:
description: ''
example: false
type: boolean
vendor:
description: ''
example: true
type: boolean
moderator:
description: ''
example: false
type: boolean
colors:
$ref: '#/definitions/Colors'
required:
- handle
- name
- location
- about
- shortDescription
- contactInfo
- nsfw
- vendor
- moderator
- colors
ContactInfo:
title: ContactInfo
example:
website: openbazaar.org
email: drwasho@openbazaar.org
phoneNumber: '12345'
type: object
properties:
website:
description: ''
example: openbazaar.org
type: string
email:
description: ''
example: drwasho@openbazaar.org
type: string
phoneNumber:
description: ''
example: '12345'
type: string
required:
- website
- email
- phoneNumber
Colors:
title: Colors
example:
primary: '#000000'
secondary: '#FFD700'
text: '#ffffff'
highlight: '#123ABC'
highlightText: '#DEAD00'
type: object
properties:
primary:
description: ''
example: '#000000'
type: string
secondary:
description: ''
example: '#FFD700'
type: string
text:
description: ''
example: '#ffffff'
type: string
highlight:
description: ''
example: '#123ABC'
type: string
highlightText:
description: ''
example: '#DEAD00'
type: string
required:
- primary
- secondary
- text
- highlight
- highlightText
EditTheProfilerequest:
title: Edit the profileRequest
example:
peerID: QmVD3WwjZKRwEnczMcVEwEm9Xq9ZKoZpQbDkqPp5Uoi9RZ
handle: '@manbazaar'
name: 'Men&#39;s Clothing Bazaar'
location: ''
about: ''
shortDescription: Clothing for men
nsfw: false
vendor: true
moderator: false
contactInfo:
website: ''
email: ''
phoneNumber: ''
colors:
primary: ''
secondary: ''
text: ''
highlight: ''
highlightText: ''
avatarHashes:
tiny: Qmckqkv8su5Tw6Styrmzzi3gv78k95iReZrQywb5Rny3gz
small: QmZ6irSjduA6w3p9EMi7fcZGNdPNYungpxekBAn3PWhDKK
medium: QmRfe8HTeUqEYj2NvrTo24SZBxUaBganTVSo76PRksFggE
large: QmYwgMDSYpokfz7seLkj3rtZhat6qJtcvddt1c1XR4s5jL
original: QmPK8X2FPi9cregxSRvfhPxMVowSLxHBJfdMnyRg1LkyUW
headerHashes:
tiny: Qmdzo6zCzTUyDdwWC5hg4axXkxPRS7wFiKX6nvcBkRFQUw
small: QmZpAfKAy4NG9PZfJaSM9ahXS9mQTtjQ8hDNPcHyQJLBps
medium: QmZirmkZpuLTBUmBU4G5iPZ2ZFLeb3hkmx46mPrWhqRkWR
large: QmXA6ZSLM9HXCNfyk3QS4z436VeZoZ2sXLWN3NCvwSH6sM
original: QmVYEs71oQM78ZFWpWD5RX1tYXpjYoSzitvfuyfi8ovQWJ
stats:
followerCount: 0
followingCount: 0
listingCount: 3
ratingCount: 0
averageRating: 0
bitcoinPubkey: 0299f8403f38e7af3487faceada4d60919d01ed6ed2b6d5f38e151ffc9c0d71be2
lastModified: '2017-06-08T11:02:38.264019143Z'
type: object
properties:
peerID:
description: ''
example: QmVD3WwjZKRwEnczMcVEwEm9Xq9ZKoZpQbDkqPp5Uoi9RZ
type: string
handle:
description: ''
example: '@manbazaar'
type: string
name:
description: ''
example: 'Men&#39;s Clothing Bazaar'
type: string
location:
description: ''
type: string
about:
description: ''
type: string
shortDescription:
description: ''
example: Clothing for men
type: string
nsfw:
description: ''
example: false
type: boolean
vendor:
description: ''
example: true
type: boolean
moderator:
description: ''
example: false
type: boolean
contactInfo:
$ref: '#/definitions/ContactInfo'
colors:
$ref: '#/definitions/Colors'
avatarHashes:
$ref: '#/definitions/AvatarHashes'
headerHashes:
$ref: '#/definitions/HeaderHashes'
stats:
$ref: '#/definitions/Stats'
bitcoinPubkey:
description: ''
example: 0299f8403f38e7af3487faceada4d60919d01ed6ed2b6d5f38e151ffc9c0d71be2
type: string
lastModified:
description: ''
example: '2017-06-08T11:02:38.264019143Z'
type: string
required:
- peerID
- handle
- name
- location
- about
- shortDescription
- nsfw
- vendor
- moderator
- contactInfo
- colors
- avatarHashes
- headerHashes
- stats
- bitcoinPubkey
- lastModified
AvatarHashes:
title: AvatarHashes
example:
tiny: Qmckqkv8su5Tw6Styrmzzi3gv78k95iReZrQywb5Rny3gz
small: QmZ6irSjduA6w3p9EMi7fcZGNdPNYungpxekBAn3PWhDKK
medium: QmRfe8HTeUqEYj2NvrTo24SZBxUaBganTVSo76PRksFggE
large: QmYwgMDSYpokfz7seLkj3rtZhat6qJtcvddt1c1XR4s5jL
original: QmPK8X2FPi9cregxSRvfhPxMVowSLxHBJfdMnyRg1LkyUW
type: object
properties:
tiny:
description: ''
example: Qmckqkv8su5Tw6Styrmzzi3gv78k95iReZrQywb5Rny3gz
type: string
small:
description: ''
example: QmZ6irSjduA6w3p9EMi7fcZGNdPNYungpxekBAn3PWhDKK
type: string
medium:
description: ''
example: QmRfe8HTeUqEYj2NvrTo24SZBxUaBganTVSo76PRksFggE
type: string
large:
description: ''
example: QmYwgMDSYpokfz7seLkj3rtZhat6qJtcvddt1c1XR4s5jL
type: string
original:
description: ''
example: QmPK8X2FPi9cregxSRvfhPxMVowSLxHBJfdMnyRg1LkyUW
type: string
required:
- tiny
- small
- medium
- large
- original
HeaderHashes:
title: HeaderHashes
example:
tiny: Qmdzo6zCzTUyDdwWC5hg4axXkxPRS7wFiKX6nvcBkRFQUw
small: QmZpAfKAy4NG9PZfJaSM9ahXS9mQTtjQ8hDNPcHyQJLBps
medium: QmZirmkZpuLTBUmBU4G5iPZ2ZFLeb3hkmx46mPrWhqRkWR
large: QmXA6ZSLM9HXCNfyk3QS4z436VeZoZ2sXLWN3NCvwSH6sM
original: QmVYEs71oQM78ZFWpWD5RX1tYXpjYoSzitvfuyfi8ovQWJ
type: object
properties:
tiny:
description: ''
example: Qmdzo6zCzTUyDdwWC5hg4axXkxPRS7wFiKX6nvcBkRFQUw
type: string
small:
description: ''
example: QmZpAfKAy4NG9PZfJaSM9ahXS9mQTtjQ8hDNPcHyQJLBps
type: string
medium:
description: ''
example: QmZirmkZpuLTBUmBU4G5iPZ2ZFLeb3hkmx46mPrWhqRkWR
type: string
large:
description: ''
example: QmXA6ZSLM9HXCNfyk3QS4z436VeZoZ2sXLWN3NCvwSH6sM
type: string
original:
description: ''
example: QmVYEs71oQM78ZFWpWD5RX1tYXpjYoSzitvfuyfi8ovQWJ
type: string
required:
- tiny
- small
- medium
- large
- original
Stats:
title: Stats
example:
followerCount: 0
followingCount: 0
listingCount: 3
ratingCount: 0
averageRating: 0
type: object
properties:
followerCount:
description: ''
example: 0
type: integer
format: int32
followingCount:
description: ''
example: 0
type: integer
format: int32
listingCount:
description: ''
example: 3
type: integer
format: int32
ratingCount:
description: ''
example: 0
type: integer
format: int32
averageRating:
description: ''
example: 0
type: integer
format: int32
required:
- followerCount
- followingCount
- listingCount
- ratingCount
- averageRating
PatchTheProfilerequest:
title: Patch the profileRequest
example:
peerID: Qmai9U7856XKgDSvMFExPbQufcsc4ksG779VyG4Md5dn4J
handle: drwasho
name: Washington Sanchez
location: Brisbane
about: The Dude
shortDescription: Yo
nsfw: true
vendor: true
moderator: false
contactInfo:
website: openbazaar.org
email: drwasho@openbazaar.org
phoneNumber: '12345'
colors:
primary: '#000000'
secondary: '#FFD700'
text: '#ffffff'
highlight: '#123ABC'
highlightText: '#DEAD00'
avatarHashes:
tiny: QmPjkgnvCY8RnYQ5LFBrr36EEzTiagjZjVtxcZ5kV7NFNw
small: QmPJhf9FQ74qZebKZBXXR81bFNbC1tWPXzTNjmNNm58rES
medium: QmWdwMSNWFSKYdL8n47dK5EN7DRmPuTzjG12LPqQHAWb6P
large: QmSReXYhgiWATTuiYWDXzPMDy2k9g3PnM5VmHhwNREVA3B
original: QmUQmMHqpFR2SN6s5iNktUBHgBnzxpH9862pCDpNKnA5Vd
stats:
followerCount: 0
followingCount: 0
listingCount: 0
ratingCount: 0
averageRating: 0
bitcoinPubkey: 03b54f70a26768dfc6335ff1896de9fb34c7c8de98b45141fc264913583b867387
lastModified: '2017-03-24T13:10:53.419703009Z'
type: object
properties:
peerID:
description: ''
example: Qmai9U7856XKgDSvMFExPbQufcsc4ksG779VyG4Md5dn4J
type: string
handle:
description: ''
example: drwasho
type: string
name:
description: ''
example: Washington Sanchez
type: string
location:
description: ''
example: Brisbane
type: string
about:
description: ''
example: The Dude
type: string
shortDescription:
description: ''
example: Yo
type: string
nsfw:
description: ''
example: true
type: boolean
vendor:
description: ''
example: true
type: boolean
moderator:
description: ''
example: false
type: boolean
contactInfo:
$ref: '#/definitions/ContactInfo'
colors:
$ref: '#/definitions/Colors'
avatarHashes:
$ref: '#/definitions/AvatarHashes'
stats:
$ref: '#/definitions/Stats'
bitcoinPubkey:
description: ''
example: 03b54f70a26768dfc6335ff1896de9fb34c7c8de98b45141fc264913583b867387
type: string
lastModified:
description: ''
example: '2017-03-24T13:10:53.419703009Z'
type: string
required:
- peerID
- handle
- name
- location
- about
- shortDescription
- nsfw
- vendor
- moderator
- contactInfo
- colors
- avatarHashes
- stats
- bitcoinPubkey
- lastModified
Drwasho:
title: drwasho
example:
handle: '@drwasho'
name: Dr Washington Sanchez
location: 'Brisbane, Australia'
about: drwasho's node
shortDescription: drwasho's node
website: 'https://openbazaar.org'
email: drwasho@openbazaar.org
phoneNumber: 555-8790
social:
- type: TWITTER
username: '@drwasho'
proof: 'https://twitter.com/drwasho/status/792595422376144897'
avgRating: 0
numRatings: 0
nsfw: false
vendor: true
moderator: true
primaryColor: '#AF854C'
secondaryColor: '#E3E3E3'
textColor: '#FFFFFF'
highlightColor: ''
highlightTextColor: ''
avatarHashes:
tiny: QmPjkgnvCY8RnYQ5LFBrr36EEzTiagjZjVtxcZ5kV7NFNw
small: QmPJhf9FQ74qZebKZBXXR81bFNbC1tWPXzTNjmNNm58rES
medium: QmWdwMSNWFSKYdL8n47dK5EN7DRmPuTzjG12LPqQHAWb6P
large: QmSReXYhgiWATTuiYWDXzPMDy2k9g3PnM5VmHhwNREVA3B
original: QmUQmMHqpFR2SN6s5iNktUBHgBnzxpH9862pCDpNKnA5Vd
headerHashes:
tiny: Qmavc5kgtpbkgZ6vmRUKSpe4cVZwBfLumTJj2ZKdCKfm2P
small: QmRz7atxA7W57EeDRJ17RjV7w6xBm9X6i4h8agxdnnVaK9
medium: QmSaYCYQNZNRPS2ozfDnZm63gSnS2DzRDSLrLtN94ZjUkn
large: QmXZZekqM1HwNrgBTLksKd6W1VCyTesbdxnPCwkVKBVNBJ
original: QmcY9Pt3ZzivBGxXenjbrG4xQ4uAd4BUvLRLuXv3E6688S
followerCount: 0
followingCount: 0
listingCount: 0
bitcoinPubkey: 03486870b222ff981bf0ff202680a3b8bd0c1be1ae65a9284914995bab7952c225
acceptStealth: false
type: object
properties:
handle:
description: ''
example: '@drwasho'
type: string
name:
description: ''
example: Dr Washington Sanchez
type: string
location:
description: ''
example: 'Brisbane, Australia'
type: string
about:
description: ''
example: drwasho's node
type: string
shortDescription:
description: ''
example: drwasho's node
type: string
website:
description: ''
example: 'https://openbazaar.org'
type: string
email:
description: ''
example: drwasho@openbazaar.org
type: string
phoneNumber:
description: ''
example: 555-8790
type: string
social:
description: ''
example:
- type: TWITTER
username: '@drwasho'
proof: 'https://twitter.com/drwasho/status/792595422376144897'
type: array
items:
$ref: '#/definitions/Social'
avgRating:
description: ''
example: 0
type: integer
format: int32
numRatings:
description: ''
example: 0
type: integer
format: int32
nsfw:
description: ''
example: false
type: boolean
vendor:
description: ''
example: true
type: boolean
moderator:
description: ''
example: true
type: boolean
primaryColor:
description: ''
example: '#AF854C'
type: string
secondaryColor:
description: ''
example: '#E3E3E3'
type: string
textColor:
description: ''
example: '#FFFFFF'
type: string
highlightColor:
description: ''
type: string
highlightTextColor:
description: ''
type: string
avatarHashes:
$ref: '#/definitions/AvatarHashes'
headerHashes:
$ref: '#/definitions/HeaderHashes'
followerCount:
description: ''
example: 0
type: integer
format: int32
followingCount:
description: ''
example: 0
type: integer
format: int32
listingCount:
description: ''
example: 0
type: integer
format: int32
bitcoinPubkey:
description: ''
example: 03486870b222ff981bf0ff202680a3b8bd0c1be1ae65a9284914995bab7952c225
type: string
acceptStealth:
description: ''
example: false
type: boolean
required:
- handle
- name
- location
- about
- shortDescription
- website
- email
- phoneNumber
- social
- avgRating
- numRatings
- nsfw
- vendor
- moderator
- primaryColor
- secondaryColor
- textColor
- highlightColor
- highlightTextColor
- avatarHashes
- headerHashes
- followerCount
- followingCount
- listingCount
- bitcoinPubkey
- acceptStealth
Social:
title: Social
example:
type: TWITTER
username: '@drwasho'
proof: 'https://twitter.com/drwasho/status/792595422376144897'
type: object
properties:
type:
description: ''
example: TWITTER
type: string
username:
description: ''
example: '@drwasho'
type: string
proof:
description: ''
example: 'https://twitter.com/drwasho/status/792595422376144897'
type: string
required:
- type
- username
- proof
SetSettingsrequest:
title: Set settingsRequest
example:
paymentDataInQR: true
showNotifications: true
showNsfw: true
shippingAddresses:
- name: Seymour Butts
company: Globex Corporation
addressLineOne: 31 Spooner Street
addressLineTwo: Apt. 124
city: Quahog
state: RI
country: UNITED_STATES
addressNotes: Leave package at back door
localCurrency: USD
country: UNITED_STATES
language: English
termsAndConditions: By purchasing this item you agree to the following...
refundPolicy: All sales are final.
blockedNodes:
- QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG
- QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
- QmPDLS7TV9Q3gtxRXQVqrm2RpEtz1Mq6u2YGeuEJWCqu6B
moderators:
- QmNedYJ6WmLhacAL2ozxb4k33Gxd9wmKB7HyoxZCwXid1e
- QmQdi7EaJUmuRUtSaCPkijw5cptFfNcX2EPvMyQwR117Y2
smtpSettings:
notifications: true
serverAddress: 'smtp.urbanart.com:465'
username: urbanart
password: letmein
senderEmail: notifications@urbanart.com
recipientEmail: Dave@gmail.com
type: object
properties:
paymentDataInQR:
description: ''
example: true
type: boolean
showNotifications:
description: ''
example: true
type: boolean
showNsfw:
description: ''
example: true
type: boolean
shippingAddresses:
description: ''
example:
- name: Seymour Butts
company: Globex Corporation
addressLineOne: 31 Spooner Street
addressLineTwo: Apt. 124
city: Quahog
state: RI
country: UNITED_STATES
addressNotes: Leave package at back door
type: array
items:
$ref: '#/definitions/ShippingAddress'
localCurrency:
description: ''
example: USD
type: string
country:
description: ''
example: UNITED_STATES
type: string
language:
description: ''
example: English
type: string
termsAndConditions:
description: ''
example: By purchasing this item you agree to the following...
type: string
refundPolicy:
description: ''
example: All sales are final.
type: string
blockedNodes:
description: ''
example:
- QmecpJrN9RJ7smyYByQdZUy5mF6aapgCfKLKRmDtycv9aG
- QmamudHQGtztShX7Nc9HcczehdpGGWpFBWu2JvKWcpELxr
- QmPDLS7TV9Q3gtxRXQVqrm2RpEtz1Mq6u2YGeuEJWCqu6B
type: array
items:
type: string
moderators:
description: ''
example:
- QmNedYJ6WmLhacAL2ozxb4k33Gxd9wmKB7HyoxZCwXid1e
- QmQdi7EaJUmuRUtSaCPkijw5cptFfNcX2EPvMyQwR117Y2
type: array
items:
type: string
smtpSettings:
$ref: '#/definitions/SmtpSettings'
required:
- paymentDataInQR
- showNotifications
- showNsfw
- shippingAddresses
- localCurrency
- country
- language
- termsAndConditions
- refundPolicy
- blockedNodes
- moderators
- smtpSettings
ShippingAddress:
title: ShippingAddress
example:
name: Seymour Butts
company: Globex Corporation
addressLineOne: 31 Spooner Street
addressLineTwo: Apt. 124
city: Quahog
state: RI
country: UNITED_STATES
addressNotes: Leave package at back door
type: object
properties:
name:
description: ''
example: Seymour Butts
type: string
company:
description: ''
example: Globex Corporation
type: string
addressLineOne:
description: ''
example: 31 Spooner Street
type: string
addressLineTwo:
description: ''
example: Apt. 124
type: string
city:
description: ''
example: Quahog
type: string
state:
description: ''
example: RI
type: string
country:
description: ''
example: UNITED_STATES
type: string
addressNotes:
description: ''
example: Leave package at back door
type: string
required:
- name
- company
- addressLineOne
- addressLineTwo
- city
- state
- country
- addressNotes
SmtpSettings:
title: SmtpSettings
example:
notifications: true
serverAddress: 'smtp.urbanart.com:465'
username: urbanart
password: letmein
senderEmail: notifications@urbanart.com
recipientEmail: Dave@gmail.com
type: object
properties:
notifications:
description: ''
example: true
type: boolean
serverAddress:
description: ''
example: 'smtp.urbanart.com:465'
type: string
username:
description: ''
example: urbanart
type: string
password:
description: ''
example: letmein
type: string
senderEmail:
description: ''
example: notifications@urbanart.com
type: string
recipientEmail:
description: ''
example: Dave@gmail.com
type: string
required:
- notifications
- serverAddress
- username
- password
- senderEmail
- recipientEmail
UpdateSettingsrequest:
title: Update settingsRequest
example:
blockedNodes: []
country: UNITED_STATES
language: English
localCurrency: USD
mispaymentBuffer: 1
paymentDataInQR: true
refundPolicy: All sales are final.
shippingAddresses:
- addressLineOne: 1060 W Addison
addressLineTwo: Apt. 124
addressNotes: Leave package at back door
city: Chicago
company: Me
country: UNITED_STATES
name: Washington Sanchez
postalCode: '60613'
state: Illinois
showNotifications: true
showNsfw: true
smtpSettings:
notifications: false
password: letmein
recipientEmail: Dave@gmail.com
senderEmail: notifications@urbanart.com
serverAddress: 'smtp.urbanart.com:465'
username: urbanart
storeModerators:
- QmcguX9HRJPH4L9aZjVoWjQXHw9sf9dp5MHgKz6sPxNeXT
termsAndConditions: By purchasing this item you agree to the following...
version: '/openbazaar-go:0.5.6/'
type: object
properties:
blockedNodes:
description: ''
example: []
type: array
items:
type: string
country:
description: ''
example: UNITED_STATES
type: string
language:
description: ''
example: English
type: string
localCurrency:
description: ''
example: USD
type: string
mispaymentBuffer:
description: ''
example: 1
type: integer
format: int32
paymentDataInQR:
description: ''
example: true
type: boolean
refundPolicy:
description: ''
example: All sales are final.
type: string
shippingAddresses:
description: ''
example:
- addressLineOne: 1060 W Addison
addressLineTwo: Apt. 124
addressNotes: Leave package at back door
city: Chicago
company: Me
country: UNITED_STATES
name: Washington Sanchez
postalCode: '60613'
state: Illinois
type: array
items:
$ref: '#/definitions/ShippingAddress106'
showNotifications:
description: ''
example: true
type: boolean
showNsfw:
description: ''
example: true
type: boolean
smtpSettings:
$ref: '#/definitions/SmtpSettings'
storeModerators:
description: ''
example:
- QmcguX9HRJPH4L9aZjVoWjQXHw9sf9dp5MHgKz6sPxNeXT
type: array
items:
type: string
termsAndConditions:
description: ''
example: By purchasing this item you agree to the following...
type: string
version:
description: ''
example: '/openbazaar-go:0.5.6/'
type: string
required:
- blockedNodes
- country
- language
- localCurrency
- mispaymentBuffer
- paymentDataInQR
- refundPolicy
- shippingAddresses
- showNotifications
- showNsfw
- smtpSettings
- storeModerators
- termsAndConditions
- version
ShippingAddress106:
title: ShippingAddress106
example:
addressLineOne: 1060 W Addison
addressLineTwo: Apt. 124
addressNotes: Leave package at back door
city: Chicago
company: Me
country: UNITED_STATES
name: Washington Sanchez
postalCode: '60613'
state: Illinois
type: object
properties:
addressLineOne:
description: ''
example: 1060 W Addison
type: string
addressLineTwo:
description: ''
example: Apt. 124
type: string
addressNotes:
description: ''
example: Leave package at back door
type: string
city:
description: ''
example: Chicago
type: string
company:
description: ''
example: Me
type: string
country:
description: ''
example: UNITED_STATES
type: string
name:
description: ''
example: Washington Sanchez
type: string
postalCode:
description: ''
example: '60613'
type: string
state:
description: ''
example: Illinois
type: string
required:
- addressLineOne
- addressLineTwo
- addressNotes
- city
- company
- country
- name
- postalCode
- state
PatchSettingsrequest:
title: Patch settingsRequest
example:
localCurrency: AUD
type: object
properties:
localCurrency:
description: ''
example: AUD
type: string
required:
- localCurrency
SendBitcoinsrequest:
title: Send bitcoinsRequest
example:
address: mwMzbdFs5rW9yYAj2UkLXXsY9cpXcaugE8
amount: 100000
feeLevel: NORMAL
memo: Yo
type: object
properties:
address:
description: ''
example: mwMzbdFs5rW9yYAj2UkLXXsY9cpXcaugE8
type: string
amount:
description: ''
example: 100000
type: integer
format: int32
feeLevel:
description: ''
example: NORMAL
type: string
memo:
description: ''
example: Yo
type: string
required:
- address
- amount
- feeLevel
- memo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment