Emoji ID API server
caution
The emoji id API is currently in BETA. The API has largely stabilised, but endpoint paths, input and output parameters may still change without notice.
General information#
Description#
Version: 0.2.262
Emoji ID is a directory service that associates almost any type of structured data with a short, memorable identifier the emoji id.
Authentication#
API Key (JWT)
- Parameter Name: Authorization, in: header. Use format
Bearer TOKEN
- Parameter Name: Authorization, in: header. Use format
API Key (apiKey)
- Parameter Name: Authorization,X-Api-Key, in: header. With
Authorizationheader use formatBearer TOKEN, withX-Api-Keyuse api token
- Parameter Name: Authorization,X-Api-Key, in: header. With
API Key (two_factor)
- Parameter Name: Authorization, in: header. Optional: JWT token in
Bearer TOKENwith 2FA scope
- Parameter Name: Authorization, in: header. Optional: JWT token in
User Authentication#
From a user experience standpoint, we want encourage the use of magic links.
1. Users request a magic link
2. If 2FA is enabled submit proceed to 2FA.
Two factor authentication#
Two factor authentication
Complete login flow when user requires 2FA. refresh_token obtained from a call to /token or /token/refresh should be used to complete authentication. Note: 2FA token has expiration timeout, which is when expired sensitive operations would require authentication via 2fa once again.
Example#
POST /auth/2fa
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "code": "string", "refresh_token": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/auth/2fa',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "code": "string", "refresh_token": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/auth/2fa") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/auth/2fa")
let requestBody = """{ "code": "string", "refresh_token": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "code": "string", "refresh_token": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Confirm2Fa | true | none |
| ยป code | body | string | true | Two factor authentication code |
| ยป refresh_token | body | string | true | Refresh token obtained from login request |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | TokenResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Generate magic link for login#
Generate magic link for login
Will generate and send magic link to provided user's email. Assuming the email address corresponds to a valid user
Example#
POST /auth/magic_link
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "email": "string", "g_recaptcha_response": "string", "redirect": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/auth/magic_link',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "email": "string", "g_recaptcha_response": "string", "redirect": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/auth/magic_link") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/auth/magic_link")
let requestBody = """{ "email": "string", "g_recaptcha_response": "string", "redirect": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "email": "string", "g_recaptcha_response": "string", "redirect": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | MagicLinkLoginRequest | true | none |
| ยป email | body | string | false | |
| ยป g_recaptcha_response | body | string | false | Response from google Recaptcha |
| ยป redirect | body | string | false | Redirect path |
| ยป user_id | body | string(uuid) | false | User ID |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | MagicLinkLoginResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Login via password#
Login via password
Login via username/password. Will return access and refresh tokens. NOTE: when requires_2fa is not empty in response, provided "refresh_token" should be used to confirm 2FA code via POST /auth/2fa.
Example#
POST /auth/token
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "alternate_id": "string", "email": "string", "g_recaptcha_response": "string", "password": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/auth/token',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "alternate_id": "string", "email": "string", "g_recaptcha_response": "string", "password": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/auth/token") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/auth/token")
let requestBody = """{ "alternate_id": "string", "email": "string", "g_recaptcha_response": "string", "password": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "alternate_id": "string", "email": "string", "g_recaptcha_response": "string", "password": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | LoginRequest | true | none |
| ยป alternate_id | body | string | false | Alternate identifier |
| ยป email | body | string | false | |
| ยป g_recaptcha_response | body | string | false | Response from google Recaptcha |
| ยป password | body | string | true | Required: Password |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | TokenResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Refresh access token#
Refresh access token
Will return updated access and refresh tokens. NOTE: when requires_2fa is not empty in response, provided "refresh_token" should be used to confirm 2FA code via POST /2fa
Example#
POST /auth/token/refresh
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "refresh_token": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/auth/token/refresh',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "refresh_token": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/auth/token/refresh") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/auth/token/refresh")
let requestBody = """{ "refresh_token": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "refresh_token": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | RefreshRequest | true | none |
| ยป refresh_token | body | string | true | Refresh token obtained from login request |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | TokenResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Invalidates all user's access tokens#
Invalidates all user's access tokens
Requires UserWriteSelf scope
Example#
POST /logout
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Authorization':'API_KEY'};
fetch('/logout',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/logout") .addHeader("Authorization", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/logout")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Cart#
Cart management endpoints
Return cart content#
Return cart content
NOTE: user should have scope CartShow
Example#
GET /cart
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/cart") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Update cart items by adding new items to the cart#
Update cart items by adding new items to the cart
NOTE: user should have scope CartUpdate
Example#
POST /cart
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "items": [ { "emoji_id": "๐ฑ๐๐๐ด๐ต" } ], "tracking_data": null};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "items": [ { "emoji_id": "๐ฑ๐๐๐ด๐ต" } ], "tracking_data": null} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/cart") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart")
let requestBody = """{ "items": [ { "emoji_id": "๐ฑ๐๐๐ด๐ต" } ], "tracking_data": null}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "items": [ { "emoji_id": "๐ฑ๐๐๐ด๐ต" } ], "tracking_data": null}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AddItemsCartRequest | true | none |
| ยป items | body | [object] | true | New items to add to cart |
| ยปยป emoji_id | body | string | true | EmojiID to buy |
| ยป tracking_data | body | any | false | Tracking data |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Remove all items from cart#
Remove all items from cart
NOTE: user should have scope CartUpdate
Example#
DELETE /cart
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/cart") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Removes an order item from the cart#
Removes an order item from the cart
NOTE: user should have scope CartUpdate
Example#
DELETE /cart/cart_items/{cart_item_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart/cart_items/{cart_item_id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/cart/cart_items/{cart_item_id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart/cart_items/{cart_item_id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cart_item_id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Checkout last payment cart#
Checkout last payment cart
NOTE: user should have scope CartUpdate
Example#
POST /cart/checkout
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart/checkout',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/cart/checkout") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart/checkout")
let requestBody = """{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CheckoutCartRequest | true | none |
| ยป amount | body | integer(int64) | false | Amount paid in cash. Applicable and required only for Cash payment option for Admin. |
| ยป cancel_url | body | string | false | URL user will be redirected if payment cancelled Required for Stripe Checkout |
| ยป external_reference | body | string | false | External reference for cash payment. Applicable and required only for Cash payment option for Admin. |
| ยป method | body | string | true | Payment method type |
| ยป pubkey | body | string | false | Optional: The user's public key to associate with this emoji id. If provided will use this pubkey otherwise will default to the first pubkey returned for the user. |
| ยป success_url | body | string | false | URL user will be redirected after successful payment Required for Stripe Checkout |
| ยป tracking_data | body | any | false | Optional: tracking data |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป method | Free |
| ยป method | CoinbaseCommerce |
| ยป method | Stripe |
| ยป method | Cash |
| ยป method | PayPal |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Checkout saved cart by id#
Checkout saved cart by id
NOTE: user should have scope CartUpdate
Example#
POST /cart/checkout/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart/checkout/{id}',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/cart/checkout/{id}") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart/checkout/{id}")
let requestBody = """{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
| body | body | CheckoutCartRequest | true | none |
| ยป amount | body | integer(int64) | false | Amount paid in cash. Applicable and required only for Cash payment option for Admin. |
| ยป cancel_url | body | string | false | URL user will be redirected if payment cancelled Required for Stripe Checkout |
| ยป external_reference | body | string | false | External reference for cash payment. Applicable and required only for Cash payment option for Admin. |
| ยป method | body | string | true | Payment method type |
| ยป pubkey | body | string | false | Optional: The user's public key to associate with this emoji id. If provided will use this pubkey otherwise will default to the first pubkey returned for the user. |
| ยป success_url | body | string | false | URL user will be redirected after successful payment Required for Stripe Checkout |
| ยป tracking_data | body | any | false | Optional: tracking data |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป method | Free |
| ยป method | CoinbaseCommerce |
| ยป method | Stripe |
| ยป method | Cash |
| ยป method | PayPal |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Convert pending payment cart back into Draft status#
Convert pending payment cart back into Draft status
NOTE: user should have scope CartUpdate
Example#
POST /cart/convert_to_draft
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart/convert_to_draft',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/cart/convert_to_draft") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart/convert_to_draft")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Apply promo code#
Apply promo code
NOTE: user should have scope CartUpdate Can only be applied to pending payment carts
Example#
POST /cart/promo_code
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "code": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/cart/promo_code',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "code": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/cart/promo_code") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/cart/promo_code")
let requestBody = """{ "code": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "code": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | ApplyPromoCodeRequest | true | none |
| ยป code | body | string | true | Code to apply |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Fetch payment methods for the user#
Fetch payment methods for the user
NOTE: user should have scope PaymentMethodRead
Example#
GET /payment_methods
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/payment_methods',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/payment_methods") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/payment_methods")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [PaymentMethod] | false | none | none |
| ยป brand | string | false | none | none |
| ยป country | string | false | none | none |
| ยป exp_month | integer(int32) | false | none | none |
| ยป exp_year | integer(int32) | false | none | none |
| ยป id | string | true | none | none |
| ยป last4 | string | false | none | none |
| ยป payment_type | string | true | none | none |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Delete payment method#
Delete payment method
NOTE: user should have scope PaymentMethodDestroy
Example#
DELETE /payment_methods/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/payment_methods/{id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/payment_methods/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/payment_methods/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PaymentMethod |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Emoji#
Emoji endpoints. Endpoints to interact with the supported Emoji character sets.
List of supported emoji characters#
List of supported emoji characters
Result is an array of emojis ["๐","๐"]
Example#
GET /emoji
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/emoji',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
note
This operation does not require authentication
Emoji ID#
Endpoints for interacting and managing your emoji ids. Endpoints that result in data modification require authentication and the necessary permissions (or scopes). The most common endpoint will be a lookup, i.e. /emoji_id/{emoji_id} and does not require authorization, this is when a user wants to get records associated with an Emoji ID.
List user's Emoji Ids#
List user's Emoji Ids
If no parameters provided will return all Emoji Ids of current user. When user_id or organization_id specified the endpoint will return the Emoji Ids owned by specified user or organization, requires Admin or organization power user access. Result is an array of emoji ids in display format (i.e. with all skin tone modifiers applied) ["๐ค๐พ๐๐ฝ๐ป","๐๐๐ฟ๐ฏ"]
Example#
GET /emoji_id
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/emoji_id',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| organization_id | query | string(uuid) | false | Lookup emojis owned by organization_id, requires organization power user role |
| user_id | query | string(uuid) | false | Lookup emojis owned by user_id, requires Admin role |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [EmojiId] | false | none | [The emoji id is the key value used in the Emoji ID key-value lookup system. As the name suggests, the id consists solely of emoji characters from a carefully curated list ranging in length from one to six characters. Emoji ids are 'owned' in the sense that there is a private-public keypair associated with the id that granted transfer and write-access rights to anyone with knowledge of the emoji id's private key. The primary use of emoji ids is to associate useful related data with the id. This creates a unified identity around that emoji id. For example, someone may associate a website, a twitter handle and a BTC payment address to an emoji id. Those three disparate entities can then be easily accessed using the same emoji id.] |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
List extended view user's Emoji Ids#
List extended view user's Emoji Ids
Will return list of user's Emoji Ids with canonical and display representation. Display representation is Emoji Id with applied modifiers. If no parameters provided will return all Emoji Ids of the current user. When user_id or organization_id is specified the endpoint will return the Emoji Ids owned by the specified user or organization, requires Admin or organization power user access.
Example#
GET /emoji_id/extended
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/emoji_id/extended',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/extended") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/extended")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| organization_id | query | string(uuid) | false | Lookup emojis owned by organization_id, requires organization power user role |
| user_id | query | string(uuid) | false | Lookup emojis owned by user_id, requires Admin role |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [EmojiListItem] | false | none | [EmojiId in canonical and display representations] |
| ยป blocked_until | string(date-time) | false | none | none |
| ยป canonical_format | string | true | none | none |
| ยป chain_format | string | true | none | none |
| ยป display_format | string | true | none | none |
| ยป flippable_emoji | [boolean] | true | none | none |
| ยป generation | integer(int32) | true | none | none |
| ยป minted | boolean | true | none | none |
| ยป rhythm_score | integer(int32) | true | none | none |
| ยป shape | object | true | none | none |
| ยปยป pattern | any | false | none | none |
| ยปยป shape | string | false | none | none |
| ยป shortname | string | true | none | none |
| ยป token_id | integer(int64) | false | none | none |
Enumerated Values#
| Property | Value |
|---|---|
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Return random Emoji#
Return random Emoji
Returns price, availability and other information for random emoji
Example#
GET /emoji_id/random
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/random',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/random") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/random")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | RandomResult |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Return list of recently purchased emoji#
Return list of recently purchased emoji
Example#
GET /emoji_id/recent
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/recent',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/recent") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/recent")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | RecentlyPurchasedResult |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Search for EmojiID#
Search for EmojiID
Returns price, availability and other information on emoji and its alternates (similar EmojiIDs that are currently available)
Example#
GET /emoji_id/search
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/search?emoji_id=string',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/search?emoji_id=string") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/search?emoji_id=string")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | query | string | true | Emoji ID in percent url-encoded form |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SearchResult |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Load value from EmojiId key value store with data keyed by YatJsonStoreKeys#
Load value from EmojiId key value store with data keyed by YatJsonStoreKeys
Any data stored previously can be retrieved as a json object in EmojiID key value store. In the case when there was no data associated with EmojiID key before it will return empty object. User should have AdminEmojiWrite scope or own emoji
Example#
GET /emoji_id/{eid}/json
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/emoji_id/{eid}/json',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{eid}/json") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{eid}/json")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| eid | path | string | true | none |
| keys | query | array[any] | true | Key to store data |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป additionalProperties | LoadJsonResponse | false | none | none |
| ยปยป created_at | string(date-time) | true | none | Created at time for the record |
| ยปยป data | any | true | none | Data value stored by key and EmojiID If there is no value for the key an empty object {} is returned |
| ยปยป is_locked | boolean | true | none | Data is locked |
| ยปยป locked_future_writes_at | string(date-time) | false | none | Time the record was locked from future writes |
| ยปยป updated_at | string(date-time) | true | none | Updated at time for the record |
note
This operation does not require authentication
Load value from EmojiId key value store#
Load value from EmojiId key value store
Any data stored previously can be retrieved as a json object in EmojiID key value store. In the case when there was no data associated with EmojiID key before it will return empty object. User should have AdminEmojiWrite scope or own emoji
Example#
GET /emoji_id/{eid}/json/{key}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/emoji_id/{eid}/json/{key}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{eid}/json/{key}") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{eid}/json/{key}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| eid | path | string | true | EmojiID |
| key | path | string | true | Key to store data |
Enumerated Values#
| Parameter | Value |
|---|---|
| key | YatPageData |
| key | YatLinkData |
| key | VisualizerData |
| key | VisualizerName |
| key | VisualizerFileLocations |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | LoadJsonResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Store value under EmojiId key#
Store value under EmojiId key
Any data can be stored as a json object, this data is stored in a centralized DB and is not taking blockchain storage. In addition to unformatted data this endpoint allows to edit tags in the same way as edit endpoint allows to. User should have AdminEmojiWrite scope or own emoji
Example#
POST /emoji_id/{eid}/json/{key}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "data": null, "linked_tags": [ { "data": "127.0.0.1", "tag": "0x4101" } ]};const headers = { 'Content-Type':'application/json', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/emoji_id/{eid}/json/{key}',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "data": null, "linked_tags": [ { "data": "127.0.0.1", "tag": "0x4101" } ]} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{eid}/json/{key}") .addHeader("Content-Type", "application/json") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{eid}/json/{key}")
let requestBody = """{ "data": null, "linked_tags": [ { "data": "127.0.0.1", "tag": "0x4101" } ]}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "data": null, "linked_tags": [ { "data": "127.0.0.1", "tag": "0x4101" } ]}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| eid | path | string | true | EmojiID |
| key | path | string | true | Key to store data |
| body | body | StoreJsonBody | true | none |
| ยป data | body | any | true | Data value allows to store any Json value, limited by 250Kb |
| ยป linked_tags | body | [any] | false | Link tag items as part of the transaction All previously linked tags not present in new request will be deleted |
| ยปยป data | body | string | true | Category data in text format |
| ยปยป tag | body | string | true | Category ID as a hex number |
Enumerated Values#
| Parameter | Value |
|---|---|
| key | YatPageData |
| key | YatLinkData |
| key | VisualizerData |
| key | VisualizerName |
| key | VisualizerFileLocations |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Get statistics for EmojiId#
Get statistics for EmojiId
Example#
GET /emoji_id/{eid}/stats
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/emoji_id/{eid}/stats',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{eid}/stats") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{eid}/stats")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| eid | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | EmojiStatsResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Lookup EmojiId#
Lookup EmojiId
Will filter and return data from supplied tags, If tags filter is not supplied will return all tags attached. It will also try to get views for the past month, if not available will return -1. This method is called when a user wants to look up an Emoji ID's records such as a crypto address or a redirect
Example#
GET /emoji_id/{emoji_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/{emoji_id}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
| tags | query | string | false | Comma-separated list of tags to display, skip it to display all, e.g. ?tags=0x0001,0x1001 |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | LookupResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Edit EmojiId#
Edit EmojiId
Add and remove records in EmojiId, update merkle_root and signature too. Certain tags, such as CryptocurrenyAddress, EmojiNick, EmojiDescription, EmojiPreferred, Redirect only allow a single value to be stored by default. Only the latest values will be stored and older values deleted. To allow multiple values for the same tag pass in true for bypass_single_restrictions Access notes: user expected to own the emoji's pubkey, have Admin role or be power member of organization if pubkey belongs to organization, otherwise operation will fail.
Example#
PATCH /emoji_id/{emoji_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "bypass_single_restrictions": true, "delete": [ "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944" ], "insert": [ { "data": "127.0.0.1", "tag": "0x4101" } ], "merkle_root": "916ea8882cdbe350ca9cec48680e4bf37d75930d8d033bed57128c0809537336", "signature": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/emoji_id/{emoji_id}',{ method: 'PATCH', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "bypass_single_restrictions": true, "delete": [ "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944" ], "insert": [ { "data": "127.0.0.1", "tag": "0x4101" } ], "merkle_root": "916ea8882cdbe350ca9cec48680e4bf37d75930d8d033bed57128c0809537336", "signature": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .patch(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}")
let requestBody = """{ "bypass_single_restrictions": true, "delete": [ "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944" ], "insert": [ { "data": "127.0.0.1", "tag": "0x4101" } ], "merkle_root": "916ea8882cdbe350ca9cec48680e4bf37d75930d8d033bed57128c0809537336", "signature": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}"""
var request = URLRequest(url: url!)
request.httpMethod = "PATCH"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "bypass_single_restrictions": true, "delete": [ "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944" ], "insert": [ { "data": "127.0.0.1", "tag": "0x4101" } ], "merkle_root": "916ea8882cdbe350ca9cec48680e4bf37d75930d8d033bed57128c0809537336", "signature": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
| body | body | EditRequest | true | none |
| ยป bypass_single_restrictions | body | boolean | false | Optional: Allow many addresses per Tag |
| ยป delete | body | [string] | false | Optional: hashes of records to delete |
| ยป insert | body | [any] | false | Optional: list of records to add |
| ยปยป data | body | string | true | Category data in text format |
| ยปยป tag | body | string | true | Category ID as a hex number |
| ยป merkle_root | body | string | false | Optional: merkle root (use WASM to generate) |
| ยป signature | body | string | false | Optional: signature (use WASM to generate) |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Generates a signature for the Yat allowing it to be minted#
Generates a signature for the Yat allowing it to be minted
If the yat has any active transfers for it or is in the pending transfer period this action fails
Example#
POST /emoji_id/{emoji_id}/generate_signature
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "account": "string", "expiry": 0};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/{emoji_id}/generate_signature',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "account": "string", "expiry": 0} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}/generate_signature") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}/generate_signature")
let requestBody = """{ "account": "string", "expiry": 0}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "account": "string", "expiry": 0}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
| body | body | SignatureRequest | true | none |
| ยป account | body | string | true | none |
| ยป expiry | body | integer(int64) | false | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SignatureResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
GET /emoji_id/{emoji_id}/metadata#
Example#
GET /emoji_id/{emoji_id}/metadata
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/emoji_id/{emoji_id}/metadata',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}/metadata") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}/metadata")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ShapeMatch |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Lookup EmojiId Payment addresses#
Lookup EmojiId Payment addresses
Will filter and return data from supplied tags, If tags filter is not supplied will return all payment tags attached. This method is called when a user wants to look up an Emoji ID's payment records and return a KV pair This endpoint returns a single result for each category type (except 0x6300) which it returns a unique 0x6300:short_name:settlement_network key instead. If there are multiple results for a crypto type it takes the most recent value unless there is a value that has the default flag set, in which case it uses the most recent default value.
Example#
GET /emoji_id/{emoji_id}/payment
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/{emoji_id}/payment',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}/payment") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}/payment")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
| tags | query | string | false | Comma-separated list of tags to display, skip it to display all, e.g. ?tags=0x0001,0x1001 |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PaymentAddressResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Calculate EmojiId rhythm score#
Calculate EmojiId rhythm score
The rhythm score is an indicator of a Yat's prestige, or status. Factors that affect the rhythm are length, shape, and the popularity of emojis present in the yat. The yat rhythm ranges from 1 (least prestigious) to 100 (most prestigious).
Example#
GET /emoji_id/{emoji_id}/rhythm
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/emoji_id/{emoji_id}/rhythm',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}/rhythm") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}/rhythm")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | RhythmResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Lookup EmojiId data based on a symbol or ticker#
Lookup EmojiId data based on a symbol or ticker
Example#
GET /emoji_id/{emoji_id}/{tag}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/emoji_id/{emoji_id}/{tag}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/emoji_id/{emoji_id}/{tag}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/emoji_id/{emoji_id}/{tag}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
| tag | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | EidResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
GET /nft_transfers/metadata/{token_id}#
Example#
GET /nft_transfers/metadata/{token_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/nft_transfers/metadata/{token_id}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/nft_transfers/metadata/{token_id}") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/nft_transfers/metadata/{token_id}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| token_id | path | integer(int64) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Metadata |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Redirect by EmojiId link#
Redirect by EmojiId link
Will redirect to a link if it is part of Emoji ID
Example#
GET /redirect
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Authorization':'API_KEY'};
fetch('/redirect?emoji_id=string&link=string',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/redirect?emoji_id=string&link=string") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/redirect?emoji_id=string&link=string")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | query | string | true | none |
| link | query | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
LootBoxes#
Lootboxes usage endpoints.
Fetch lootboxes#
Fetch lootboxes
Return lootboxes with their usage and availability information NOTE: user should have scope LootBoxAdmin or LootBoxUse
Example#
GET /lootboxes
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/lootboxes',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/lootboxes") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| dir | query | string | false | none |
| limit | query | integer(int32) | false | none |
| owner_id | query | string(uuid) | false | Search by LootBox owner |
| page | query | integer(int32) | false | none |
| sort | query | string | false | none |
| status | query | string | false | Search for LootBoxes by status |
Enumerated Values#
| Parameter | Value |
|---|---|
| dir | Asc |
| dir | Desc |
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ListOfPublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Create a new lootbox#
Create a new lootbox
NOTE: user should have scope AdminLootBoxWrite
Example#
POST /lootboxes
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootboxes',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/lootboxes") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes")
let requestBody = """{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AdminNewLootBoxBody | true | none |
| ยป owner_email | body | string | false | Assign lootbox an owner with matching email Should not be set if owner_id is set |
| ยป owner_id | body | string(uuid) | false | Lootbox owner_id, required for Owned and Used lootboxes |
| ยป status | body | string | true | Status lootbox will be created in If status is Used lootbox with be automatically opened |
| ยป yats | body | [string] | true | LootBox emoji IDs |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป status | Draft |
| ยป status | Available |
| ยป status | Owned |
| ยป status | Used |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Show information about lootbox#
Show information about lootbox
For admin it will show full lootbox information including yats For user only lootbox owned by user, yats stripped NOTE: user should have scope AdminLootBoxRead or LootBoxUse
Example#
GET /lootboxes/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/lootboxes/{id}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/lootboxes/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Delete a lootbox#
Delete a lootbox
NOTE: user should have scope AdminLootBoxWrite
Example#
DELETE /lootboxes/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootboxes/{id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/lootboxes/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Update a lootbox#
Update a lootbox
NOTE: user should have scope AdminLootBoxWrite
Example#
PATCH /lootboxes/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootboxes/{id}',{ method: 'PATCH', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/lootboxes/{id}") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .patch(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes/{id}")
let requestBody = """{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}"""
var request = URLRequest(url: url!)
request.httpMethod = "PATCH"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
| body | body | AdminUpdateLootBoxBody | true | none |
| ยป owner_email | body | string | false | Assign lootbox an owner with matching email Should not be set if owner_id is set |
| ยป owner_id | body | string(uuid) | false | Assign lootbox an owner, if set requires status Owned |
| ยป status | body | string | false | Update status If status is Used lootbox with be automatically opened |
| ยป yats | body | [string] | false | LootBox emoji IDs |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป status | Draft |
| ยป status | Available |
| ยป status | Owned |
| ยป status | Used |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Open lootbox#
Open lootbox
Will reassign all yats to user and return full lootbox view NOTE: user should have scope LootBoxUse
Example#
POST /lootboxes/{id}/open
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/lootboxes/{id}/open',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/lootboxes/{id}/open") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootboxes/{id}/open")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBox |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
User Interest#
User Interest endpoints. Endpoints for users to express interest in Emoji IDs.
Returns a paginated list of user interest records associated with the user#
Returns a paginated list of user interest records associated with the user
NOTE: user should have scope UserInterestRead
Example#
GET /user_interests
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/user_interests',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/user_interests") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/user_interests")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| dir | query | string | false | none |
| limit | query | integer(int32) | false | none |
| page | query | integer(int32) | false | none |
| sort | query | string | false | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| dir | Asc |
| dir | Desc |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ListOfUserInterest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Create new interest in emoji to be notified when available#
Create new interest in emoji to be notified when available
NOTE: user should have scope UserInterestWrite
Example#
POST /user_interests
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "emoji_id": "๐ฑ๐๐๐ด๐ต"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/user_interests',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "emoji_id": "๐ฑ๐๐๐ด๐ต"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/user_interests") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/user_interests")
let requestBody = """{ "emoji_id": "๐ฑ๐๐๐ด๐ต"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "emoji_id": "๐ฑ๐๐๐ด๐ต"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | NewUserInterestParameters | true | none |
| ยป emoji_id | body | string | true | Emoji ID to express interest in |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | UserInterest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Given an EmojiId returns information about the user interest if a record exists for this user#
Given an EmojiId returns information about the user interest if a record exists for this user
NOTE: user should have scope UserInterestRead
Example#
GET /user_interests/{emoji_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/user_interests/{emoji_id}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/user_interests/{emoji_id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/user_interests/{emoji_id}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | UserInterest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Destroys the user interest preventing this Emoji ID's notification emails from being sent for this user#
Destroys the user interest preventing this Emoji ID's notification emails from being sent for this user
NOTE: user should have scope UserInterestDelete
Example#
DELETE /user_interests/{emoji_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/user_interests/{emoji_id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/user_interests/{emoji_id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/user_interests/{emoji_id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emoji_id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | UserInterest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Users#
User Management. Only applicable for users with custodial wallets.
Current user account#
Current user account
Displays the currently logged in user account details.
Example#
GET /account
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/account',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/account") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | CurrentUser |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Update the currently logged in user#
Update the currently logged in user
NOTE: user should have scope UserWriteSelf
Example#
PATCH /account
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "current_password": "string", "email": "string", "first_name": "string", "last_name": "string", "password": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/account',{ method: 'PATCH', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "current_password": "string", "email": "string", "first_name": "string", "last_name": "string", "password": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/account") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .patch(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account")
let requestBody = """{ "current_password": "string", "email": "string", "first_name": "string", "last_name": "string", "password": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "PATCH"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "current_password": "string", "email": "string", "first_name": "string", "last_name": "string", "password": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | UpdateUserParameters | true | none |
| ยป current_password | body | string | false | Optional: Current password, must be provided if one exists |
| ยป email | body | string | false | Optional: Email |
| ยป first_name | body | string | false | Optional: First name |
| ยป last_name | body | string | false | Optional: Last name |
| ยป password | body | string | false | Optional: User password |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | UpdateAccountResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Disable choosen 2FA provider or disable completely using backup code and user primary ID#
Disable choosen 2FA provider or disable completely using backup code and user primary ID
Example#
POST /account/2fa/backup_disable
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "alternate_id": "string", "backup_code": "string", "disable_all": true, "email": "string", "provider": "GoogleAuthenticator"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/account/2fa/backup_disable',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "alternate_id": "string", "backup_code": "string", "disable_all": true, "email": "string", "provider": "GoogleAuthenticator"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/account/2fa/backup_disable") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/2fa/backup_disable")
let requestBody = """{ "alternate_id": "string", "backup_code": "string", "disable_all": true, "email": "string", "provider": "GoogleAuthenticator"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "alternate_id": "string", "backup_code": "string", "disable_all": true, "email": "string", "provider": "GoogleAuthenticator"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | BackupDisableBody | true | none |
| ยป alternate_id | body | string | false | Alternate identifier |
| ยป backup_code | body | string | true | Backup code |
| ยป disable_all | body | boolean | false | Make this method default |
| ยป email | body | string | false | |
| ยป provider | body | string | false | Two factor authentication backend |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป provider | GoogleAuthenticator |
| ยป provider | SMS |
| ยป provider | undefined |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SuccessResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Confirm two factor authentication update#
Confirm two factor authentication update
Match 2FA code and commit two factor authentication setting for user account
Example#
POST /account/2fa/confirm
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "code": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/account/2fa/confirm',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "code": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/account/2fa/confirm") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/2fa/confirm")
let requestBody = """{ "code": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "code": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Confirm2FaUpdate | true | none |
| ยป code | body | string | true | Auth code of new 2FA provider |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SuccessResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Disable choosen 2FA provider or disable completely#
Disable choosen 2FA provider or disable completely
Example#
POST /account/2fa/disable
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "disable_all": true, "provider": "GoogleAuthenticator"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/account/2fa/disable',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "disable_all": true, "provider": "GoogleAuthenticator"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/account/2fa/disable") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/2fa/disable")
let requestBody = """{ "disable_all": true, "provider": "GoogleAuthenticator"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "disable_all": true, "provider": "GoogleAuthenticator"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Disable2FABody | true | none |
| ยป disable_all | body | boolean | true | Make this method default |
| ยป provider | body | string | false | Two factor authentication backend |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป provider | GoogleAuthenticator |
| ยป provider | SMS |
| ยป provider | undefined |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SuccessResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Enables two factor authentication method#
Enables two factor authentication method
Returning parameters necessary for client to store the code NOTE: This call does not take effect until code is confirmed via POST /account/2fa/confirm except for backup codes type which is confirmed immediately
Example#
POST /account/2fa/enable
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "default": true, "phone": "string", "provider": "GoogleAuthenticator"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/account/2fa/enable',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "default": true, "phone": "string", "provider": "GoogleAuthenticator"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/account/2fa/enable") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/2fa/enable")
let requestBody = """{ "default": true, "phone": "string", "provider": "GoogleAuthenticator"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "default": true, "phone": "string", "provider": "GoogleAuthenticator"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Enable2FABody | true | none |
| ยป default | body | boolean | true | Make this method default |
| ยป phone | body | string | false | Phone number required for SMS provider |
| ยป provider | body | string | true | Two factor authentication backend |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป provider | GoogleAuthenticator |
| ยป provider | SMS |
| ยป provider | undefined |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Enable2FAResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Send SMS 2FA code#
Send SMS 2FA code
If user has setup 2FA authentication via SMS this will trigger SMS with 2fa code
Example#
POST /account/2fa/sms_code
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/account/2fa/sms_code',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/account/2fa/sms_code") .addHeader("Accept", "*/*") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/2fa/sms_code")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | SuccessResponse2FA |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Load user data for a session#
Load user data for a session
Aggregates all the required data a user requires to start a web session
Example#
GET /account/load
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/account/load',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/account/load") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/account/load")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| organization_id | query | string(uuid) | false | Lookup emojis owned by organization_id, requires organization power user role |
| user_id | query | string(uuid) | false | Lookup emojis owned by user_id, requires Admin role |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | LoadUser |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
List users#
List users
NOTE: user should have scope UserList
Example#
GET /users
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/users',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/users") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| dir | query | string | false | none |
| limit | query | integer(int32) | false | none |
| page | query | integer(int32) | false | none |
| sort | query | string | false | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| dir | Asc |
| dir | Desc |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ListOfDisplayUserExtended |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Register a User#
Register a User
Create a user and a custodial wallet
Example#
POST /users
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "activate": true, "activation_source": "string", "alternate_id": "string", "email": "string", "first_name": "string", "g_recaptcha_response": "string", "last_name": "string", "partner_conversion_id": "string", "password": "string", "source": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*'};
fetch('/users',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "activate": true, "activation_source": "string", "alternate_id": "string", "email": "string", "first_name": "string", "g_recaptcha_response": "string", "last_name": "string", "partner_conversion_id": "string", "password": "string", "source": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/users") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users")
let requestBody = """{ "activate": true, "activation_source": "string", "alternate_id": "string", "email": "string", "first_name": "string", "g_recaptcha_response": "string", "last_name": "string", "partner_conversion_id": "string", "password": "string", "source": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "activate": true, "activation_source": "string", "alternate_id": "string", "email": "string", "first_name": "string", "g_recaptcha_response": "string", "last_name": "string", "partner_conversion_id": "string", "password": "string", "source": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | RegisterUserParameters | true | none |
| ยป activate | body | boolean | false | Optional: Whether to force activation during creation (requires UserActivate scope) |
| ยป activation_source | body | string | false | Optional: Source of activation (requires UserActivate scope) |
| ยป alternate_id | body | string | false | Alternate identifier |
| ยป email | body | string | false | Email address |
| ยป first_name | body | string | false | Optional: first name |
| ยป g_recaptcha_response | body | string | false | Response from google Recaptcha |
| ยป last_name | body | string | false | Optional: last name |
| ยป partner_conversion_id | body | string | false | Parameter to pass everflow click id |
| ยป password | body | string | false | Optional: password |
| ยป source | body | string | false | Required when registering with alternate_id, source for non custodial user |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | TokenResponse |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Show users#
Show users
NOTE: user should have scope UserShow
Example#
GET /users/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/users/{id}',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/users/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayUserExtended |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Delete a user#
Delete a user
NOTE: user should have scope UserDeleteSelf if deleting themselves, UserDelete is needed for other users
Example#
DELETE /users/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/users/{id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/users/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayUser |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Update a user as an admin#
Update a user as an admin
NOTE: user should have scope UserWrite
Example#
PATCH /users/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "activation_source": "string", "current_password": "string", "email": "string", "first_name": "string", "free_limit": 0, "last_name": "string", "password": "string", "role": "Admin"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/users/{id}',{ method: 'PATCH', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "activation_source": "string", "current_password": "string", "email": "string", "first_name": "string", "free_limit": 0, "last_name": "string", "password": "string", "role": "Admin"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/users/{id}") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .patch(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users/{id}")
let requestBody = """{ "activation_source": "string", "current_password": "string", "email": "string", "first_name": "string", "free_limit": 0, "last_name": "string", "password": "string", "role": "Admin"}"""
var request = URLRequest(url: url!)
request.httpMethod = "PATCH"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "activation_source": "string", "current_password": "string", "email": "string", "first_name": "string", "free_limit": 0, "last_name": "string", "password": "string", "role": "Admin"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string(uuid) | true | none |
| body | body | AdminUpdateUserParameters | true | none |
| ยป activation_source | body | string | false | Optional: Source of activation |
| ยป current_password | body | string | false | Optional: Current password, must be provided if one exists |
| ยป email | body | string | false | Optional: Email |
| ยป first_name | body | string | false | Optional: First name |
| ยป free_limit | body | integer(int32) | false | Optional: Free limit for how many yats the user may purchase |
| ยป last_name | body | string | false | Optional: Last name |
| ยป password | body | string | false | Optional: User password |
| ยป role | body | string | false | Optional: Update the user role |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป role | Admin |
| ยป role | OrgController |
| ยป role | OrgMember |
| ยป role | OrgOwner |
| ยป role | Bot |
| ยป role | Super |
| ยป role | User |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayUser |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Key Management#
Manage a user's public keys
Retrieve pubkeys#
Retrieve pubkeys
Retrieves pubkeys owned by currently authenticated user. This call expects empty body.
Example#
GET /pubkeys
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/pubkeys',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/pubkeys") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/pubkeys")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Pubkey] | false | none | [A hexadecimal representation of a 256-bit public key.] |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Generate custodial wallet#
Generate custodial wallet
Generates custodial wallet with pubkey for currently authenticated user. This call expects empty body.
Example#
POST /pubkeys
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/pubkeys',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/pubkeys") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/pubkeys")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Pubkey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Add pubkey for current user#
Add pubkey for current user
This call expects empty body
Example#
POST /pubkeys/{pubkey}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/pubkeys/{pubkey}',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/pubkeys/{pubkey}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/pubkeys/{pubkey}")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| pubkey | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Pubkey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Retrieve pubkeys by user_id#
Retrieve pubkeys by user_id
NOTE: user should have scope UserPubkeyList
Example#
GET /users/{user_id}/pubkeys
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/users/{user_id}/pubkeys',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/users/{user_id}/pubkeys") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users/{user_id}/pubkeys")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user_id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Pubkey] | false | none | [A hexadecimal representation of a 256-bit public key.] |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Add pubkey for user by user_id#
Add pubkey for user by user_id
NOTE: user should have scope UserPubkeyWrite This call expects empty body
Example#
POST /users/{user_id}/pubkeys/{pubkey}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/users/{user_id}/pubkeys/{pubkey}',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/users/{user_id}/pubkeys/{pubkey}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/users/{user_id}/pubkeys/{pubkey}")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user_id | path | string | true | Public key to add |
| pubkey | path | string(uuid) | true | user_id to grant public key ownership to |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Pubkey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Transfer#
Emoji transfers between users.
List outgoing transfer requests for current or specified user If limit is omitted will display top 50 transfer requests#
List outgoing transfer requests for current or specified user If limit is omitted will display top 50 transfer requests
Example#
GET /transfers
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/transfers") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accepted_after | query | string(date-time) | false | When set will display only requests accepted after provided datetime |
| dir | query | string | false | none |
| limit | query | integer(int32) | false | none |
| page | query | integer(int32) | false | none |
| sender_id | query | string(uuid) | false | Uuid of a sender |
| sort | query | string | false | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| dir | Asc |
| dir | Desc |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ListOfDisplayTransferRequest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Transfer eid to either the pubkey or email address supplied in the PUT data#
Transfer eid to either the pubkey or email address supplied in the PUT data
Note: user expected to be Admin or have scope Scopes::EmojiTransfer and own emoji If recipient does not exist account will be created and sent invitation email If recipient is not activated it will be automatically activated
Example#
POST /transfers
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "clear_on_transfer": true, "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "force_transfer": true, "message": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "clear_on_transfer": true, "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "force_transfer": true, "message": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/transfers") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers")
let requestBody = """{ "clear_on_transfer": true, "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "force_transfer": true, "message": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "clear_on_transfer": true, "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "force_transfer": true, "message": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TransferRequest | true | none |
| ยป clear_on_transfer | body | boolean | true | Clear emoji data when emoji transferred to destination |
| ยป eid | body | string | true | none |
| ยป email | body | string | true | Transfer to specified email, would register new user account if not existent |
| ยป force_transfer | body | boolean | true | Admin can force transfer, for regular user it has no effect |
| ยป message | body | string | false | Message displayed to recipient and included in the invitiation email |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayTransferRequest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
List transfer requests assigned to user#
List transfer requests assigned to user
Example#
GET /transfers/incoming
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers/incoming?accepted=true',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/transfers/incoming?accepted=true") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers/incoming?accepted=true")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accepted | query | boolean | true | Display accepted transfer requests. By default will display pending requests only. |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [DisplayTransferRequest] | false | none | none |
| ยป accepted_at | string(date-time) | false | none | none |
| ยป clear_on_transfer | boolean | true | none | none |
| ยป created_at | string(date-time) | true | none | none |
| ยป deleted_at | string(date-time) | false | none | none |
| ยป eid | string | true | none | none |
| ยป email | string | true | none | none |
| ยป id | string(uuid) | true | none | none |
| ยป message | string | false | none | none |
| ยป recipient_id | string(uuid) | true | none | none |
| ยป sender_code_accepted_at | string(date-time) | false | none | none |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Mark transfer request as deleted#
Mark transfer request as deleted
Note: user expected to be Admin or creator of transfer request Note: When transfer request deleted it cannot be accepted, if it was accepted before being deleted it is just marked deleted, but emoji does not move back
Example#
DELETE /transfers/{transfer_id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers/{transfer_id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/transfers/{transfer_id}") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers/{transfer_id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| transfer_id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayTransferRequest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
As a receiver, accept transfer request by id.#
As a receiver, accept transfer request by id.
If the OTP is correct, the transfer instructions are submitted. Returning transferred Emoji IDs
Example#
POST /transfers/{transfer_id}/receiver_accept
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "code": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers/{transfer_id}/receiver_accept',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "code": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/transfers/{transfer_id}/receiver_accept") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers/{transfer_id}/receiver_accept")
let requestBody = """{ "code": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "code": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| transfer_id | path | string(uuid) | true | none |
| body | body | AcceptTransfer | true | none |
| ยป code | body | string | true | Confirmation OTP of either the sender or receiver of the transfer |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [EmojiId] | false | none | [The emoji id is the key value used in the Emoji ID key-value lookup system. As the name suggests, the id consists solely of emoji characters from a carefully curated list ranging in length from one to six characters. Emoji ids are 'owned' in the sense that there is a private-public keypair associated with the id that granted transfer and write-access rights to anyone with knowledge of the emoji id's private key. The primary use of emoji ids is to associate useful related data with the id. This creates a unified identity around that emoji id. For example, someone may associate a website, a twitter handle and a BTC payment address to an emoji id. Those three disparate entities can then be easily accessed using the same emoji id.] |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Resend a new transfer OTP code for the current user, if the transfer allows it.#
Resend a new transfer OTP code for the current user, if the transfer allows it.
The code will be resent if: - the current user is the sender and the sender has not confirmed - the current user is the receiver, the sender has confirmed the transfer but has not been accepted by the receiver
Example#
POST /transfers/{transfer_id}/resend_code
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers/{transfer_id}/resend_code',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/transfers/{transfer_id}/resend_code") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers/{transfer_id}/resend_code")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| transfer_id | path | string(uuid) | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
As a sender, confirm the transfer request by transfer id.#
As a sender, confirm the transfer request by transfer id.
The correct OTP must be provided. If it is, the receiver is notified and may accept the transfer. Returning an empty response object on success
Example#
POST /transfers/{transfer_id}/sender_accept
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "code": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/transfers/{transfer_id}/sender_accept',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "code": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/transfers/{transfer_id}/sender_accept") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/transfers/{transfer_id}/sender_accept")
let requestBody = """{ "code": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "code": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| transfer_id | path | string(uuid) | true | none |
| body | body | AcceptTransfer | true | none |
| ยป code | body | string | true | Confirmation OTP of either the sender or receiver of the transfer |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayTransferRequest |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
ApiKeys#
Load api keys for user#
Load api keys for user
If query param user_id is provided requires admin role.
Example#
GET /api_keys
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/api_keys',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/api_keys") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/api_keys")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user_id | query | string(uuid) | false | User id for which api key should be applied |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [DisplayApiKey] | false | none | none |
| ยป api_key | string | true | none | none |
| ยป created_at | string(date-time) | true | none | none |
| ยป expires_at | string(date-time) | false | none | none |
| ยป name | string | true | none | none |
| ยป scopes | [string] | true | none | none |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Create new api key for current user#
Create new api key for current user
Requires scope CreateApiKey. When query param user_id is provided requires admin role.
Example#
POST /api_keys
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/api_keys',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/api_keys") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/api_keys")
let requestBody = """{ "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user_id | query | string(uuid) | false | User id for which api key should be applied |
| body | body | CreateApiKeyBody | true | none |
| ยป expires_at | body | string(date-time) | false | none |
| ยป name | body | string | true | none |
| ยป scopes | body | [string] | false | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป scopes | adminCart:update |
| ยป scopes | adminEmoji:destroy |
| ยป scopes | adminEmoji:load |
| ยป scopes | adminEmoji:register |
| ยป scopes | adminEmoji:transfer |
| ยป scopes | adminEmoji:updateFeatures |
| ยป scopes | adminEmoji:updateSecureData |
| ยป scopes | adminEmoji:write |
| ยป scopes | adminFeatureUser:read |
| ยป scopes | adminInvites:write |
| ยป scopes | adminInvites:list |
| ยป scopes | adminLootbox:read |
| ยป scopes | adminLootbox:write |
| ยป scopes | adminNotifications:write |
| ยป scopes | adminUser:bypass2fa |
| ยป scopes | adminUser:load |
| ยป scopes | adminUser:loginAs |
| ยป scopes | adminUser:twoFactorAuthDestroy |
| ยป scopes | adminUser:roleUpdate |
| ยป scopes | cart:show |
| ยป scopes | cart:update |
| ยป scopes | code:delete |
| ยป scopes | code:read |
| ยป scopes | code:write |
| ยป scopes | user:createApiKey |
| ยป scopes | domainAction:read |
| ยป scopes | domainEvent:read |
| ยป scopes | edition:delete |
| ยป scopes | edition:read |
| ยป scopes | edition:write |
| ยป scopes | emojiGroups:delete |
| ยป scopes | emojiGroups:read |
| ยป scopes | emojiGroups:write |
| ยป scopes | emoji::transfer |
| ยป scopes | feature::delete |
| ยป scopes | feature::read |
| ยป scopes | feature::write |
| ยป scopes | lootbox:use |
| ยป scopes | order:paymentOverride |
| ยป scopes | order:read |
| ยป scopes | order:readSelf |
| ยป scopes | order:refund |
| ยป scopes | order:refundOverride |
| ยป scopes | order:resendConfirmation |
| ยป scopes | organization:admin |
| ยป scopes | organizationCode:admin |
| ยป scopes | organizationEmoji:list |
| ยป scopes | organizationEmoji:write |
| ยป scopes | organizationList:read |
| ยป scopes | organization:read |
| ยป scopes | organizationUser:admin |
| ยป scopes | organizationUser:read |
| ยป scopes | organization:write |
| ยป scopes | nftSignature:write |
| ยป scopes | nftToken:destroy |
| ยป scopes | nftTransfer:read |
| ยป scopes | paymentMethod:destroy |
| ยป scopes | paymentMethod:read |
| ยป scopes | paymentMethod:setDefault |
| ยป scopes | adminPriceParameters:read |
| ยป scopes | adminPriceParameters:write |
| ยป scopes | refund:read |
| ยป scopes | token:refresh |
| ยป scopes | auth:twoFactor |
| ยป scopes | user:activate |
| ยป scopes | userData:update |
| ยป scopes | user:delete |
| ยป scopes | user:deleteSelf |
| ยป scopes | userEmail:verify |
| ยป scopes | userEmoji:list |
| ยป scopes | userInterest:delete |
| ยป scopes | userInterest:read |
| ยป scopes | userInterest:write |
| ยป scopes | user:list |
| ยป scopes | userPubkeys:list |
| ยป scopes | userPubkeys:write |
| ยป scopes | user:show |
| ยป scopes | user:write |
| ยป scopes | user:writeSelf |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayApiKey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Delete provided api key#
Delete provided api key
When key does not belong to current user requires Admin access
Example#
DELETE /api_keys/{id}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/api_keys/{id}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/api_keys/{id}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/api_keys/{id}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayApiKey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Discounts#
Fetch codes#
Fetch codes
Return codes with their usage and availability information NOTE: user should have scope OrganizationCodeAdmin or CodeRead
Example#
GET /codes
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/codes',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/codes") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/codes")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| code_type | query | string | false | Optional: filter by code type |
| dir | query | string | false | none |
| limit | query | integer(int32) | false | none |
| organization_id | query | string(uuid) | false | Optional: filter by organization id |
| page | query | integer(int32) | false | none |
| sort | query | string | false | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| code_type | Discount |
| code_type | RandomYat |
| dir | Asc |
| dir | Desc |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ListOfCodeAvailability |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Add pubkey for code#
Add pubkey for code
NOTE: user should have scope OrganizationCodeAdmin or CodeWrite
Example#
POST /codes/{code_id}/pubkeys/{pubkey}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/codes/{code_id}/pubkeys/{pubkey}',{ method: 'POST',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/codes/{code_id}/pubkeys/{pubkey}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/codes/{code_id}/pubkeys/{pubkey}")
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| code_id | path | string(uuid) | true | none |
| pubkey | path | string | true | Public key to authorize usage of a code |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Pubkey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Revoke pubkey for code#
Revoke pubkey for code
NOTE: user should have scope OrganizationCodeAdmin or CodeWrite
Example#
DELETE /codes/{code_id}/pubkeys/{pubkey}
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/codes/{code_id}/pubkeys/{pubkey}',{ method: 'DELETE',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/codes/{code_id}/pubkeys/{pubkey}") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .delete() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/codes/{code_id}/pubkeys/{pubkey}")
var request = URLRequest(url: url!)
request.httpMethod = "DELETE"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| code_id | path | string(uuid) | true | none |
| pubkey | path | string | true | Public key to authorize usage of a code |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Pubkey |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Use random yat code#
Use random yat code
Creates cart with random yat
Example#
POST /codes/{code_id}/random_yat
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "nonce": "string", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "signature": "string", "tracking_data": null};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/codes/{code_id}/random_yat',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "nonce": "string", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "signature": "string", "tracking_data": null} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/codes/{code_id}/random_yat") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/codes/{code_id}/random_yat")
let requestBody = """{ "nonce": "string", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "signature": "string", "tracking_data": null}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "nonce": "string", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "signature": "string", "tracking_data": null}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| code_id | path | string(uuid) | true | none |
| body | body | RandomYatActivateBody | true | none |
| ยป nonce | body | string | true | Schnorr signature nonce as a hex string |
| ยป pubkey | body | string | true | Public key to authorize usage of a code |
| ยป signature | body | string | true | Schnorr signature as a hex with alternate_id as a challenge |
| ยป tracking_data | body | any | false | Custom tracking data to be associated with a purchase |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | DisplayOrder |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
LootBoxType#
List all loot box categories#
List all loot box categories
NOTE: user must have scope AdminLootBoxRead
Example#
GET /lootbox_type
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootbox_type',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/lootbox_type") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootbox_type")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [PublicLootBoxType] | false | none | [HTTP schema for an existing LootBoxType record] |
| ยป config | object | true | none | The loot box type's configuration parameters |
| ยปยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type |
| ยปยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box |
| ยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop |
| ยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop |
| ยปยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box |
| ยปยป max_length | integer(int64) | true | none | Maximum yat length |
| ยปยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box |
| ยปยป min_length | integer(int64) | true | none | Minimum yat length |
| ยปยป size | integer(int64) | true | none | The number of yats in the loot box |
| ยปยป weights | [object] | true | none | A set of probability weightings for chance-based drops |
| ยปยปยป ipr | number(double) | true | none | The inverse probability ratio. This is a 1:n value. i.e. an ipr of 5 means a 1 in 5 chance of occurring, or 20% |
| ยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits |
| ยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits |
| ยป created_at | string(date-time) | true | none | The timestamp for when this loot box type was created |
| ยป description | string | true | none | A more detailed description of the loot box type |
| ยป id | string(uuid) | true | none | The loot box type id |
| ยป name | string | true | none | The name of this loot box type |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Create a new lootbox category#
Create a new lootbox category
NOTE: user must have scope AdminLootBoxWrite
Example#
POST /lootbox_type
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "description": "string", "name": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootbox_type',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "description": "string", "name": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/lootbox_type") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootbox_type")
let requestBody = """{ "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "description": "string", "name": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "description": "string", "name": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AdminNewLootBoxType | true | none |
| ยป config | body | object | true | The configuration parameters for the loot box type |
| ยปยป guarantees | body | [object] | true | A set of guaranteed drops in this loot box type |
| ยปยปยป count | body | integer(int64) | true | The number of guaranteed drops of this type in the loot box |
| ยปยปยป max_score | body | integer(int64) | true | The highest (inclusive) rhythm score range for guaranteed drop |
| ยปยปยป min_score | body | integer(int64) | true | The lowest (inclusive) rhythm score range for guaranteed drop |
| ยปยป max_base_score | body | integer(int64) | true | The upper bound (inclusive) rhythm score for standard yats in the loot box |
| ยปยป max_length | body | integer(int64) | true | Maximum yat length |
| ยปยป min_base_score | body | integer(int64) | true | The lower bound (inclusive) rhythm score for standard yats in the loot box |
| ยปยป min_length | body | integer(int64) | true | Minimum yat length |
| ยปยป size | body | integer(int64) | true | The number of yats in the loot box |
| ยปยป weights | body | [object] | true | A set of probability weightings for chance-based drops |
| ยปยปยป ipr | body | number(double) | true | The inverse probability ratio. This is a 1:n value. i.e. an ipr of 5 means a 1 in 5 chance of occurring, or 20% |
| ยปยปยป max_score | body | integer(int64) | true | The highest (inclusive) rhythm score range for inclusion when the probability spec hits |
| ยปยปยป min_score | body | integer(int64) | true | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits |
| ยป description | body | string | true | A description for the loot box type |
| ยป name | body | string | true | the name of the loot box type |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PublicLootBoxType |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Generates a set of loot boxes#
Generates a set of loot boxes
NOTE: user must have scope AdminLootBoxWrite
Example#
POST /lootbox_type/generate
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "loot_box_type_id": "304c4377-b66f-4c4c-8d3f-9284ec029078", "num_boxes": 0};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/lootbox_type/generate',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "loot_box_type_id": "304c4377-b66f-4c4c-8d3f-9284ec029078", "num_boxes": 0} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/lootbox_type/generate") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/lootbox_type/generate")
let requestBody = """{ "loot_box_type_id": "304c4377-b66f-4c4c-8d3f-9284ec029078", "num_boxes": 0}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "loot_box_type_id": "304c4377-b66f-4c4c-8d3f-9284ec029078", "num_boxes": 0}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | LootBoxGenerationRequest | true | none |
| ยป loot_box_type_id | body | string(uuid) | true | The id of the loot box type to generate |
| ยป num_boxes | body | integer(int64) | true | The number of loot boxes to generate in this sample |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | LootBoxSet |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Organization#
Load organization branding paramters#
Load organization branding paramters
Example#
GET /organizations/{id}/branding
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*'};
fetch('/organizations/{id}/branding',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/organizations/{id}/branding") .addHeader("Accept", "*/*") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/organizations/{id}/branding")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | OrganizationBranding |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
note
This operation does not require authentication
Set organization branding parameters#
Set organization branding parameters
NOTE: user should have scope OrganizationWrite
Example#
PUT /organizations/{id}/branding
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "requires_email": true, "return_link": "string"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/organizations/{id}/branding',{ method: 'PUT', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "requires_email": true, "return_link": "string"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/organizations/{id}/branding") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .put(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/organizations/{id}/branding")
let requestBody = """{ "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "requires_email": true, "return_link": "string"}"""
var request = URLRequest(url: url!)
request.httpMethod = "PUT"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "requires_email": true, "return_link": "string"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
| body | body | UpdateOrganizationBranding | true | none |
| ยป currencies | body | [string] | true | none |
| ยป logo | body | string | false | none |
| ยป logo_small | body | string | false | none |
| ยป logo_thumbnail | body | string | false | none |
| ยป requires_email | body | boolean | false | none |
| ยป return_link | body | string | true | none |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | OrganizationBranding |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: two_factor
Proxy#
Calls a pre-defined proxy service with the provided data#
Calls a pre-defined proxy service with the provided data
Returns the response from the proxied service as a string
Example#
POST /proxy
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "data": "string", "service": "Echo"};const headers = { 'Content-Type':'application/json', 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/proxy',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "data": "string", "service": "Echo"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/proxy") .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/proxy")
let requestBody = """{ "data": "string", "service": "Echo"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "data": "string", "service": "Echo"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | ProxyCallParameters | true | none |
| ยป data | body | string | false | The data to pass through to the proxied service |
| ยป service | body | string | true | ProxyService type |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป service | Echo |
| ยป service | Scraper |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | ProxyResult |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
User Feature#
List users features#
List users features
Example#
GET /user_features
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization':'API_KEY'};
fetch('/user_features',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/user_features") .addHeader("Accept", "*/*") .addHeader("Authorization", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/user_features")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [DisplayFeature] | false | none | none |
| ยป code | string | true | none | none |
| ยป id | string(uuid) | true | none | none |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: JWT
Wallets#
Fetch associated wallet addresses for the user#
Fetch associated wallet addresses for the user
Example#
GET /wallets
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');
const headers = { 'Accept':'*/*', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/wallets',{ method: 'GET',
headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient()
val request = Request.Builder() .url("$apiBaseURL/wallets") .addHeader("Accept", "*/*") .addHeader("Authorization,X-Api-Key", "API_KEY") .get() .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/wallets")
var request = URLRequest(url: url!)
request.httpMethod = "GET"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Response Schema#
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Wallet] | false | none | none |
| ยป eth_address | string | true | none | none |
| ยป user_id | string(uuid) | true | none | none |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Associate new wallet address with user#
Associate new wallet address with user
Example#
POST /wallets
- Javascript / NodeJs
- Android / Kotlin
- iOS / Swift 5
const fetch = require('node-fetch');const inputBody = { "signature": "string", "source": "Mint"};const headers = { 'Content-Type':'application/json', 'Authorization,X-Api-Key':'API_KEY'};
fetch('/wallets',{ method: 'POST', body: JSON.stringify(inputBody), headers: headers}).then(function(res) { return res.json();}).then(function(body) { console.log(body);});import okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Callbackimport okhttp3.Responseimport okhttp3.Callimport okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport java.io.IOException
fun main() { val apiBaseURL = "https://api.y.at" val httpClient = OkHttpClient() val requestBody = """{ "signature": "string", "source": "Mint"} """.toRequestBody("application/json; charset=utf-8".toMediaType())
val request = Request.Builder() .url("$apiBaseURL/wallets") .addHeader("Content-Type", "application/json") .addHeader("Authorization,X-Api-Key", "API_KEY") .post(requestBody) .build() httpClient.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { if (response.body != null) { println("Successful (${response.code}) with response: " + response.body?.string()) } else { println("Successful (${response.code}) with empty response.") } } else { println("Failed with status code: ${response.code}") } } override fun onFailure(call: Call, e: IOException) { println("Request failed: $e") } })}import Foundation
let apiBaseURL = "https://a.y.at"let url = URL(string: apiBaseURL + "/wallets")
let requestBody = """{ "signature": "string", "source": "Mint"}"""
var request = URLRequest(url: url!)
request.httpMethod = "POST"request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = requestBody.data(using: .utf8)
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in guard error == nil else { print("Request failed: \(String(describing: error))") return } guard let response = response as? HTTPURLResponse else { print("Unexpected response type.") return } if 200...299 ~= response.statusCode { print("Successful with status code: \(response.statusCode)") } else { print("Failed with status code: \(response.statusCode)") } // display body guard let data = data, let responseBody = String(data: data, encoding: .utf8) else { print("Empty response body.") return } print("Response body:") print(responseBody)}
task.resume()Body parameter#
{ "signature": "string", "source": "Mint"}Parameters#
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | WalletSyncRequest | true | none |
| ยป signature | body | string | true | none |
| ยป source | body | string | true | none |
Enumerated Values#
| Parameter | Value |
|---|---|
| ยป source | Mint |
| ยป source | Dashboard |
Responses#
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 400 | Bad Request | Bad request: Request body or parameters are not in the expected format. | None |
| 401 | Unauthorized | Unauthorized: Access token not found or invalid. | None |
| 422 | Unprocessable Entity | Unprocessable Entity: Duplicate record. | None |
| 500 | Internal Server Error | Internal server error. | None |
Authentication
To perform this operation, you must be authenticated by means of one of the following methods: apiKey
Schemas#
AcceptTransfer#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | Confirmation OTP of either the sender or receiver of the transfer. |
Example#
{ "code": "string"}
AddItemsCartRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [object] | true | none | New items to add to cart. |
| ยป emoji_id | string | true | none | EmojiID to buy. |
| tracking_data | any | false | none | Tracking data. |
Example#
{ "items": [ { "emoji_id": "๐ฑ๐๐๐ด๐ต" } ], "tracking_data": null}
AdminNewLootBoxBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| owner_email | string | false | none | Assign lootbox an owner with matching email Should not be set if owner_id is set. |
| owner_id | string(uuid) | false | none | Lootbox owner_id, required for Owned and Used lootboxes. |
| status | string | true | none | Status lootbox will be created in If status is Used lootbox with be automatically opened. |
| yats | [string] | true | none | LootBox emoji IDs. |
Enumerated Values#
| Property | Value |
|---|---|
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
Example#
{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}
AdminNewLootBoxType#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| config | object | true | none | The configuration parameters for the loot box type. |
| ยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type. |
| ยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box. |
| ยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop. |
| ยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop. |
| ยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box. |
| ยป max_length | integer(int64) | true | none | Maximum yat length. |
| ยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box. |
| ยป min_length | integer(int64) | true | none | Minimum yat length. |
| ยป size | integer(int64) | true | none | The number of yats in the loot box. |
| ยป weights | [object] | true | none | A set of probability weightings for chance-based drops. |
| ยปยป ipr | number(double) | true | none | The inverse probability ratio. |
| ยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| description | string | true | none | A description for the loot box type. |
| name | string | true | none | the name of the loot box type. |
Example#
{ "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "description": "string", "name": "string"}
AdminUpdateLootBoxBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| owner_email | string | false | none | Assign lootbox an owner with matching email Should not be set if owner_id is set. |
| owner_id | string(uuid) | false | none | Assign lootbox an owner, if set requires status Owned. |
| status | string | false | none | Update status If status is Used lootbox with be automatically opened. |
| yats | [string] | false | none | LootBox emoji IDs. |
Enumerated Values#
| Property | Value |
|---|---|
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
Example#
{ "owner_email": "string", "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "status": "Draft", "yats": [ "๐ฑ๐๐๐ด๐ต" ]}
AdminUpdateUserParameters#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activation_source | string | false | none | Optional: Source of activation. |
| current_password | string | false | none | Optional: Current password, must be provided if one exists. |
| string | false | none | Optional: Email. | |
| first_name | string | false | none | Optional: First name. |
| free_limit | integer(int32) | false | none | Optional: Free limit for how many yats the user may purchase. |
| last_name | string | false | none | Optional: Last name. |
| password | string | false | none | Optional: User password. |
| role | string | false | none | Optional: Update the user role. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "activation_source": "string", "current_password": "string", "email": "string", "first_name": "string", "free_limit": 0, "last_name": "string", "password": "string", "role": "Admin"}
ApplyPromoCodeRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | Code to apply. |
Example#
{ "code": "string"}
BackupDisableBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alternate_id | string | false | none | Alternate identifier. |
| backup_code | string | true | none | Backup code. |
| disable_all | boolean | false | none | Make this method default. |
| string | false | none | Email. | |
| provider | string | false | none | Two factor authentication backend. |
Enumerated Values#
| Property | Value |
|---|---|
| provider | GoogleAuthenticator |
| provider | SMS |
Example#
{ "alternate_id": "string", "backup_code": "string", "disable_all": true, "email": "string", "provider": "GoogleAuthenticator"}
CheckoutCartRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | integer(int64) | false | none | Amount paid in cash. |
| cancel_url | string | false | none | URL user will be redirected if payment cancelled Required for Stripe Checkout. |
| external_reference | string | false | none | External reference for cash payment. |
| method | string | true | none | Payment method type. |
| pubkey | string | false | none | Optional: The user's public key to associate with this emoji id. |
| success_url | string | false | none | URL user will be redirected after successful payment Required for Stripe Checkout. |
| tracking_data | any | false | none | Optional: tracking data. |
Enumerated Values#
| Property | Value |
|---|---|
| method | Free |
| method | CoinbaseCommerce |
| method | Stripe |
| method | Cash |
| method | PayPal |
Example#
{ "amount": 0, "cancel_url": "string", "external_reference": "string", "method": "Free", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "success_url": "string", "tracking_data": null}
Confirm2Fa#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | Two factor authentication code. |
| refresh_token | string | true | none | Refresh token obtained from login request. |
Example#
{ "code": "string", "refresh_token": "string"}
Confirm2FaUpdate#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | Auth code of new 2FA provider. |
Example#
{ "code": "string"}
CreateApiKeyBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| expires_at | string(date-time) | false | none | None. |
| name | string | true | none | None. |
| scopes | [string] | false | none | None. |
Example#
{ "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]}
CurrentUser#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| everflow_transaction_id | string | false | none | transaction id indicating if the user signed up from a partner via everflow redirect. |
| features | [object] | true | none | Enabled features for the user. |
| ยป code | string | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| global_scopes | [string] | true | none | A list of fine-grained permissions the user may perform. |
| organization_roles | object | true | none | The role this user has in each organisation. |
| ยป additionalProperties | string | false | none | None. |
| organization_scopes | object | true | none | The scopes that are granted to this user for each organisation. |
| ยป additionalProperties | [string] | false | none | None. |
| pending_transfers | [string] | true | none | List of transfers pending acceptance on current user side. |
| pubkeys | [string] | true | none | A list of this user's public keys. |
| role | string | true | none | The role assigned to this user. |
| user | object | true | none | The current user's details. |
| ยป alternate_id | string | false | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deactivated_at | string(date-time) | false | none | None. |
| ยป email | string | false | none | None. |
| ยป email_verified_at | string(date-time) | false | none | None. |
| ยป first_name | string | false | none | None. |
| ยป free_limit | integer(int32) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป last_name | string | false | none | None. |
| ยป pubkeys | [string] | true | none | None. |
| ยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยป role | string | true | none | None. |
| ยป source | string | false | none | None. |
| ยป two_factor_auth | [string] | false | none | None. |
| ยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยป two_factor_should_prompt | boolean | true | none | None. |
| ยป updated_at | string(date-time) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| additionalProperties | Admin |
| additionalProperties | OrgController |
| additionalProperties | OrgMember |
| additionalProperties | OrgOwner |
| additionalProperties | Bot |
| additionalProperties | Super |
| additionalProperties | User |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "everflow_transaction_id": "string", "features": [ { "code": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } ], "global_scopes": [ "adminCart:update" ], "organization_roles": { "property1": "Admin", "property2": "Admin" }, "organization_scopes": { "property1": [ "adminCart:update" ], "property2": [ "adminCart:update" ] }, "pending_transfers": [ "๐ฑ๐๐๐ด๐ต" ], "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "role": "Admin", "user": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }}
Disable2FABody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| disable_all | boolean | true | none | Make this method default. |
| provider | string | false | none | Two factor authentication backend. |
Enumerated Values#
| Property | Value |
|---|---|
| provider | GoogleAuthenticator |
| provider | SMS |
Example#
{ "disable_all": true, "provider": "GoogleAuthenticator"}
DisplayApiKey#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| api_key | string | true | none | None. |
| created_at | string(date-time) | true | none | None. |
| expires_at | string(date-time) | false | none | None. |
| name | string | true | none | None. |
| scopes | [string] | true | none | None. |
Example#
{ "api_key": "string", "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "name": "string", "scopes": [ "adminCart:update" ]}
DisplayFeature#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | None. |
| id | string(uuid) | true | none | None. |
Example#
{ "code": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"}
DisplayOrder#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount_overpaid_in_cents | integer(int64) | true | none | Amount overpaid in cents. |
| created_at | string(date-time) | true | none | A UTC timestamp for when this order was initially created. |
| eligible_for_refund | boolean | true | none | Whether an order is eligible for a refund via an admin. |
| expires_at | string(date-time) | false | none | Checkout carts have a limited time before they expire. |
| id | string(uuid) | true | none | The unique identifier for this order. |
| misc_refunded_total_in_cents | integer(int64) | true | none | The total of miscellaneous refund amounts retirned to the order. |
| order_items | [object] | true | none | The list of individual line items making up this order. |
| ยป client_fee_in_cents | integer(int32) | true | none | The fee attributable to the referral partner, in addition to the nominal unit price, in USD cents. |
| ยป code_id | string(uuid) | false | none | The code associated with this order item for providing a discount. |
| ยป company_fee_in_cents | integer(int32) | true | none | The fee attributable to the service host or company, in addition to the nominal unit price, in USD cents. |
| ยป created_at | string(date-time) | true | none | A UTC timestamp for when this order item was created. |
| ยป emoji_id | any | false | none | The emoji id that is being purchased. |
| ยป id | string(uuid) | true | none | A unique identifier for this order item. |
| ยป item_type | string | true | none | The type of order. |
| ยป main_id | string(uuid) | false | none | Main item ID. |
| ยป main_table | any | false | none | Main item table. |
| ยป marked_invalid_at | string(date-time) | false | none | A UTC timestamp for when this order item was marked as invalid. |
| ยป marked_invalid_at_reason | string | false | none | Marked invalid at reason Taken / PendingPurchase. |
| ยป order_id | string(uuid) | true | none | The id of the order this order item. |
| ยป parent_id | string(uuid) | false | none | Parent order item's ID, set for discounts and fees. |
| ยป quantity | integer(int32) | true | none | The number of items in the line order. |
| ยป refunded_quantity | integer(int32) | true | none | The number of items refunded. |
| ยป rhythm_score | integer(int32) | false | none | The rhythm score belonging to this order item, only set for order items containing EmojiIds. |
| ยป unit_price_in_cents | integer(int32) | true | none | The nominal, non-discounted price of the item, in USD cents. |
| ยป updated_at | string(date-time) | true | none | A UTC timestamp for when any field in the order item was modified. |
| order_number | string | true | none | The order number is the last 8 characters of the order's ID for user display purposes. |
| organization_id | string(uuid) | false | none | The organization id of the user, if applicable. |
| paid_at | string(date-time) | false | none | A UTC timestamp for when payment for this order was received. |
| payment_method_data | object | false | none | Payment method data for payment methods that provide QR code checkout options set via checkout. |
| ยป cancel_url | string | false | none | Cancel url for Stripe method when using Checkout. |
| ยป client_secret | string | true | none | Client Secret for the Stripe method for Elements and Checkout. |
| ยป invoice_id | string | false | none | Invoice ID for the Stripe method for Elements. |
| ยป method | string | true | none | Payment method. |
| ยป methods | [object] | true | none | Metadata for CoinbaseCommerce payment method. |
| ยปยป address | string | true | none | None. |
| ยปยป amount | number(double) | true | none | None. |
| ยปยป currency | string | true | none | None. |
| ยปยป title | string | true | none | None. |
| ยป payment_intent_id | string | true | none | Payment method ID for Stripe method. |
| ยป session_id | string | false | none | Invoice ID for the Stripe method for Checkout. |
| ยป success_url | string | false | none | Success url for Stripe method when using Checkout. |
| refunded_total_in_cents | integer(int64) | true | none | The total of refund amounts for the order. |
| remaining_due_in_cents | integer(int64) | true | none | Remaining due in cents to mark the cart as Paid. |
| seconds_until_expiry | integer(int32) | false | none | A convenience field indicating how long before expires_at is reached. |
| status | string | true | none | The order of the status. |
| total_in_cents | integer(int64) | true | none | The sum of all the items in this order, plus fees, in USD cents. |
| updated_at | string(date-time) | true | none | A UTC timestamp for the last time any field in this order was modified. |
| user | object | true | none | The details of the user placing this order. |
| ยป alternate_id | string | false | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deactivated_at | string(date-time) | false | none | None. |
| ยป email | string | false | none | None. |
| ยป email_verified_at | string(date-time) | false | none | None. |
| ยป first_name | string | false | none | None. |
| ยป free_limit | integer(int32) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป last_name | string | false | none | None. |
| ยป pubkeys | [string] | true | none | None. |
| ยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยป role | string | true | none | None. |
| ยป source | string | false | none | None. |
| ยป two_factor_auth | [string] | false | none | None. |
| ยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยป two_factor_should_prompt | boolean | true | none | None. |
| ยป updated_at | string(date-time) | true | none | None. |
| user_id | string(uuid) | true | none | The identifier of the user placing this order. |
Enumerated Values#
| Property | Value |
|---|---|
| item_type | Discount |
| item_type | LootBox |
| item_type | EmojiId |
| marked_invalid_at_reason | Taken |
| marked_invalid_at_reason | PendingPurchase |
| method | CoinbaseCommerce |
| method | Stripe |
| status | Cancelled |
| status | Draft |
| status | Paid |
| status | PendingPayment |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "amount_overpaid_in_cents": 0, "created_at": "2019-08-24T14:15:22Z", "eligible_for_refund": true, "expires_at": "2019-08-24T14:15:22Z", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "misc_refunded_total_in_cents": 0, "order_items": [ { "client_fee_in_cents": 0, "code_id": "c6a02b7d-40f4-4982-9c97-607f4e20761a", "company_fee_in_cents": 0, "created_at": "2019-08-24T14:15:22Z", "emoji_id": null, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "item_type": "Discount", "main_id": "25a42c25-524f-4b99-94ac-63957e307489", "main_table": null, "marked_invalid_at": "2019-08-24T14:15:22Z", "marked_invalid_at_reason": "Taken", "order_id": "93101167-9065-4b9c-b98b-5d789a3ed9fe", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "quantity": 0, "refunded_quantity": 0, "rhythm_score": 0, "unit_price_in_cents": 0, "updated_at": "2019-08-24T14:15:22Z" } ], "order_number": "string", "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", "paid_at": "2019-08-24T14:15:22Z", "payment_method_data": { "cancel_url": "string", "client_secret": "string", "invoice_id": "string", "method": "CoinbaseCommerce", "methods": [ { "address": "string", "amount": 0, "currency": "string", "title": "string" } ], "payment_intent_id": "string", "session_id": "string", "success_url": "string" }, "refunded_total_in_cents": 0, "remaining_due_in_cents": 0, "seconds_until_expiry": 0, "status": "Cancelled", "total_in_cents": 0, "updated_at": "2019-08-24T14:15:22Z", "user": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }, "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}
DisplayTransferRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| accepted_at | string(date-time) | false | none | None. |
| clear_on_transfer | boolean | true | none | None. |
| created_at | string(date-time) | true | none | None. |
| deleted_at | string(date-time) | false | none | None. |
| eid | string | true | none | None. |
| string | true | none | None. | |
| id | string(uuid) | true | none | None. |
| message | string | false | none | None. |
| recipient_id | string(uuid) | true | none | None. |
| sender_code_accepted_at | string(date-time) | false | none | None. |
Example#
{ "accepted_at": "2019-08-24T14:15:22Z", "clear_on_transfer": true, "created_at": "2019-08-24T14:15:22Z", "deleted_at": "2019-08-24T14:15:22Z", "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560", "sender_code_accepted_at": "2019-08-24T14:15:22Z"}
DisplayUser#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alternate_id | string | false | none | None. |
| created_at | string(date-time) | true | none | None. |
| deactivated_at | string(date-time) | false | none | None. |
| string | false | none | None. | |
| email_verified_at | string(date-time) | false | none | None. |
| first_name | string | false | none | None. |
| free_limit | integer(int32) | true | none | None. |
| id | string(uuid) | true | none | None. |
| last_name | string | false | none | None. |
| pubkeys | [string] | true | none | None. |
| remaining_free_emoji | integer(int32) | true | none | None. |
| role | string | true | none | None. |
| source | string | false | none | None. |
| two_factor_auth | [string] | false | none | None. |
| two_factor_last_prompted_at | string(date-time) | false | none | None. |
| two_factor_should_prompt | boolean | true | none | None. |
| updated_at | string(date-time) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z"}
DisplayUserExtended#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alternate_id | string | false | none | None. |
| created_at | string(date-time) | false | none | None. |
| deactivated_at | string(date-time) | false | none | None. |
| string | false | none | None. | |
| email_verified_at | string(date-time) | false | none | None. |
| emoji_ids | [string] | true | none | None. |
| first_name | string | false | none | None. |
| free_limit | integer(int32) | false | none | None. |
| id | string(uuid) | false | none | None. |
| last_name | string | false | none | None. |
| pubkeys | [string] | false | none | None. |
| remaining_free_emoji | integer(int32) | false | none | None. |
| role | string | false | none | None. |
| source | string | false | none | None. |
| two_factor_auth | [string] | false | none | None. |
| two_factor_last_prompted_at | string(date-time) | false | none | None. |
| two_factor_should_prompt | boolean | false | none | None. |
| updated_at | string(date-time) | false | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "emoji_ids": [ "๐ฑ๐๐๐ด๐ต" ], "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z"}
EditRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| bypass_single_restrictions | boolean | false | none | Optional: Allow many addresses per Tag. |
| delete | [string] | false | none | Optional: hashes of records to delete. |
| insert | [any] | false | none | Optional: list of records to add. |
| ยป data | string | true | none | Category data in text format. |
| ยป tag | string | true | none | Category ID as a hex number. |
| merkle_root | string | false | none | Optional: merkle root (use WASM to generate). |
| signature | string | false | none | Optional: signature (use WASM to generate). |
Example#
{ "bypass_single_restrictions": true, "delete": [ "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944" ], "insert": [ { "data": "127.0.0.1", "tag": "0x4101" } ], "merkle_root": "916ea8882cdbe350ca9cec48680e4bf37d75930d8d033bed57128c0809537336", "signature": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}
EidResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | None. |
| ยป code | string(int64) | true | none | Error code. |
| ยป reason | string | true | none | None. |
| result | [object] | false | none | Records associated with EmojiID. |
| ยป data | string | true | none | Category data in text or hex encoded formats. |
| ยป hash | string | true | none | Hash identifies record, can be used to delete records. |
| ยป tag | string | true | none | Category as a hex string number. |
| status | boolean | true | none | Response status. |
Example#
{ "error": { "code": "404", "reason": "string" }, "result": [ { "data": "string", "hash": "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944", "tag": "0x4001" } ], "status": true}
EmojiId#
The emoji id is the key value used in the Emoji ID key-value lookup system. As the name suggests, the id consists solely of emoji characters from a carefully curated list ranging in length from one to six characters. Emoji ids are 'owned' in the sense that there is a private-public keypair associated with the id that granted transfer and write-access rights to anyone with knowledge of the emoji id's private key. The primary use of emoji ids is to associate useful related data with the id. This creates a unified identity around that emoji id. For example, someone may associate a website, a twitter handle and a BTC payment address to an emoji id. Those three disparate entities can then be easily accessed using the same emoji id.
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | The emoji id is the key value used in the Emoji ID key-value lookup system. |
Example#
"๐ฑ๐๐๐ด๐ต"
EmojiListItem#
EmojiId in canonical and display representations
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| blocked_until | string(date-time) | false | none | None. |
| canonical_format | string | true | none | None. |
| chain_format | string | true | none | None. |
| display_format | string | true | none | None. |
| flippable_emoji | [boolean] | true | none | None. |
| generation | integer(int32) | true | none | None. |
| minted | boolean | true | none | None. |
| rhythm_score | integer(int32) | true | none | None. |
| shape | object | true | none | None. |
| ยป pattern | any | false | none | None. |
| ยป shape | string | false | none | None. |
| shortname | string | true | none | None. |
| token_id | integer(int64) | false | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Example#
{ "blocked_until": "2019-08-24T14:15:22Z", "canonical_format": "string", "chain_format": "string", "display_format": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "minted": true, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "shortname": "string", "token_id": 0}
EmojiStatsResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| emoji_id | string | true | none | None. |
| metrics | [object] | true | none | None. |
| ยป description | string | true | none | None. |
| ยป finish_date | string(date-time) | true | none | None. |
| ยป key | string | true | none | Counter object. |
| ยป metric | string | true | none | Counter type. |
| ยป start_date | string(date-time) | true | none | None. |
| ยป value | integer(int64) | true | none | Counter value. |
Example#
{ "emoji_id": "๐ฑ๐๐๐ด๐ต", "metrics": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ]}
Enable2FABody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| default | boolean | true | none | Make this method default. |
| phone | string | false | none | Phone number required for SMS provider. |
| provider | string | true | none | Two factor authentication backend. |
Enumerated Values#
| Property | Value |
|---|---|
| provider | GoogleAuthenticator |
| provider | SMS |
Example#
{ "default": true, "phone": "string", "provider": "GoogleAuthenticator"}
Enable2FAResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| backup_codes | [string] | false | none | One time backup codes to login. |
| ga_qr_code_svg | string | false | none | GA secret as QR code in svg image. |
| ga_secret | string | false | none | GA base32 encoded secret, will be null when code is disabled. |
| phone_last_digits | string | false | none | Phone last digits. |
Example#
{ "backup_codes": [ "string" ], "ga_qr_code_svg": "string", "ga_secret": "string", "phone_last_digits": "string"}
ListOfCodeAvailability#
Paginated results.
Item description:
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | None. |
| ยป activator | string | false | none | None. |
| ยป available | integer(int64) | false | none | None. |
| ยป code_type | string | false | none | None. |
| ยป created_at | string(date-time) | false | none | None. |
| ยป deleted_at | string(date-time) | false | none | None. |
| ยป discount_as_percentage | integer(int32) | false | none | None. |
| ยป discount_in_cents | integer(int32) | false | none | None. |
| ยป end_date | string(date-time) | false | none | None. |
| ยป id | string(uuid) | false | none | None. |
| ยป max_emojis_per_user | integer(int32) | false | none | None. |
| ยป max_uses | integer(int32) | false | none | None. |
| ยป name | string | false | none | None. |
| ยป organization_id | string(uuid) | false | none | None. |
| ยป pattern | any | false | none | None. |
| ยป redemption_code | string | false | none | None. |
| ยป start_date | string(date-time) | false | none | None. |
| ยป total_uses | integer(int64) | true | none | None. |
| ยป updated_at | string(date-time) | false | none | None. |
| paging | object | false | none | Paging information. |
| ยป dir | string | true | none | None. |
| ยป limit | integer(int32) | true | none | None. |
| ยป page | integer(int32) | true | none | None. |
| ยป sort | string | true | none | None. |
| ยป tags | object | true | none | None. |
| ยปยป additionalProperties | any | false | none | None. |
| ยป total | integer(int64) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| activator | RedemptionCode |
| activator | SecretKey |
| code_type | Discount |
| code_type | RandomYat |
| dir | Asc |
| dir | Desc |
Example#
{ "data": [ { "activator": "RedemptionCode", "available": 0, "code_type": "Discount", "created_at": "2019-08-24T14:15:22Z", "deleted_at": "2019-08-24T14:15:22Z", "discount_as_percentage": 0, "discount_in_cents": 0, "end_date": "2019-08-24T14:15:22Z", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "max_emojis_per_user": 0, "max_uses": 0, "name": "string", "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", "pattern": null, "redemption_code": "string", "start_date": "2019-08-24T14:15:22Z", "total_uses": 0, "updated_at": "2019-08-24T14:15:22Z" } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 }}
ListOfDisplayTransferRequest#
Paginated results.
Item description: Emoji transfer request details json payload
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | None. |
| ยป accepted_at | string(date-time) | false | none | None. |
| ยป clear_on_transfer | boolean | true | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deleted_at | string(date-time) | false | none | None. |
| ยป eid | string | true | none | None. |
| ยป email | string | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป message | string | false | none | None. |
| ยป recipient_id | string(uuid) | true | none | None. |
| ยป sender_code_accepted_at | string(date-time) | false | none | None. |
| paging | object | false | none | Paging information. |
| ยป dir | string | true | none | None. |
| ยป limit | integer(int32) | true | none | None. |
| ยป page | integer(int32) | true | none | None. |
| ยป sort | string | true | none | None. |
| ยป tags | object | true | none | None. |
| ยปยป additionalProperties | any | false | none | None. |
| ยป total | integer(int64) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| dir | Asc |
| dir | Desc |
Example#
{ "data": [ { "accepted_at": "2019-08-24T14:15:22Z", "clear_on_transfer": true, "created_at": "2019-08-24T14:15:22Z", "deleted_at": "2019-08-24T14:15:22Z", "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560", "sender_code_accepted_at": "2019-08-24T14:15:22Z" } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 }}
ListOfDisplayUserExtended#
Paginated results.
Item description: User data with emoji list
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | None. |
| ยป alternate_id | string | false | none | None. |
| ยป created_at | string(date-time) | false | none | None. |
| ยป deactivated_at | string(date-time) | false | none | None. |
| ยป email | string | false | none | None. |
| ยป email_verified_at | string(date-time) | false | none | None. |
| ยป emoji_ids | [string] | true | none | None. |
| ยป first_name | string | false | none | None. |
| ยป free_limit | integer(int32) | false | none | None. |
| ยป id | string(uuid) | false | none | None. |
| ยป last_name | string | false | none | None. |
| ยป pubkeys | [string] | false | none | None. |
| ยป remaining_free_emoji | integer(int32) | false | none | None. |
| ยป role | string | false | none | None. |
| ยป source | string | false | none | None. |
| ยป two_factor_auth | [string] | false | none | None. |
| ยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยป two_factor_should_prompt | boolean | false | none | None. |
| ยป updated_at | string(date-time) | false | none | None. |
| paging | object | false | none | Paging information. |
| ยป dir | string | true | none | None. |
| ยป limit | integer(int32) | true | none | None. |
| ยป page | integer(int32) | true | none | None. |
| ยป sort | string | true | none | None. |
| ยป tags | object | true | none | None. |
| ยปยป additionalProperties | any | false | none | None. |
| ยป total | integer(int64) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| dir | Asc |
| dir | Desc |
Example#
{ "data": [ { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "emoji_ids": [ "๐ฑ๐๐๐ด๐ต" ], "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 }}
ListOfPublicLootBox#
Paginated results.
Item description:
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | None. |
| ยป average_rhythm_score | number(double) | true | none | Average score of emoji IDs in loot box. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป lootbox_type | object | false | none | For Admin: Expanded Lootbox Type. |
| ยปยป config | object | true | none | The loot box type's configuration parameters. |
| ยปยปยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type. |
| ยปยปยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box. |
| ยปยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop. |
| ยปยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop. |
| ยปยปยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยปยป max_length | integer(int64) | true | none | Maximum yat length. |
| ยปยปยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยปยป min_length | integer(int64) | true | none | Minimum yat length. |
| ยปยปยป size | integer(int64) | true | none | The number of yats in the loot box. |
| ยปยปยป weights | [object] | true | none | A set of probability weightings for chance-based drops. |
| ยปยปยปยป ipr | number(double) | true | none | The inverse probability ratio. |
| ยปยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยป created_at | string(date-time) | true | none | The timestamp for when this loot box type was created. |
| ยปยป description | string | true | none | A more detailed description of the loot box type. |
| ยปยป id | string(uuid) | true | none | The loot box type id. |
| ยปยป name | string | true | none | The name of this loot box type. |
| ยป lootbox_type_id | string(uuid) | false | none | For Admin: The type of loot box, if applicable. |
| ยป owner | object | false | none | For Admin: Expanded owner of a lootbox. |
| ยปยป alternate_id | string | false | none | None. |
| ยปยป created_at | string(date-time) | true | none | None. |
| ยปยป deactivated_at | string(date-time) | false | none | None. |
| ยปยป email | string | false | none | None. |
| ยปยป email_verified_at | string(date-time) | false | none | None. |
| ยปยป first_name | string | false | none | None. |
| ยปยป free_limit | integer(int32) | true | none | None. |
| ยปยป id | string(uuid) | true | none | None. |
| ยปยป last_name | string | false | none | None. |
| ยปยป pubkeys | [string] | true | none | None. |
| ยปยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยปยป role | string | true | none | None. |
| ยปยป source | string | false | none | None. |
| ยปยป two_factor_auth | [string] | false | none | None. |
| ยปยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยปยป two_factor_should_prompt | boolean | true | none | None. |
| ยปยป updated_at | string(date-time) | true | none | None. |
| ยป owner_id | string(uuid) | false | none | Loot box owner_id, required for Owned and Used loot boxes. |
| ยป prices | [integer] | true | none | The prices of the yats in the box, in cents. |
| ยป scores | [integer] | true | none | The rhythm scores of the yats in the box. |
| ยป status | string | true | none | Status loot box will be created in. |
| ยป total_value | number(double) | true | none | Total value of EmojiIDs in the Loot Box. |
| ยป yats | [string] | true | none | Loot box yats. |
| paging | object | false | none | Paging information. |
| ยป dir | string | true | none | None. |
| ยป limit | integer(int32) | true | none | None. |
| ยป page | integer(int32) | true | none | None. |
| ยป sort | string | true | none | None. |
| ยป tags | object | true | none | None. |
| ยปยป additionalProperties | any | false | none | None. |
| ยป total | integer(int64) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
| dir | Asc |
| dir | Desc |
Example#
{ "data": [ { "average_rhythm_score": 0, "created_at": "2019-08-24T14:15:22Z", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "lootbox_type": { "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "created_at": "2019-08-24T14:15:22Z", "description": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "lootbox_type_id": "fe5ea2ec-76e0-40b9-840c-a44f2c793043", "owner": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }, "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "prices": [ 0 ], "scores": [ 0 ], "status": "Draft", "total_value": 0, "yats": [ "๐ฑ๐๐๐ด๐ต" ] } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 }}
ListOfUserInterest#
Paginated results.
Item description: User interest
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป emoji_id | string | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป updated_at | string(date-time) | true | none | None. |
| ยป user_id | string(uuid) | true | none | None. |
| paging | object | false | none | Paging information. |
| ยป dir | string | true | none | None. |
| ยป limit | integer(int32) | true | none | None. |
| ยป page | integer(int32) | true | none | None. |
| ยป sort | string | true | none | None. |
| ยป tags | object | true | none | None. |
| ยปยป additionalProperties | any | false | none | None. |
| ยป total | integer(int64) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| dir | Asc |
| dir | Desc |
Example#
{ "data": [ { "created_at": "2019-08-24T14:15:22Z", "emoji_id": "๐ฑ๐๐๐ด๐ต", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "updated_at": "2019-08-24T14:15:22Z", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5" } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 }}
LoadJsonResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| created_at | string(date-time) | true | none | Created at time for the record. |
| data | any | true | none | Data value stored by key and EmojiID If there is no value for the key an empty object {} is returned. |
| is_locked | boolean | true | none | Data is locked. |
| locked_future_writes_at | string(date-time) | false | none | Time the record was locked from future writes. |
| updated_at | string(date-time) | true | none | Updated at time for the record. |
Example#
{ "created_at": "2019-08-24T14:15:22Z", "data": null, "is_locked": true, "locked_future_writes_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}
LoadUser#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| current_user | object | true | none | None. |
| ยป everflow_transaction_id | string | false | none | transaction id indicating if the user signed up from a partner via everflow redirect. |
| ยป features | [object] | true | none | Enabled features for the user. |
| ยปยป code | string | true | none | None. |
| ยปยป id | string(uuid) | true | none | None. |
| ยป global_scopes | [string] | true | none | A list of fine-grained permissions the user may perform. |
| ยป organization_roles | object | true | none | The role this user has in each organisation. |
| ยปยป additionalProperties | string | false | none | None. |
| ยป organization_scopes | object | true | none | The scopes that are granted to this user for each organisation. |
| ยปยป additionalProperties | [string] | false | none | None. |
| ยป pending_transfers | [string] | true | none | List of transfers pending acceptance on current user side. |
| ยป pubkeys | [string] | true | none | A list of this user's public keys. |
| ยป role | string | true | none | The role assigned to this user. |
| ยป user | object | true | none | The current user's details. |
| ยปยป alternate_id | string | false | none | None. |
| ยปยป created_at | string(date-time) | true | none | None. |
| ยปยป deactivated_at | string(date-time) | false | none | None. |
| ยปยป email | string | false | none | None. |
| ยปยป email_verified_at | string(date-time) | false | none | None. |
| ยปยป first_name | string | false | none | None. |
| ยปยป free_limit | integer(int32) | true | none | None. |
| ยปยป id | string(uuid) | true | none | None. |
| ยปยป last_name | string | false | none | None. |
| ยปยป pubkeys | [string] | true | none | None. |
| ยปยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยปยป role | string | true | none | None. |
| ยปยป source | string | false | none | None. |
| ยปยป two_factor_auth | [string] | false | none | None. |
| ยปยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยปยป two_factor_should_prompt | boolean | true | none | None. |
| ยปยป updated_at | string(date-time) | true | none | None. |
| editions | [integer] | true | none | None. |
| everflow_transaction_id | string | false | none | None. |
| extended_list | [object] | true | none | None. |
| ยป blocked_until | string(date-time) | false | none | None. |
| ยป canonical_format | string | true | none | None. |
| ยป chain_format | string | true | none | None. |
| ยป display_format | string | true | none | None. |
| ยป flippable_emoji | [boolean] | true | none | None. |
| ยป generation | integer(int32) | true | none | None. |
| ยป minted | boolean | true | none | None. |
| ยป rhythm_score | integer(int32) | true | none | None. |
| ยป shape | object | true | none | None. |
| ยปยป pattern | any | false | none | None. |
| ยปยป shape | string | false | none | None. |
| ยป shortname | string | true | none | None. |
| ยป token_id | integer(int64) | false | none | None. |
| incoming_transfers | [object] | true | none | None. |
| ยป accepted_at | string(date-time) | false | none | None. |
| ยป clear_on_transfer | boolean | true | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deleted_at | string(date-time) | false | none | None. |
| ยป eid | string | true | none | None. |
| ยป email | string | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป message | string | false | none | None. |
| ยป recipient_id | string(uuid) | true | none | None. |
| ยป sender_code_accepted_at | string(date-time) | false | none | None. |
| outgoing_transfers | object | true | none | Paginated results. |
| ยป data | [object] | false | none | None. |
| ยปยป accepted_at | string(date-time) | false | none | None. |
| ยปยป clear_on_transfer | boolean | true | none | None. |
| ยปยป created_at | string(date-time) | true | none | None. |
| ยปยป deleted_at | string(date-time) | false | none | None. |
| ยปยป eid | string | true | none | None. |
| ยปยป email | string | true | none | None. |
| ยปยป id | string(uuid) | true | none | None. |
| ยปยป message | string | false | none | None. |
| ยปยป recipient_id | string(uuid) | true | none | None. |
| ยปยป sender_code_accepted_at | string(date-time) | false | none | None. |
| ยป paging | object | false | none | Paging information. |
| ยปยป dir | string | true | none | None. |
| ยปยป limit | integer(int32) | true | none | None. |
| ยปยป page | integer(int32) | true | none | None. |
| ยปยป sort | string | true | none | None. |
| ยปยป tags | object | true | none | None. |
| ยปยปยป additionalProperties | any | false | none | None. |
| ยปยป total | integer(int64) | true | none | None. |
| sidebar | any | false | none | None. |
| wallets | [object] | true | none | None. |
| ยป eth_address | string | true | none | None. |
| ยป user_id | string(uuid) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| additionalProperties | Admin |
| additionalProperties | OrgController |
| additionalProperties | OrgMember |
| additionalProperties | OrgOwner |
| additionalProperties | Bot |
| additionalProperties | Super |
| additionalProperties | User |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
| dir | Asc |
| dir | Desc |
Example#
{ "current_user": { "everflow_transaction_id": "string", "features": [ { "code": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } ], "global_scopes": [ "adminCart:update" ], "organization_roles": { "property1": "Admin", "property2": "Admin" }, "organization_scopes": { "property1": [ "adminCart:update" ], "property2": [ "adminCart:update" ] }, "pending_transfers": [ "๐ฑ๐๐๐ด๐ต" ], "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "role": "Admin", "user": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" } }, "editions": [ 0 ], "everflow_transaction_id": "string", "extended_list": [ { "blocked_until": "2019-08-24T14:15:22Z", "canonical_format": "string", "chain_format": "string", "display_format": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "minted": true, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "shortname": "string", "token_id": 0 } ], "incoming_transfers": [ { "accepted_at": "2019-08-24T14:15:22Z", "clear_on_transfer": true, "created_at": "2019-08-24T14:15:22Z", "deleted_at": "2019-08-24T14:15:22Z", "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560", "sender_code_accepted_at": "2019-08-24T14:15:22Z" } ], "outgoing_transfers": { "data": [ { "accepted_at": "2019-08-24T14:15:22Z", "clear_on_transfer": true, "created_at": "2019-08-24T14:15:22Z", "deleted_at": "2019-08-24T14:15:22Z", "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560", "sender_code_accepted_at": "2019-08-24T14:15:22Z" } ], "paging": { "dir": "Asc", "limit": 0, "page": 0, "sort": "string", "tags": { "property1": null, "property2": null }, "total": 0 } }, "sidebar": null, "wallets": [ { "eth_address": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5" } ]}
LoginRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alternate_id | string | false | none | Alternate identifier. |
| string | false | none | Email. | |
| g_recaptcha_response | string | false | none | Response from google Recaptcha. |
| password | string | true | none | Required: Password. |
Example#
{ "alternate_id": "string", "email": "string", "g_recaptcha_response": "string", "password": "string"}
LookupResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | None. |
| ยป code | string(int64) | true | none | Error code. |
| ยป reason | string | true | none | None. |
| result | [object] | false | none | Records associated with EmojiID. |
| ยป data | string | true | none | Category data in text or hex encoded formats. |
| ยป hash | string | true | none | Hash identifies record, can be used to delete records. |
| ยป tag | string | true | none | Category as a hex string number. |
| stats | [object] | true | none | Number of times emoji viewed during past month. |
| ยป description | string | true | none | None. |
| ยป finish_date | string(date-time) | true | none | None. |
| ยป key | string | true | none | Counter object. |
| ยป metric | string | true | none | Counter type. |
| ยป start_date | string(date-time) | true | none | None. |
| ยป value | integer(int64) | true | none | Counter value. |
| status | boolean | false | none | Response status. |
Example#
{ "error": { "code": "404", "reason": "string" }, "result": [ { "data": "string", "hash": "5aaf5eac326102cf208e397f15534f0b89747b2263f47857b1d797275ce7e944", "tag": "0x4001" } ], "stats": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ], "status": true}
LootBoxGenerationRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| loot_box_type_id | string(uuid) | true | none | The id of the loot box type to generate. |
| num_boxes | integer(int64) | true | none | The number of loot boxes to generate in this sample. |
Example#
{ "loot_box_type_id": "304c4377-b66f-4c4c-8d3f-9284ec029078", "num_boxes": 0}
LootBoxSet#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| loot_boxes | [object] | true | none | The set of loot boxes generated. |
| ยป average_rhythm_score | number(double) | true | none | Average score of emoji IDs in loot box. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป lootbox_type | object | false | none | For Admin: Expanded Lootbox Type. |
| ยปยป config | object | true | none | The loot box type's configuration parameters. |
| ยปยปยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type. |
| ยปยปยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box. |
| ยปยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop. |
| ยปยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop. |
| ยปยปยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยปยป max_length | integer(int64) | true | none | Maximum yat length. |
| ยปยปยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยปยป min_length | integer(int64) | true | none | Minimum yat length. |
| ยปยปยป size | integer(int64) | true | none | The number of yats in the loot box. |
| ยปยปยป weights | [object] | true | none | A set of probability weightings for chance-based drops. |
| ยปยปยปยป ipr | number(double) | true | none | The inverse probability ratio. |
| ยปยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยป created_at | string(date-time) | true | none | The timestamp for when this loot box type was created. |
| ยปยป description | string | true | none | A more detailed description of the loot box type. |
| ยปยป id | string(uuid) | true | none | The loot box type id. |
| ยปยป name | string | true | none | The name of this loot box type. |
| ยป lootbox_type_id | string(uuid) | false | none | For Admin: The type of loot box, if applicable. |
| ยป owner | object | false | none | For Admin: Expanded owner of a lootbox. |
| ยปยป alternate_id | string | false | none | None. |
| ยปยป created_at | string(date-time) | true | none | None. |
| ยปยป deactivated_at | string(date-time) | false | none | None. |
| ยปยป email | string | false | none | None. |
| ยปยป email_verified_at | string(date-time) | false | none | None. |
| ยปยป first_name | string | false | none | None. |
| ยปยป free_limit | integer(int32) | true | none | None. |
| ยปยป id | string(uuid) | true | none | None. |
| ยปยป last_name | string | false | none | None. |
| ยปยป pubkeys | [string] | true | none | None. |
| ยปยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยปยป role | string | true | none | None. |
| ยปยป source | string | false | none | None. |
| ยปยป two_factor_auth | [string] | false | none | None. |
| ยปยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยปยป two_factor_should_prompt | boolean | true | none | None. |
| ยปยป updated_at | string(date-time) | true | none | None. |
| ยป owner_id | string(uuid) | false | none | Loot box owner_id, required for Owned and Used loot boxes. |
| ยป prices | [integer] | true | none | The prices of the yats in the box, in cents. |
| ยป scores | [integer] | true | none | The rhythm scores of the yats in the box. |
| ยป status | string | true | none | Status loot box will be created in. |
| ยป total_value | number(double) | true | none | Total value of EmojiIDs in the Loot Box. |
| ยป yats | [string] | true | none | Loot box yats. |
| num_requested | integer(int64) | true | none | The number of loot boxes requested. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
Example#
{ "loot_boxes": [ { "average_rhythm_score": 0, "created_at": "2019-08-24T14:15:22Z", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "lootbox_type": { "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "created_at": "2019-08-24T14:15:22Z", "description": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "lootbox_type_id": "fe5ea2ec-76e0-40b9-840c-a44f2c793043", "owner": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }, "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "prices": [ 0 ], "scores": [ 0 ], "status": "Draft", "total_value": 0, "yats": [ "๐ฑ๐๐๐ด๐ต" ] } ], "num_requested": 0}
MagicLinkLoginRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | false | none | Email. | |
| g_recaptcha_response | string | false | none | Response from google Recaptcha. |
| redirect | string | false | none | Redirect path. |
| user_id | string(uuid) | false | none | User ID. |
Example#
{ "email": "string", "g_recaptcha_response": "string", "redirect": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}
MagicLinkLoginResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | true | none | Message. |
| status | string | true | none | Status of requested user after completing the login request. |
Enumerated Values#
| Property | Value |
|---|---|
| status | Active |
| status | RegisteredInactive |
| status | RegisteredActive |
| status | Inactive |
Example#
{ "message": "string", "status": "Active"}
Metadata#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| animation_url | string | true | none | None. |
| attributes | [object] | true | none | None. |
| ยป trait_type | string | true | none | None. |
| ยป value | any | true | none | None. |
| description | string | true | none | None. |
| external_link | string | true | none | None. |
| image | string | true | none | None. |
| name | string | true | none | None. |
Example#
{ "animation_url": "string", "attributes": [ { "trait_type": "string", "value": null } ], "description": "string", "external_link": "string", "image": "string", "name": "string"}
NewUserInterestParameters#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| emoji_id | string | true | none | Emoji ID to express interest in. |
Example#
{ "emoji_id": "๐ฑ๐๐๐ด๐ต"}
OrganizationBranding#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| created_at | string(date-time) | true | none | None. |
| currencies | [string] | true | none | None. |
| logo | string | false | none | None. |
| logo_small | string | false | none | None. |
| logo_thumbnail | string | false | none | None. |
| name | string | true | none | None. |
| organization_id | string(uuid) | true | none | None. |
| requires_email | boolean | true | none | None. |
| return_link | string | true | none | None. |
| updated_at | string(date-time) | true | none | None. |
Example#
{ "created_at": "2019-08-24T14:15:22Z", "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "name": "string", "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", "requires_email": true, "return_link": "string", "updated_at": "2019-08-24T14:15:22Z"}
PaymentAddressResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | None. |
| ยป code | string(int64) | true | none | Error code. |
| ยป reason | string | true | none | None. |
| result | object | false | none | None. |
| ยป additionalProperties | object | false | none | Payment address response for crypto and token payment data. |
| ยปยป address | string | true | none | The payment address. |
| ยปยป category | string | true | none | The category of this address. |
| ยปยป default | boolean | true | none | Optional: Is this address the default address for the category. |
| ยปยป description | string | false | none | Optional: Description of the address. |
| ยปยป long_name | string | false | none | Optional: CryptoToken long name is a defined name for the ERC20 token. |
| ยปยป settlement_network | string | false | none | Optional: CryptoToken settlement network for the ERC20 token. |
| ยปยป short_name | string | false | none | Optional: CryptoToken short name to identify an ERC20 token. |
| ยปยป signature | string | false | none | Optional: Proof of ownership signature for the address. |
| status | boolean | true | none | None. |
Example#
{ "error": { "code": "404", "reason": "string" }, "result": { "property1": { "address": "string", "category": "string", "default": true, "description": "string", "long_name": "string", "settlement_network": "string", "short_name": "string", "signature": "string" }, "property2": { "address": "string", "category": "string", "default": true, "description": "string", "long_name": "string", "settlement_network": "string", "short_name": "string", "signature": "string" } }, "status": true}
PaymentMethod#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| brand | string | false | none | None. |
| country | string | false | none | None. |
| exp_month | integer(int32) | false | none | None. |
| exp_year | integer(int32) | false | none | None. |
| id | string | true | none | None. |
| last4 | string | false | none | None. |
| payment_type | string | true | none | None. |
Example#
{ "brand": "string", "country": "string", "exp_month": 0, "exp_year": 0, "id": "string", "last4": "string", "payment_type": "string"}
ProxyCallParameters#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | string | false | none | The data to pass through to the proxied service. |
| service | string | true | none | ProxyService type. |
Enumerated Values#
| Property | Value |
|---|---|
| service | Echo |
| service | Scraper |
Example#
{ "data": "string", "service": "Echo"}
ProxyResult#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| json | any | true | none | The response from the proxied service as a Json object. |
| value | string | true | none | The response from the proxied service as a String. |
Example#
{ "json": null, "value": "string"}
Pubkey#
A hexadecimal representation of a 256-bit public key.
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | A hexadecimal representation of a 256-bit public key. |
Example#
"74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f"
PublicLootBox#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| average_rhythm_score | number(double) | true | none | Average score of emoji IDs in loot box. |
| created_at | string(date-time) | true | none | None. |
| id | string(uuid) | true | none | None. |
| lootbox_type | object | false | none | For Admin: Expanded Lootbox Type. |
| ยป config | object | true | none | The loot box type's configuration parameters. |
| ยปยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type. |
| ยปยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box. |
| ยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop. |
| ยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop. |
| ยปยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยป max_length | integer(int64) | true | none | Maximum yat length. |
| ยปยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box. |
| ยปยป min_length | integer(int64) | true | none | Minimum yat length. |
| ยปยป size | integer(int64) | true | none | The number of yats in the loot box. |
| ยปยป weights | [object] | true | none | A set of probability weightings for chance-based drops. |
| ยปยปยป ipr | number(double) | true | none | The inverse probability ratio. |
| ยปยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยป created_at | string(date-time) | true | none | The timestamp for when this loot box type was created. |
| ยป description | string | true | none | A more detailed description of the loot box type. |
| ยป id | string(uuid) | true | none | The loot box type id. |
| ยป name | string | true | none | The name of this loot box type. |
| lootbox_type_id | string(uuid) | false | none | For Admin: The type of loot box, if applicable. |
| owner | object | false | none | For Admin: Expanded owner of a lootbox. |
| ยป alternate_id | string | false | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deactivated_at | string(date-time) | false | none | None. |
| ยป email | string | false | none | None. |
| ยป email_verified_at | string(date-time) | false | none | None. |
| ยป first_name | string | false | none | None. |
| ยป free_limit | integer(int32) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป last_name | string | false | none | None. |
| ยป pubkeys | [string] | true | none | None. |
| ยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยป role | string | true | none | None. |
| ยป source | string | false | none | None. |
| ยป two_factor_auth | [string] | false | none | None. |
| ยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยป two_factor_should_prompt | boolean | true | none | None. |
| ยป updated_at | string(date-time) | true | none | None. |
| owner_id | string(uuid) | false | none | Loot box owner_id, required for Owned and Used loot boxes. |
| prices | [integer] | true | none | The prices of the yats in the box, in cents. |
| scores | [integer] | true | none | The rhythm scores of the yats in the box. |
| status | string | true | none | Status loot box will be created in. |
| total_value | number(double) | true | none | Total value of EmojiIDs in the Loot Box. |
| yats | [string] | true | none | Loot box yats. |
Enumerated Values#
| Property | Value |
|---|---|
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| status | Draft |
| status | Available |
| status | Owned |
| status | Used |
Example#
{ "average_rhythm_score": 0, "created_at": "2019-08-24T14:15:22Z", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "lootbox_type": { "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "created_at": "2019-08-24T14:15:22Z", "description": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "lootbox_type_id": "fe5ea2ec-76e0-40b9-840c-a44f2c793043", "owner": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }, "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05", "prices": [ 0 ], "scores": [ 0 ], "status": "Draft", "total_value": 0, "yats": [ "๐ฑ๐๐๐ด๐ต" ]}
PublicLootBoxType#
HTTP schema for an existing LootBoxType record
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| config | object | true | none | The loot box type's configuration parameters. |
| ยป guarantees | [object] | true | none | A set of guaranteed drops in this loot box type. |
| ยปยป count | integer(int64) | true | none | The number of guaranteed drops of this type in the loot box. |
| ยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for guaranteed drop. |
| ยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for guaranteed drop. |
| ยป max_base_score | integer(int64) | true | none | The upper bound (inclusive) rhythm score for standard yats in the loot box. |
| ยป max_length | integer(int64) | true | none | Maximum yat length. |
| ยป min_base_score | integer(int64) | true | none | The lower bound (inclusive) rhythm score for standard yats in the loot box. |
| ยป min_length | integer(int64) | true | none | Minimum yat length. |
| ยป size | integer(int64) | true | none | The number of yats in the loot box. |
| ยป weights | [object] | true | none | A set of probability weightings for chance-based drops. |
| ยปยป ipr | number(double) | true | none | The inverse probability ratio. |
| ยปยป max_score | integer(int64) | true | none | The highest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| ยปยป min_score | integer(int64) | true | none | The lowest (inclusive) rhythm score range for inclusion when the probability spec hits. |
| created_at | string(date-time) | true | none | The timestamp for when this loot box type was created. |
| description | string | true | none | A more detailed description of the loot box type. |
| id | string(uuid) | true | none | The loot box type id. |
| name | string | true | none | The name of this loot box type. |
Example#
{ "config": { "guarantees": [ { "count": 0, "max_score": 0, "min_score": 0 } ], "max_base_score": 0, "max_length": 0, "min_base_score": 0, "min_length": 0, "size": 0, "weights": [ { "ipr": 0, "max_score": 0, "min_score": 0 } ] }, "created_at": "2019-08-24T14:15:22Z", "description": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string"}
RandomResult#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| result | [object] | true | none | Random Emoji IDs. |
| ยป availability | string | true | none | The availability state of this emoji. |
| ยป available | boolean | true | none | Whether the Emoji ID is available for purchase. |
| ยป copy | any | false | none | EmojiID copy text. |
| ยป emoji_id | string | true | none | Emoji ID in canonical form. |
| ยป flippable_emoji | [boolean] | true | none | Which emoji are flippable. |
| ยป generation | integer(int32) | false | none | The generation of the Yat, if it has been purchased. |
| ยป length | integer(int64) | true | none | Canonical EmojiID length in emojis. |
| ยป minted | boolean | true | none | If this Emoji is minted. |
| ยป origin | string | false | none | The origin of the Yat if it was from a Prism Case. |
| ยป price | integer(int32) | false | none | Pricing in US cents, e. |
| ยป rhythm_score | integer(int64) | true | none | EmojiID rhythm score. |
| ยป shape | object | true | none | None. |
| ยปยป pattern | any | false | none | None. |
| ยปยป shape | string | false | none | None. |
| ยป short_names | [string] | true | none | Emoji key words. |
| ยป stats | [object] | true | none | Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here. |
| ยปยป description | string | true | none | None. |
| ยปยป finish_date | string(date-time) | true | none | None. |
| ยปยป key | string | true | none | Counter object. |
| ยปยป metric | string | true | none | Counter type. |
| ยปยป start_date | string(date-time) | true | none | None. |
| ยปยป value | integer(int64) | true | none | Counter value. |
Enumerated Values#
| Property | Value |
|---|---|
| availability | Available |
| availability | Taken |
| availability | InCart |
| availability | ComingSoon |
| availability | NoPrice |
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Example#
{ "result": [ { "availability": "Available", "available": true, "copy": null, "emoji_id": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "length": 0, "minted": true, "origin": "string", "price": 0, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "short_names": [ "string" ], "stats": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ] } ]}
RandomYatActivateBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| nonce | string | true | none | Schnorr signature nonce as a hex string. |
| pubkey | string | true | none | Public key to authorize usage of a code. |
| signature | string | true | none | Schnorr signature as a hex with alternate_id as a challenge. |
| tracking_data | any | false | none | Custom tracking data to be associated with a purchase. |
Example#
{ "nonce": "string", "pubkey": "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f", "signature": "string", "tracking_data": null}
RecentlyPurchasedResult#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| result | [object] | true | none | Recently purchased emoji. |
| ยป availability | string | true | none | The availability state of this emoji. |
| ยป available | boolean | true | none | Whether the Emoji ID is available for purchase. |
| ยป copy | any | false | none | EmojiID copy text. |
| ยป emoji_id | string | true | none | Emoji ID in canonical form. |
| ยป flippable_emoji | [boolean] | true | none | Which emoji are flippable. |
| ยป generation | integer(int32) | false | none | The generation of the Yat, if it has been purchased. |
| ยป length | integer(int64) | true | none | Canonical EmojiID length in emojis. |
| ยป minted | boolean | true | none | If this Emoji is minted. |
| ยป origin | string | false | none | The origin of the Yat if it was from a Prism Case. |
| ยป price | integer(int32) | false | none | Pricing in US cents, e. |
| ยป rhythm_score | integer(int64) | true | none | EmojiID rhythm score. |
| ยป shape | object | true | none | None. |
| ยปยป pattern | any | false | none | None. |
| ยปยป shape | string | false | none | None. |
| ยป short_names | [string] | true | none | Emoji key words. |
| ยป stats | [object] | true | none | Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here. |
| ยปยป description | string | true | none | None. |
| ยปยป finish_date | string(date-time) | true | none | None. |
| ยปยป key | string | true | none | Counter object. |
| ยปยป metric | string | true | none | Counter type. |
| ยปยป start_date | string(date-time) | true | none | None. |
| ยปยป value | integer(int64) | true | none | Counter value. |
Enumerated Values#
| Property | Value |
|---|---|
| availability | Available |
| availability | Taken |
| availability | InCart |
| availability | ComingSoon |
| availability | NoPrice |
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Example#
{ "result": [ { "availability": "Available", "available": true, "copy": null, "emoji_id": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "length": 0, "minted": true, "origin": "string", "price": 0, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "short_names": [ "string" ], "stats": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ] } ]}
RefreshRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| refresh_token | string | true | none | Refresh token obtained from login request. |
Example#
{ "refresh_token": "string"}
RegisterUserParameters#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activate | boolean | false | none | Optional: Whether to force activation during creation (requires UserActivate scope). |
| activation_source | string | false | none | Optional: Source of activation (requires UserActivate scope). |
| alternate_id | string | false | none | Alternate identifier. |
| string | false | none | Email address. | |
| first_name | string | false | none | Optional: first name. |
| g_recaptcha_response | string | false | none | Response from google Recaptcha. |
| last_name | string | false | none | Optional: last name. |
| partner_conversion_id | string | false | none | Parameter to pass everflow click id. |
| password | string | false | none | Optional: password. |
| source | string | false | none | Required when registering with alternate_id, source for non custodial user. |
Example#
{ "activate": true, "activation_source": "string", "alternate_id": "string", "email": "string", "first_name": "string", "g_recaptcha_response": "string", "last_name": "string", "partner_conversion_id": "string", "password": "string", "source": "string"}
RhythmResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| rhythm | integer(int64) | true | none | The yat rhythm score, a number between 1 (least prestigious) and 100 (most prestigious). |
Example#
{ "rhythm": 0}
SearchResult#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alternates | [object] | true | none | Alternative Emoji IDs. |
| ยป availability | string | true | none | The availability state of this emoji. |
| ยป available | boolean | true | none | Whether the Emoji ID is available for purchase. |
| ยป copy | any | false | none | EmojiID copy text. |
| ยป emoji_id | string | true | none | Emoji ID in canonical form. |
| ยป flippable_emoji | [boolean] | true | none | Which emoji are flippable. |
| ยป generation | integer(int32) | false | none | The generation of the Yat, if it has been purchased. |
| ยป length | integer(int64) | true | none | Canonical EmojiID length in emojis. |
| ยป minted | boolean | true | none | If this Emoji is minted. |
| ยป origin | string | false | none | The origin of the Yat if it was from a Prism Case. |
| ยป price | integer(int32) | false | none | Pricing in US cents, e. |
| ยป rhythm_score | integer(int64) | true | none | EmojiID rhythm score. |
| ยป shape | object | true | none | None. |
| ยปยป pattern | any | false | none | None. |
| ยปยป shape | string | false | none | None. |
| ยป short_names | [string] | true | none | Emoji key words. |
| ยป stats | [object] | true | none | Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here. |
| ยปยป description | string | true | none | None. |
| ยปยป finish_date | string(date-time) | true | none | None. |
| ยปยป key | string | true | none | Counter object. |
| ยปยป metric | string | true | none | Counter type. |
| ยปยป start_date | string(date-time) | true | none | None. |
| ยปยป value | integer(int64) | true | none | Counter value. |
| result | object | true | none | The specific Emoji ID that the user requests. |
| ยป availability | string | true | none | The availability state of this emoji. |
| ยป available | boolean | true | none | Whether the Emoji ID is available for purchase. |
| ยป copy | any | false | none | EmojiID copy text. |
| ยป emoji_id | string | true | none | Emoji ID in canonical form. |
| ยป flippable_emoji | [boolean] | true | none | Which emoji are flippable. |
| ยป generation | integer(int32) | false | none | The generation of the Yat, if it has been purchased. |
| ยป length | integer(int64) | true | none | Canonical EmojiID length in emojis. |
| ยป minted | boolean | true | none | If this Emoji is minted. |
| ยป origin | string | false | none | The origin of the Yat if it was from a Prism Case. |
| ยป price | integer(int32) | false | none | Pricing in US cents, e. |
| ยป rhythm_score | integer(int64) | true | none | EmojiID rhythm score. |
| ยป shape | object | true | none | None. |
| ยปยป pattern | any | false | none | None. |
| ยปยป shape | string | false | none | None. |
| ยป short_names | [string] | true | none | Emoji key words. |
| ยป stats | [object] | true | none | Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here. |
| ยปยป description | string | true | none | None. |
| ยปยป finish_date | string(date-time) | true | none | None. |
| ยปยป key | string | true | none | Counter object. |
| ยปยป metric | string | true | none | Counter type. |
| ยปยป start_date | string(date-time) | true | none | None. |
| ยปยป value | integer(int64) | true | none | Counter value. |
Enumerated Values#
| Property | Value |
|---|---|
| availability | Available |
| availability | Taken |
| availability | InCart |
| availability | ComingSoon |
| availability | NoPrice |
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
| availability | Available |
| availability | Taken |
| availability | InCart |
| availability | ComingSoon |
| availability | NoPrice |
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Example#
{ "alternates": [ { "availability": "Available", "available": true, "copy": null, "emoji_id": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "length": 0, "minted": true, "origin": "string", "price": 0, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "short_names": [ "string" ], "stats": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ] } ], "result": { "availability": "Available", "available": true, "copy": null, "emoji_id": "๐ฑ๐๐๐ด๐ต", "flippable_emoji": [ true ], "generation": 0, "length": 0, "minted": true, "origin": "string", "price": 0, "rhythm_score": 0, "shape": { "pattern": null, "shape": "Repeaters" }, "short_names": [ "string" ], "stats": [ { "description": "string", "finish_date": "2019-08-24T14:15:22Z", "key": "string", "metric": "string", "start_date": "2019-08-24T14:15:22Z", "value": 0 } ] }}
ShapeMatch#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| pattern | any | false | none | None. |
| shape | string | false | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| shape | Repeaters |
| shape | Eye Heart |
| shape | Bookends |
| shape | Adoptables |
Example#
{ "pattern": null, "shape": "Repeaters"}
SignatureRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| account | string | true | none | None. |
| expiry | integer(int64) | false | none | None. |
Example#
{ "account": "string", "expiry": 0}
SignatureResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| account | string | true | none | None. |
| expiry | integer(int64) | true | none | None. |
| signature | string | true | none | None. |
| token | string | true | none | None. |
Example#
{ "account": "string", "expiry": 0, "signature": "string", "token": "string"}
StoreJsonBody#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | any | true | none | Data value allows to store any Json value, limited by 250Kb. |
| linked_tags | [any] | false | none | Link tag items as part of the transaction All previously linked tags not present in new request will be deleted. |
| ยป data | string | true | none | Category data in text format. |
| ยป tag | string | true | none | Category ID as a hex number. |
Example#
{ "data": null, "linked_tags": [ { "data": "127.0.0.1", "tag": "0x4101" } ]}
SuccessResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | true | none | None. |
Example#
{ "message": "string"}
SuccessResponse2FA#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | true | none | None. |
| phone_last_digits | string | false | none | None. |
Example#
{ "message": "string", "phone_last_digits": "string"}
TokenResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| access_token | string | true | none | Access token. |
| has_password | boolean | true | none | Has a password set. |
| refresh_token | string | true | none | Refresh token, only required for 2FA (???). |
| requires_2fa | string | false | none | Whether has 2FA enabled or not. |
Enumerated Values#
| Property | Value |
|---|---|
| requires_2fa | GoogleAuthenticator |
| requires_2fa | SMS |
Example#
{ "access_token": "string", "has_password": true, "refresh_token": "string", "requires_2fa": "GoogleAuthenticator"}
TransferRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| clear_on_transfer | boolean | true | none | Clear emoji data when emoji transferred to destination. |
| eid | string | true | none | None. |
| string | true | none | Transfer to specified email, would register new user account if not existent. | |
| force_transfer | boolean | true | none | Admin can force transfer, for regular user it has no effect. |
| message | string | false | none | Message displayed to recipient and included in the invitiation email. |
Example#
{ "clear_on_transfer": true, "eid": "๐ฑ๐๐๐ด๐ต", "email": "string", "force_transfer": true, "message": "string"}
UpdateAccountResponse#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| everflow_transaction_id | string | false | none | transaction id indicating if the user signed up from a partner via everflow redirect. |
| features | [object] | false | none | Enabled features for the user. |
| ยป code | string | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| global_scopes | [string] | false | none | A list of fine-grained permissions the user may perform. |
| organization_roles | object | false | none | The role this user has in each organisation. |
| ยป additionalProperties | string | false | none | None. |
| organization_scopes | object | false | none | The scopes that are granted to this user for each organisation. |
| ยป additionalProperties | [string] | false | none | None. |
| pending_transfers | [string] | false | none | List of transfers pending acceptance on current user side. |
| pubkeys | [string] | false | none | A list of this user's public keys. |
| role | string | false | none | The role assigned to this user. |
| token_response | object | false | none | None. |
| ยป access_token | string | true | none | Access token. |
| ยป has_password | boolean | true | none | Has a password set. |
| ยป refresh_token | string | true | none | Refresh token, only required for 2FA (???). |
| ยป requires_2fa | string | false | none | Whether has 2FA enabled or not. |
| user | object | false | none | The current user's details. |
| ยป alternate_id | string | false | none | None. |
| ยป created_at | string(date-time) | true | none | None. |
| ยป deactivated_at | string(date-time) | false | none | None. |
| ยป email | string | false | none | None. |
| ยป email_verified_at | string(date-time) | false | none | None. |
| ยป first_name | string | false | none | None. |
| ยป free_limit | integer(int32) | true | none | None. |
| ยป id | string(uuid) | true | none | None. |
| ยป last_name | string | false | none | None. |
| ยป pubkeys | [string] | true | none | None. |
| ยป remaining_free_emoji | integer(int32) | true | none | None. |
| ยป role | string | true | none | None. |
| ยป source | string | false | none | None. |
| ยป two_factor_auth | [string] | false | none | None. |
| ยป two_factor_last_prompted_at | string(date-time) | false | none | None. |
| ยป two_factor_should_prompt | boolean | true | none | None. |
| ยป updated_at | string(date-time) | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| additionalProperties | Admin |
| additionalProperties | OrgController |
| additionalProperties | OrgMember |
| additionalProperties | OrgOwner |
| additionalProperties | Bot |
| additionalProperties | Super |
| additionalProperties | User |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
| requires_2fa | GoogleAuthenticator |
| requires_2fa | SMS |
| role | Admin |
| role | OrgController |
| role | OrgMember |
| role | OrgOwner |
| role | Bot |
| role | Super |
| role | User |
Example#
{ "everflow_transaction_id": "string", "features": [ { "code": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } ], "global_scopes": [ "adminCart:update" ], "organization_roles": { "property1": "Admin", "property2": "Admin" }, "organization_scopes": { "property1": [ "adminCart:update" ], "property2": [ "adminCart:update" ] }, "pending_transfers": [ "๐ฑ๐๐๐ด๐ต" ], "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "role": "Admin", "token_response": { "access_token": "string", "has_password": true, "refresh_token": "string", "requires_2fa": "GoogleAuthenticator" }, "user": { "alternate_id": "string", "created_at": "2019-08-24T14:15:22Z", "deactivated_at": "2019-08-24T14:15:22Z", "email": "string", "email_verified_at": "2019-08-24T14:15:22Z", "first_name": "string", "free_limit": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "last_name": "string", "pubkeys": [ "74dfa32b2c227ca2aa9ce3922a735669835443c1c36596795de1f48dbfaf7b2f" ], "remaining_free_emoji": 0, "role": "Admin", "source": "string", "two_factor_auth": [ "GoogleAuthenticator" ], "two_factor_last_prompted_at": "2019-08-24T14:15:22Z", "two_factor_should_prompt": true, "updated_at": "2019-08-24T14:15:22Z" }}
UpdateOrganizationBranding#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| currencies | [string] | true | none | None. |
| logo | string | false | none | None. |
| logo_small | string | false | none | None. |
| logo_thumbnail | string | false | none | None. |
| requires_email | boolean | false | none | None. |
| return_link | string | true | none | None. |
Example#
{ "currencies": [ "string" ], "logo": "string", "logo_small": "string", "logo_thumbnail": "string", "requires_email": true, "return_link": "string"}
UpdateUserParameters#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| current_password | string | false | none | Optional: Current password, must be provided if one exists. |
| string | false | none | Optional: Email. | |
| first_name | string | false | none | Optional: First name. |
| last_name | string | false | none | Optional: Last name. |
| password | string | false | none | Optional: User password. |
Example#
{ "current_password": "string", "email": "string", "first_name": "string", "last_name": "string", "password": "string"}
UserInterest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| created_at | string(date-time) | true | none | None. |
| emoji_id | string | true | none | None. |
| id | string(uuid) | true | none | None. |
| updated_at | string(date-time) | true | none | None. |
| user_id | string(uuid) | true | none | None. |
Example#
{ "created_at": "2019-08-24T14:15:22Z", "emoji_id": "๐ฑ๐๐๐ด๐ต", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "updated_at": "2019-08-24T14:15:22Z", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}
Wallet#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| eth_address | string | true | none | None. |
| user_id | string(uuid) | true | none | None. |
Example#
{ "eth_address": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}
WalletSyncRequest#
Properties#
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| signature | string | true | none | None. |
| source | string | true | none | None. |
Enumerated Values#
| Property | Value |
|---|---|
| source | Mint |
| source | Dashboard |
Example#
{ "signature": "string", "source": "Mint"}