NAV
JSON Shell Browser Node.js Python Ruby PHP Go C# Java

Moesif API Reference

Moesif is an API analytics and monetization service to build and grow better API products. With Moesif, you can quickly get started with API observability, API monetization and usage-based billing.

With Moesif, you cam This reference is for v1 of the Moesif APIs. For an overview on the Moesif platform, see the developer docs or implementation guides

There are two APIs:

Name Host Authentication
Collector API api.moesif.net Retrieve your Collector Application Id by logging into Moesif and going to API keys from bottom left menu. Place in the request X-Moesif-Application-Id header. More info
Management API api.moesif.com Generate a Management API key by logging into Moesif and going to API keys from bottom left menu. Add it as a Bearer token to the request Authorization header. More info

API definitions

The Collector API enables you to log your raw event data to Moesif at high volume such as API calls and user profiles. It's a write-only, high-volume data collection network and is also used by the Moesif server integrations and plugins.

The Management API enables you to query and manage data in your Moesif account such as to embed charts in customer-facing applications.

Overview

Data Model

The Moesif data model includes two types of events (API Calls and Custom Actions) and three type of entities (Users, Companies, and Subscriptions). A full diagram is below.

Moesif Data Model

For more info, view docs on Moesif data structure.

Filtering

Query Params

Some endpoints require a date range for data to look at. This is done via the from and the to query parameters. There is also an optional time_zone query parameter if you want the calendar dates aligned to your local time zone. Time zone is UTC by default and must be a TZ Database Name such as America/Los_Angeles

Relative dates support the following units:

symbol unit
s seconds
m minutes
h hours
d days
w weeks
M months
now current UTC time

Dates can optionally be prepended with a - or a +

Some examples:

From Date To Date Description
-24h now from 24 hours ago to now
-1d now from 1 day ago to now
-1w now from 1 week ago to now
-2w -1w frm 2 weeks ago to 1 week ago
-1M 1M from 1 month ago to 1 month in the future

Elasticsearch DSL

The Moesif Search APIs supports majority of the Elasticsearch/Opensearch Search DSL, which makes it super flexible to generate the report you're looking for. Only the DSL for search is supported. Other APIs outside of search are not supported. You can generate a query quickly within the Moesif UI by clicking the orange "Embed" button on any report. Then select "Search API". The generated CURL command will be for the exact report you are looking at. If you change filters or other criteria, you can go back and click "Embed" again to see how it changes. For help building a query for your business requirements, contact us.

Example: Getting most recent 500 errors

If you wanted to get the most recent API errors, you can filter by API calls with response status 500 and sort by request time in descending order.

POST https://api.moesif.com/search/~/search/events?from=-1d&to=now

Example Request
{
  "post_filter": {
    "bool": {
      "should": {
        "term": {
          "response.status": "500"
        }
      }
    }
  },
  "size": 50,
  "sort": [
    {
      "request.time": "desc"
    }
  ]
}
curl -XPOST \
    -d '{"post_filter":{"bool":{"should":{"term":{"response.status":"500"}}}},"size":50,"sort":[{"request.time":"desc"}]}' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    "https://api.moesif.com/search/~/search/events?from=-1d&to=now"

Example: Getting API usage per customer

Another popular use case is to get the monthly API usage for a specific customer so you can display current usage vs. plan quota in your customer facing portal. This can be done easily by looking at past month and getting a count for the user_id

POST https://api.moesif.com/search/~/search/count?from=-1M&to=now

Example Request
{
  "post_filter": {
    "bool": {
      "should": {
        "term": {
          "user_id.raw": "123456"
        }
      }
    }
  }
}
curl -XPOST \
    -d '{"post_filter":{"bool":{"should":{"term":{"user_id.raw":"123456"}}}}}' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    "https://api.moesif.com/search/~/count/events?from=-1M&to=now"

Pagination

Sorting List of Items

To rapidly generate your query, it's strongly recommended using the query builder within the Moesif UI. This can be found by clicking orange "Embed" button and selecting "Search API". Set up your sort field and click the next page to see an example for pagination.

Moesif's search APIs (such as to get list of events of users) use a combination of keyset and seek pagination to ensure APIs are performant for very large offset values. For an overview of different types, see this blog post on pagination.

For pagination, the search API allows for three request body fields:

For the request, we need to define the last item seen in the ordered list. This can be obtained by looking at the previous response's hits.hits.sort field.

Sorting items by request time For example, let's say we want to return the most recent events in descending order in batches of 100 items. For each page after the first, we should set the last event already seen as the request.time.

POST https://api.moesif.com/search/~/search/events?from=-7d&to=now

Sorting items by request time
{
    "size": 10,
    "search_after": [
        1694190464456
    ],
    "sort": [
        {
            "request.time": {
                "order": "desc",
                "unmapped_type": "string"
            }
        }
    ]
}

Sorting items by low cardinality key

For lower cardinality keys (likes response.status), many events may match the same status code. In order to have a stable sort, you must use a high cardinality key as well such that it's a sort on a compound key. Below is an example using both the response.status as well as the _id field (which is guaranteed to be unique)

POST https://api.moesif.com/search/~/search/events?from=-7d&to=now

Sorting items by low cardinality key
{
    "size": 50,
    "search_after": [
        "12345",
        "AYpjf3Gow2BIxAOLPgx4"
    ],
    "sort": [
        {
            "user_id.raw": {
                "order": "desc",
                "unmapped_type": "string"
            }
        },
        {
            "_id": "desc"
        }
    ]
}

Sorting Metric Terms

To rapidly generate your query, t's strongly recommended using the query builder within the Moesif UI. This can be found by clicking orange "Embed" button and selecting "Search API".

Metrics APIs (such as to get a time series or segmentation report) do not support pagination as the response is already aggregated and contains the required dataset. However, Moesif does support sorting by "top X" and "Bottom X" for when a "group by" is present. This is important to define whether you want the top terms or bottom terms and what is the metric to order the group by terms.

Sorting group by terms

In the below example, we have a segmentation report that gets the total event count for the top 10 companies. The query has a "group by" on company_id.raw. The group by will return the top 10 terms sorted by the company's event count (weight) in descending order (desc).

POST https://api.moesif.com/search/~/search/events?from=-7d&to=now

Sorting group by term
{
    "aggs": {
        "seg": {
            "filter": {
                "match_all": {}
            },
            "aggs": {
                "company_id.raw": {
                    "terms": {
                        "field": "company_id.raw",
                        "size": "20",
                        "min_doc_count": 1,
                        "order": {
                            "weight|sum": "desc"
                        },
                        "missing": "(none)"
                    },
                    "aggs": {
                        "weight|sum": {
                            "sum": {
                                "field": "weight",
                                "missing": 1
                            }
                        }
                    }
                },
                "weight|sum": {
                    "sum": {
                        "field": "weight",
                        "missing": 1
                    }
                }
            }
        }
    },
    "size": 0
}

Sorting by a different metric

The metric returned and the sort order can be different. In the below example, the metric returned is 90th percentile latency, but we still want to sort by the top 10 APIs by volume so we ignore the small volume APIs.

POST https://api.moesif.com/search/~/search/events?from=-7d&to=now

Sorting by a different metric
{
    "aggs": {
        "seg": {
            "filter": {
                "match_all": {}
            },
            "aggs": {
                "request.route.raw": {
                    "terms": {
                        "field": "request.route.raw",
                        "size": "10",
                        "min_doc_count": 1,
                        "order": {
                            "duration_ms|percentiles(90).90": "desc"
                        },
                        "missing": "(none)"
                    },
                    "aggs": {
                        "duration_ms|percentiles(90)": {
                            "percentiles": {
                                "field": "duration_ms",
                                "percents": [
                                    90
                                ]
                            }
                        }
                    }
                },
                "duration_ms|percentiles(90)": {
                    "percentiles": {
                        "field": "duration_ms",
                        "percents": [
                            90
                        ]
                    }
                }
            }
        }
    },
    "size": 0
}

Idempotency

Moesif Collector API support idempotent requests. This ensures Moesif does not create duplicate events even if the same event was sent twice to the Moesif Collector API. For users and companies APIs, this is automatic. For events and actions APIs, ensure you set the transaction_id for each event to a random UUID. This should be a 36 character UUID such as 123e4567-e89b-12d3-a456-426614174000. Moesif uses the transaction_id for ensuring duplicate events are not created. Setting the transaction_id is strongly recommended if you can replay processing from a pipeline like logstash.

Deduplication for Batches

Because each event has it's own transaction_id, Moesif will still deduplicate even if the batches are different. For example, let's say you send the following batches:

  1. Send a batch of two events containing transaction_id's A, B
  2. Send a batch of one event containing transaction_id C
  3. Send a batch of three events containing transaction_id's A, C, D

At the end, Moesif will only contain 4 events (A, B, C, D)

Request Format

For POST, PUT, and PATCH requests, the request body should be JSON. The Content-Type header should be set to application/json

Response Format

The response body format is always JSON. Successful operations are seen via 2xx status code. Successful creation of new objects will be seen via 201. 4xx status implies client error.

The REST API JSON payload uses underscore format (i.e some_key). Many of the API libs may use camelCase, PascalCase, or other as their model entities. Please select the respective language tab.

CORS

CORS is enabled on this API. Access-Control-Allow-Origin is set to *

Errors

Error Code Meaning
400 Bad Request -- Your request has an incorrect parameter
401 Unauthorized -- Your X-Moesif-Application-Id or Authorization header is incorrect or missing required scopes
402 Payment Required -- Your subscription is not active or has been cancelled
404 Not Found -- The specified endpoint could not be found
405 Method Not Allowed -- You tried to access a resource with an invalid HTTP method
406 Not Acceptable -- You requested a format that is not JSON format, Moesif's API supports JSON
410 Gone -- The resource requested has been removed from our servers
429 Too Many Requests -- You are hitting a rate limit such as too many queries at same time.
500 Internal Server Error -- We had a problem with our server. Please contact us
502 Bad Gateway -- A transient error when no server is available to handle your request, retry again or contact us if problem persists.
503 Service Unavailable -- A transient error when no server is available to handle your request, retry again or contact us if problem persists.

Limits and Restrictions

Moesif has certain limits to ensure performance and stability for all Moesif customers. The Management APIs are rate limited to protect service degradation. Moesif also has limits on event size to ensure performance of your account.

Moesif does not rate limit data ingestion via the collector APIs. However, you can still be throttled due to security reasons to protect Moesif infrastructure. This may happen when unusual behavior is detected such as exceeding your quota by a wide margin

Maximum Event Size

Collected events have size limits to ensure performance and stability of the Moesif platform for customers.

Limit Value
Maximum size of single event 1MB
Maximum size of a batch of events 50MB
Truncation size of request.body or response.body 450KB

The maximum size of an event (one API call or custom action) is 1MB, which is a hard limit due to how the Moesif platform was architected for scale. Majority of APIs we see have an average event size of 1Kb to 5Kb so it would be unusual to reach this limit. With that said, there are a couple of things you can try:

  1. Don't log non API traffic using skip functionality (i.e. HTML, pictures, etc). Moesif is not designed for monitoring access to large files nor provides much usefulness.
  2. Remove large keys from payload using mask data. This can be helpful if you have a JSON key that's large but not valuable.

If you're sending a batch of events to the batch API, the maximum batch size is 50MB regardless if compression is used. For batches of events greater than 50MB, you should break up the batch into smaller batches.

Moesif will still try to log events over 1MB by truncating the request or response body to 450Kb and base64 encoded it. The logged body won't be valid JSON but at least the event is logged for later inspection. A warning is also displayed in the Moesif app so you can identify when this is occurring. The partial body will not be analyzed by Moesif's body analytics feature so filters may not match on body fields, etc.

Management API Rate Limits

To ensure performance of search queries, the Management API has a rate limit of 500 queries/minute, but can burst higher based on your history and pattern. The Management API will return 429 Too Many Requests once you hit this limit. This operates on a fixed calendar minute period. Moesif reserves the right to modify these limits to protect the reliability of the Moesif Platform.

The search APIs are intended for interactive workflows such as logging into Moesif UI or to integrate Moesif into your applications. If you need to transfer large amounts of data to cloud object storage (like Azure Storage) or to your data warehouse, you should use the bulk export APIs and not the search API.

Moesif does not rate limit data ingestion via the collector APIs. However, you can still be throttled due to security reasons to protect Moesif infrastructure. This may happen when unusual behavior is detected such as exceeding your quota by a wide margin

Late Events

Moesif server integrations stream events to the collector API in real-time. If you build a custom integration, you should also send events in real-time.

However, we understand you may have special circumstances that cause events to be sent later than expected. By default, Moesif can process events that are up to 30 days in the past. By default, events older than 30 days are rejected by the collector API. If you need an exception to backfill more historical data, please contact us so we can enable your account for backfill.

While Moesif will process the events, events that are more than 5 minutes old are considered "late events". Certain workflows with strict deadlines like alerting and billing may be impacted. If you're using a native Moesif server integrations, this shouldn't be an issue as they stream events to Moesif in real-time within milliseconds. If you have an ingestion delay in the minutes it likely implies something wrong with your server integration. Server clock can be another issue if incorrectly set. We do track ingestion delays internally, so we'll reach out if we see such issues happening on your account.

API Libs

THese are low-level libraries to access the Moesif Collector API directly. For logging API calls at scale, most customers should integrate with one of Moesif's API monitoring agents which instrument your API automatically and handle batching. Likewise, Moesif has client integrations for tracking users and their actions in your UI.

How to Install

Pick a language at the bottom left


Source Code:

https://github.com/moesif/moesifapi-java
// Add the dependency

<dependency>
    <groupId>com.moesif.api</groupId>
    <artifactId>moesifapi</artifactId>
    <version>1.6.9</version>
</dependency>
Source Code:

https://github.com/moesif/moesifapi-nodejs


Package:

https://www.npmjs.com/package/moesifapi
// To Install Moesif Lib, run in your terminal

npm install --save moesifapi
Source Code:

https://github.com/moesif/moesifapi-python


Package:

https://pypi.python.org/pypi/moesifapi
# To Install Moesif Lib, run in your terminal

pip install moesifapi
Source Code:

https://github.com/moesif/moesifapi-ruby


Package:

https://rubygems.org/gems/moesif_api
# To Install Moesif Lib, run in your terminal

gem install moesif_api
Source Code:

https://github.com/moesif/moesifapi-csharp


Package:

https://www.nuget.org/packages/Moesif.Api/
// Install the Nuget Package via Package Manager Console:

Install-Package Moesif.Api
Source Code:

https://github.com/Moesif/moesifapi-go

go get github.com/moesif/moesifapi-go;
Source Code:

https://github.com/Moesif/moesifapi-php
// Install via Composer

composer require moesif/moesifapi-php
Install via NPM:
var moesif = require('moesif-browser-js');

moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
  // add other option here.
});
Install via CDN
<script src="//unpkg.com/moesif-browser-js@^1/moesif.min.js"></script>
<script type="text/javascript">
moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
});
</script>

Select your language on the right:

The SDKs are open-source and available on GitHub.

Collector API v1

The Collector API enables you to log data to Moesif at high volumes. This is also what the Moesif server integrations use. For more info, check out an overview of our analytics infrastructure.

Base URL (Public) Base URL (When using Secure Proxy)
api.moesif.net/v1 localhost:9500/collector/v1

If you're using the Moesif secure proxy for client-side encryption, the base URL is http://localhost:9500/collector/v1 assuming it's running on port 9500. See accessing Collector API

Terms of service

Moesif's official SDKs and plugins only use HTTPS, but the API does support HTTP for very specific applications like legacy embedded devices (uncommon). It's strongly recommended to ensure all communication is HTTPS.

Authentication

Authentication is handled by adding the HTTP header X-Moesif-Application-Id to all requests. Moesif recommends using the same Application Id for all integrations within the same application environment (i.e. product, staging, etc) so your analytics data is unified.

X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID

API Calls

Log an API Call

POST https://api.moesif.net/v1/events

Log an API call to Moesif. API Calls in Moesif represent a full API operation or span (in OTel terminology). Each API call is a structured log containing the API request, the API response, start and end time, context, and any custom event metadata.

POST https://api.moesif.net/v1/events

Example Request
{
    "request": {
        "time": "2024-10-30T04:45:42.914",
        "uri": "https://api.acmeinc.com/items/12345/reviews/",
        "verb": "POST",
        "api_version": "1.1.0",
        "ip_address": "61.48.220.123",
        "headers": {
            "Host": "api.acmeinc.com",
            "Accept": "*/*",
            "Connection": "Keep-Alive",
            "Content-Type": "application/json",
            "Content-Length": "126",
            "Accept-Encoding": "gzip"
        },
        "body": {
            "items": [
                {
                    "direction_type": 1,
                    "item_id": "hello",
                    "liked": false
                },
                {
                    "direction_type": 2,
                    "item_id": "world",
                    "liked": true
                }
            ]
        },
        "transfer_encoding": ""
    },
    "response": {
        "time": "2024-10-30T04:45:42.914",
        "status": 500,
        "headers": {
            "Vary": "Accept-Encoding",
            "Pragma": "no-cache",
            "Expires": "-1",
            "Content-Type": "application/json; charset=utf-8",
            "Cache-Control": "no-cache"
        },
        "body": {
            "Error": "InvalidArgumentException",
            "Message": "Missing field location"
        },
        "transfer_encoding": ""
    },
    "user_id": "12345",
    "company_id": "67890",
    "transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257",
    "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
    "span": {
        "id": "00f067aa0ba902b7",
        "parent_span_id": "b3c3f3c3f3c3f3c3"
    },
    "metadata": {
        "some_string": "I am a string",
        "some_int": 77,
        "some_object": {
            "some_sub_field": "I am another string"
        }
    }
}
# You can also use wget
curl -X POST https://api.moesif.net/v1/events \
  -H 'Content-Type: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'
  -d '{"request":{"time":"2024-10-30T04:45:42.914","uri":"https://api.acmeinc.com/items/12345/reviews/","verb":"POST","api_version":"1.1.0","ip_address":"61.48.220.123","headers":{"Host":"api.acmeinc.com","Accept":"*/*","Connection":"Keep-Alive","Content-Type":"application/json","Content-Length":"126","Accept-Encoding":"gzip"},"body":{"items":[{"direction_type":1,"item_id":"hello","liked":false},{"direction_type":2,"item_id":"world","liked":true}]},"transfer_encoding":""},"response":{"time":"2024-10-30T04:45:42.914","status":500,"headers":{"Vary":"Accept-Encoding","Pragma":"no-cache","Expires":"-1","Content-Type":"application/json; charset=utf-8","Cache-Control":"no-cache"},"body":{"Error":"InvalidArgumentException","Message":"Missing field location"},"transfer_encoding":""},"user_id":"12345","company_id":"67890","transaction_id":"a3765025-46ec-45dd-bc83-b136c8d1d257","metadata":{"some_string":"I am a string","some_int":77,"some_object":{"some_sub_field":"some_value"}}}'
String reqBody = "{" +
  "\"items\": [" +
    "{" +
      "\"type\": 1," +
      "\"id\": \"hello\"" +,
    "}" +
  "]" +
  "}";

String rspBody = "{" +
    "\"Error\": \"InvalidArgumentException\"," +
    "\"Message\": \"Missing field field_a\"" +
  "}";

// Generate the event
Map<String, String> reqHeaders = new HashMap<String, String>();
reqHeaders.put("Host", "api.acmeinc.com");
reqHeaders.put("Content-Type", "application/json");
reqHeaders.put("Accept-Encoding", "gzip");

Map<String, String> rspHeaders = new HashMap<String, String>();
rspHeaders.put("Content-Type", "application/json; charset=utf-8");

BodyParser.BodyWrapper reqBodyWrapper = BodyParser.parseBody(reqHeaders, reqBody);
BodyParser.BodyWrapper rspBodyWrapper = BodyParser.parseBody(rspHeaders, rspBody);

EventRequestModel eventReq = new EventRequestBuilder()
        .time(new Date())
        .uri("https://api.acmeinc.com/items/reviews/")
        .verb("PATCH")
        .apiVersion("1.1.0")
        .ipAddress("61.48.220.123")
        .headers(reqHeaders)
        .body(reqBodyWrapper.body)
        .transferEncoding(reqBodyWrapper.transferEncoding);
        .build();

EventResponseModel eventRsp = new EventResponseBuilder()
        .time(new Date(System.currentTimeMillis() + 1000))
        .status(500)
        .headers(rspHeaders)
        .body(rspBodyWrapper.body)
        .transferEncoding(rspBodyWrapper.transferEncoding);
        .build();

EventModel eventModel = new EventBuilder()
        .request(eventReq)
        .response(eventRsp)
        .userId("12345")
        .companyId("67890")
        .build();

// Asynchronous Call to Create Event
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID");
APIController api = getClient().getAPI();

APICallBack<Object> callBack = new APICallBack<Object>() {
    public void onSuccess(HttpContext context, Object response) {
        // Sent successfully!
    }

    public void onFailure(HttpContext context, Throwable error) {
        // Log there was a failure
    }
};

// Async call to Send Event to Moesif
api.createEventAsync(eventModel, callBack);

// Synchronous call to Send Event to Moesif
api.createEvent(eventModel);
// 1. Import the module
var moesifapi = require('moesifapi');
var EventModel = moesifapi.UserModel;
var api = moesifapi.ApiController;

// 2. Configure the ApplicationId
var config = moesifapi.configuration;
config.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";

// 3. Generate an API Event Model
var reqHeaders = JSON.parse('{' +
        '"Host": "api.acmeinc.com",' +
        '"Accept": "*/*",' +
        '"Connection": "Keep-Alive",' +
        '"User-Agent": "Apache-HttpClient",' +
        '"Content-Type": "application/json",' +
        '"Content-Length": "126",' +
        '"Accept-Encoding": "gzip"' +
    '}');

var reqBody = JSON.parse( '{' +
        '"items": [' +
            '{' +
                '"type": 1,' +
                '"id": "hello"' +
            '},' +
            '{' +
                '"type": 2,' +
                '"id": "world"' +
            '}' +
        ']' +
    '}');

var rspHeaders = JSON.parse('{' +
        '"Vary": "Accept-Encoding",' +
        '"Pragma": "no-cache",' +
        '"Expires": "-1",' +
        '"Content-Type": "application/json; charset=utf-8",' +
        '"Cache-Control": "no-cache"' +
    '}');

var rspBody = JSON.parse('{' +
        '"Error": "InvalidArgumentException",' +
        '"Message": "Missing field field_a"' +
    '}');

var reqDate = new Date();
var eventReq = {
    time: reqDate,
    uri: "https://api.acmeinc.com/items/reviews/",
    verb: "PATCH",
    apiVersion: "1.1.0",
    ipAddress: "61.48.220.123",
    headers: reqHeaders,
    body: reqBody
};

var eventRsp = {
    time: (new Date()).setMilliseconds(reqDate.getMilliseconds() + 500),
    status: 500,
    headers: rspHeaders,
    body: rspBody
};

var eventModel = {
    request: eventReq,
    response: eventRsp,
    userId: "12345",
    companyId: "67890"
};

var events = [new EventModel(eventModel),
  new EventModel(eventModel),
  new EventModel(eventModel),
  new EventModel(eventModel)];

// 4. Send batch of events
api.createEventsBatch(events, function(error, response, context) {
  // Do Something
});

from __future__ import print_function
from moesifapi.moesif_api_client import *
from moesifapi.models import *
from datetime import *

client = MoesifAPIClient(YOUR_COLLECTOR_APPLICATION_ID)
api = client.api

# Note: we recommend sending all API calls via MVC framework middleware.

req_headers = APIHelper.json_deserialize("""  {
  "Host": "api.acmeinc.com",
  "Accept": "*/*",
  "Connection": "Keep-Alive",
  "User-Agent": "Apache-HttpClient",
  "Content-Type": "application/json",
  "Content-Length": "126",
  "Accept-Encoding": "gzip"
} """)

req_body = APIHelper.json_deserialize( """{
  "items": [
    {
      "type": 1,
      "id": "hello"
    },
    {
      "type": 2,
      "id": "world"
    }
  ]
}""")

rsp_headers = APIHelper.json_deserialize("""  {
    "Date": "Mon, 05 Feb 2024 23:46:49 GMT",
    "Vary": "Accept-Encoding",
    "Pragma": "no-cache",
    "Expires": "-1",
    "Content-Type": "application/json; charset=utf-8"
    "Cache-Control": "no-cache"
  } """)

rsp_body = APIHelper.json_deserialize( """{
    "Error": "InvalidArgumentException",
    "Message": "Missing field field_a"
  }""")


event_req = EventRequestModel(time = datetime.utcnow() - timedelta(seconds=-1),
    uri = "https://api.acmeinc.com/items/reviews/",
    verb = "PATCH",
    api_version = "1.1.0",
    ip_address = "61.48.220.123",
    headers = req_headers,
    body = req_body)

event_rsp = EventResponseModel(time = datetime.utcnow(),
    status = 500,
    headers = rsp_headers,
    body = rsp_body)

event_model = EventModel(request = event_req,
    response = event_rsp,
    user_id = "12345",
    company_id = "67890")


# Perform the API call through the SDK function
api.create_event(event_model)
require 'moesif_api'

client = MoesifApi::MoesifAPIClient.new(YOUR_COLLECTOR_APPLICATION_ID)
api = client.api_controller

req_headers = JSON.parse('{'\
  '"Host": "api.acmeinc.com",'\
  '"Accept": "*/*",'\
  '"Connection": "Keep-Alive",'\
  '"User-Agent": "Apache-HttpClient",'\
  '"Content-Type": "application/json",'\
  '"Content-Length": "126",'\
  '"Accept-Encoding": "gzip"'\
'}')

req_body = JSON.parse( '{'\
  '"items": ['\
    '{'\
      '"type": 1,'\
      '"id": "hello"'\
    '},'\
    '{'\
      '"type": 2,'\
      '"id": "world"'\
    '}'\
  ']'\
'}')

rsp_headers = JSON.parse('{'\
  '"Date": "Mon, 05 Feb 2024 23:46:49 GMT",'\
                '"Vary": "Accept-Encoding",'\
  '"Pragma": "no-cache",'\
  '"Expires": "-1",'\
  '"Content-Type": "application/json; charset=utf-8",'\
                '"Cache-Control": "no-cache"'\
'}')

rsp_body = JSON.parse('{'\
  '"Error": "InvalidArgumentException",'\
  '"Message": "Missing field field_a"'\
'}')


event_req = EventRequestModel.new()
event_req.time = "2024-10-30T04:45:42.914"
event_req.uri = "https://api.acmeinc.com/items/reviews/"
event_req.verb = "PATCH"
event_req.api_version = "1.1.0"
event_req.ip_address = "61.48.220.123"
event_req.headers = req_headers
event_req.body = req_body

event_rsp = EventResponseModel.new()
event_rsp.time = "2024-10-30T04:45:42.914"
event_rsp.status = 500
event_rsp.headers = rsp_headers
event_rsp.body = rsp_body

event_model = EventModel.new()
event_model.request = event_req
event_model.response = event_rsp
event_model.user_id ="12345"
event_model.company_id ="67890"

# Perform the API call through the SDK function
response = api.create_event(event_model)

using Moesif.Api;
using Moesif.Api.Helpers;

// Create client instance using your ApplicationId
var client = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID");
var apiClient = GetClient().Api;

// Parameters for the API call
var reqHeaders = APIHelper.JsonDeserialize<object>(@" {
        ""Host"": ""api.acmeinc.com"",
        ""Accept"": ""*/*"",
        ""Connection"": ""Keep-Alive"",
        ""User-Agent"": ""Apache-HttpClient"",
        ""Content-Type"": ""application/json"",
        ""Content-Length"": ""126"",
        ""Accept-Encoding"": ""gzip""
    }");

var reqBody = APIHelper.JsonDeserialize<object>(@" {
        ""items"": [
            {
                ""type"": 1,
                ""id"": ""hello""
            },
            {
                ""type"": 2,
                ""id"": ""world""
            }
        ]
    }");

var rspHeaders = APIHelper.JsonDeserialize<object>(@" {
        ""Date"": ""Mon, 05 Feb 2024 23:46:49 GMT"",
        ""Vary"": ""Accept-Encoding"",
        ""Pragma"": ""no-cache"",
        ""Expires"": ""-1"",
        ""Content-Type"": ""application/json; charset=utf-8"",
        ""Cache-Control"": ""no-cache""
    } ");

var rspBody = APIHelper.JsonDeserialize<object>(@" {
        ""Error"": ""InvalidArgumentException"",
        ""Message"": ""Missing field field_a""
    }");


var eventReq = new EventRequestModel()
{
    Time = DateTime.Parse("2024-10-30T04:45:42.914"),
    Uri = "https://api.acmeinc.com/items/reviews/",
    Verb = "PATCH",
    ApiVersion = "1.1.0",
    IpAddress = "61.48.220.123",
    Headers = reqHeaders,
    Body = reqBody
};

var eventRsp = new EventResponseModel()
{
    Time = DateTime.Parse("2024-10-30T04:45:42.914"),
    Status = 500,
    Headers = rspHeaders,
    Body = rspBody
};

var eventModel = new EventModel()
{
    Request = eventReq,
    Response = eventRsp,
    UserId = "12345",
    CompanyId = "67890"
};

//////////////////////////////////////
// Example for making an async call //     
//////////////////////////////////////
try
{
    await controller.CreateEventAsync(eventModel);
}
catch(APIException)
{
    // Handle Error
};

///////////////////////////////////////////
// Example for making a synchronous call //
///////////////////////////////////////////
try
{
    controller.CreateEvent(eventModel);
}
catch(APIException)
{
    // Handle Error
};

import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"
import "time"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

reqTime := time.Now().UTC()
apiVersion := "1.0"
ipAddress := "61.48.220.123"

req := models.EventRequestModel{
  Time:       &reqTime,
  Uri:        "https://api.acmeinc.com/widgets",
  Verb:       "GET",
  ApiVersion: &apiVersion,
  IpAddress:  &ipAddress,
  Headers: map[string]interface{}{
    "ReqHeader1": "ReqHeaderValue1",
  },
  Body: nil,
}

rspTime := time.Now().UTC().Add(time.Duration(1) * time.Second)

rsp := models.EventResponseModel{
  Time:      &rspTime,
  Status:    500,
  IpAddress: nil,
  Headers: map[string]interface{}{
    "RspHeader1":     "RspHeaderValue1",
    "Content-Type":   "application/json",
    "Content-Length": "1000",
  },
  Body: map[string]interface{}{
    "Key1": "Value1",
    "Key2": 12,
    "Key3": map[string]interface{}{
      "Key3_1": "SomeValue",
    },
  },
}

userId := "12345"
companyId: := "67890"

event := models.EventModel{
  Request:      req,
  Response:     rsp,
  SessionToken: nil,
  Tags:         nil,
  UserId:       &userId,
  CompanyId:    &companyId,
}


// Queue the event (will queue the requests into batches and flush buffers periodically.)
err := apiClient.QueueEvent(&event)

// Create the event synchronously
err := apiClient.CreateEvent(&event)

<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.

require_once "vendor/autoload.php";

// Import the SDK client in your project:

use MoesifApi\MoesifApiClient;

// Instantiate the client. After this, you can now access the Moesif API
// and call the respective methods:

$client = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID");
$api = $client->getApi();

$event = new Models\EventModel();
$reqdate = new DateTime();
$rspdate = new DateTime();

$event->request = array(
       "time" => $reqdate->format(DateTime::ISO8601), 
       "uri" => "https://api.acmeinc.com/items/reviews/", 
       "verb" => "PATCH", 
       "api_version" => "1.1.0", 
       "ip_address" => "61.48.220.123", 
       "headers" => array(
         "Host" => "api.acmeinc.com", 
         "Accept" => "_/_", 
         "Connection" => "Keep-Alive", 
         "User-Agent" => "moesifapi-php/1.1.5",
         "Content-Type" => "application/json", 
         "Content-Length" => "126", 
         "Accept-Encoding" => "gzip"), 
        "body" => array(
          "review_id" => 132232, 
          "item_id" => "ewdcpoijc0", 
          "liked" => false)
        );

 $event->response = array(
           "time" => $rspdate->format(DateTime::ISO8601), 
           "status" => 500, 
           "headers" => array(
             "Date" => "Tue, 1 Oct 2024 23:46:49 GMT", 
             "Vary" => "Accept-Encoding", 
             "Pragma" => "no-cache", 
             "Expires" => "-1", 
             "Content-Type" => "application/json; charset=utf-8", 
             "X-Powered-By" => "ARR/3.0", 
             "Cache-Control" => "no-cache", 
             "Arr-Disable-Session-Affinity" => "true"), 
             "body" => array(
               "item_id" => "13221", 
               "title" => "Red Brown Chair",
               "description" => "Red brown chair for sale",
               "price" => 22.23
             )
        );
$event->metadata = array(
          "foo" => "bar" 
        );

$event->user_id = "12345";
$event->company_id = "67890";

$api->createEvent($event);
Name Type Required Description
request object true The object that specifies the API request.

time

string(date-time) true Timestamp for the request in ISO 8601 format.

uri

string true Full uri such as https://api.acmeinc.com/?query=string including protocol, host, and query string.

verb

string true HTTP method used such as GET or POST.

api_version

string false API Version you want to tag this request with such as 1.0.0.

ip_address

string false IP address of the requester, If not set, we extract the remote IP address.

headers

object true Headers of the request as a Map<string, string>. Multiple headers with the same key name should be combined together such that the values are joined by a comma. HTTP Header Protocol on w3.org.

body

object false Payload of the request in either JSON or a base64 encoded string.

transfer_encoding

string false Specifies the transfer encoding of request.body field. If set to json then the response.body must be a JSON object. If set to base64, then request.body must be a base64 encoded string. Helpful for binary payloads. If not set, the body is assumed to be json.
response object false The object that specifies the API response. The response object can be undefined such as a request timeouts.

time

string(date-time) true Timestamp for the response in ISO 8601 format.

status

integer true HTTP status code as number such as 200 or 500.

ip_address

string false IP address of the responding server.

headers

object true Headers of the response as a Map<string, string>. Multiple headers with the same key name should be combined together such that the values are joined by a comma. HTTP Header Protocol on w3.org

body

object false Payload of the response in either JSON or a base64 encoded string.

transfer_encoding

string false Specifies the transfer encoding of response.body field. If set to json then the response.body must be a JSON object. If set to base64, then response.body must be a base64 encoded string. Helpful for binary payloads. If not set, the body is assumed to be json.
span object false The object that contains open telemetry span context

id

string false The open telemetry span id for this API call.

parent_id

string false The parent span id that comes before this API call.

links

array false List of links to related traces or spans

status

integer false The status of the span's operation
action_name string false A recognizable operation name such as Get Items or Triggered SMS Job
trace_id string false The open telemetry trace_id that this API call is part of.
transaction_id string false A random 36 char UUID for this event. If set, Moesif will deduplicate events using this id and ensure idempotency.
session_token string false Set the API key/session token used for this API call. Moesif will auto-detect API sessions if not set.
user_id string false Associate this API call to a user. Typically, a real person.
company_id string false Associate this API call to a company (Required for metered billing).
subscription_id string false Associate this API call to a specific subscription of a company. Not needed unless same company can have multiple subscriptions to the same plan. When set, usage will be reported to only this subscription.
direction string false The direction of this API call which can be Incoming, Outgoing, or Internal
weight integer 1 The weight of this event which is 1/sampling rate. Moesif uses this to reweigh scalar values, like counts, ensuring they are accurate even when API calls are sampled.
metadata object false An object containing any custom event metadata you want to store with this event.

Log API Calls in Batch

POST https://api.moesif.net/v1/events/batch

Creates and logs a batch of API calls to Moesif. API Calls in Moesif represent a full API operation or span (in OTel terminology). Each API call is a structured log containing the API request, the API response, start and end time, context, and any custom event metadata.

This API accepts an array of API calls as the payload The maximum batch size is 50MB. Break up larger batches into smaller batches.

POST https://api.moesif.net/v1/events/batch

Example Request
  [
    {
        "request": {
          "time": "2024-10-30T04:45:42.914",
          "uri": "https://api.acmeinc.com/items/83738/reviews/",
          "verb": "POST",
          "api_version": "1.1.0",
          "ip_address": "61.48.220.123",
          "headers": {
            "Host": "api.acmeinc.com",
            "Accept": "*/*",
            "Connection": "Keep-Alive",
            "Content-Type": "application/json",
            "Content-Length": "126",
            "Accept-Encoding": "gzip"
          },
          "body": {
            "items": [
              {
                "direction_type": 1,
                "item_id": "hello",
                "liked": false
              },
              {
                "direction_type": 2,
                "item_id": "world",
                "liked": true
              }
            ]
          },
          "transfer_encoding": ""
        },
        "response": {
          "time": "2024-10-30T04:45:42.914",
          "status": 500,
          "headers": {
            "Vary": "Accept-Encoding",
            "Pragma": "no-cache",
            "Expires": "-1",
            "Content-Type": "application/json; charset=utf-8",
            "Cache-Control": "no-cache"
          },
          "body": {
            "Error": "InvalidArgumentException",
            "Message": "Missing field location"
          },
          "transfer_encoding": ""
        },
        "user_id": "12345",
        "company_id": "67890",
        "transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257",
        "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
        "span": {
            "id": "00f067aa0ba902b7",
            "parent_span_id": "b3c3f3c3f3c3f3c3"
        },
        "metadata": {
            "some_string": "I am a string",
            "some_int": 77,
            "some_object": {
                "some_sub_field": "some_value"
            }
        }
    }
  ]
# You can also use wget
curl -X POST https://api.moesif.net/v1/events/batch \
  -H 'Content-Type: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'
  -d '[{"request":{"time":"2024-10-30T04:45:42.914","uri":"https://api.acmeinc.com/items/83738/reviews/","verb":"POST","api_version":"1.1.0","ip_address":"61.48.220.123","headers":{"Host":"api.acmeinc.com","Accept":"*/*","Connection":"Keep-Alive","Content-Type":"application/json","Content-Length":"126","Accept-Encoding":"gzip"},"body":{"items":[{"direction_type":1,"item_id":"hello","liked":false},{"direction_type":2,"item_id":"world","liked":true}]},"transfer_encoding":""},"response":{"time":"2024-10-30T04:45:42.914","status":500,"headers":{"Vary":"Accept-Encoding","Pragma":"no-cache","Expires":"-1","Content-Type":"application/json; charset=utf-8","Cache-Control":"no-cache"},"body":{"Error":"InvalidArgumentException","Message":"Missing field location"},"transfer_encoding":""},"user_id":"12345","company_id":"67890","transaction_id":"a3765025-46ec-45dd-bc83-b136c8d1d257","metadata":{"some_string":"I am a string","some_int":77,"some_object":{"some_sub_field":"some_value"}}}]'
String reqBody = "{" +
  "\"items\": [" +
    "{" +
      "\"type\": 1," +
      "\"id\": \"hello\"" +,
    "}" +
  "]" +
  "}";

String rspBody = "{" +
    "\"Error\": \"InvalidArgumentException\"," +
    "\"Message\": \"Missing field field_a\"" +
  "}";

// Generate the event
Map<String, String> reqHeaders = new HashMap<String, String>();
reqHeaders.put("Host", "api.acmeinc.com");
reqHeaders.put("Content-Type", "application/json");
reqHeaders.put("Accept-Encoding", "gzip");

Map<String, String> rspHeaders = new HashMap<String, String>();
rspHeaders.put("Content-Type", "application/json; charset=utf-8");

BodyParser.BodyWrapper reqBodyWrapper = BodyParser.parseBody(reqHeaders, reqBody);
BodyParser.BodyWrapper rspBodyWrapper = BodyParser.parseBody(rspHeaders, rspBody);

EventRequestModel eventReq = new EventRequestBuilder()
        .time(new Date())
        .uri("https://api.acmeinc.com/items/reviews/")
        .verb("PATCH")
        .apiVersion("1.1.0")
        .ipAddress("61.48.220.123")
        .headers(reqHeaders)
        .body(reqBodyWrapper.body)
        .transferEncoding(reqBodyWrapper.transferEncoding);
        .build();

EventResponseModel eventRsp = new EventResponseBuilder()
        .time(new Date(System.currentTimeMillis() + 1000))
        .status(500)
        .headers(rspHeaders)
        .body(rspBodyWrapper.body)
        .transferEncoding(rspBodyWrapper.transferEncoding);
        .build();

EventModel eventModel = new EventBuilder()
        .request(eventReq)
        .response(eventRsp)
        .userId("12345")
        .companyId("67890")
        .build();

// Asynchronous Call to Create Event
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID");
APIController api = getClient().getAPI();

APICallBack<Object> callBack = new APICallBack<Object>() {
    public void onSuccess(HttpContext context, Object response) {
        // Sent successfully!
    }

    public void onFailure(HttpContext context, Throwable error) {
        // Log there was a failure
    }
};

// Create a batch of events
List<EventModel> events = new ArrayList<EventModel>();
events.add(eventModel);

// Async Call to Send Event to Moesif
api.createEventsBatchAsync(events, callBack);

// Synchronous Call to Send Event to Moesif
api.createEventsBatch(events);
// Import the module:
var moesifapi = require('moesifapi');

// Set your application id
var config = moesifapi.configuration;
config.ApplicationId = 'YOUR_COLLECTOR_APPLICATION_ID';

// Create API Event Models and set fields
var reqHeaders = JSON.parse('{' +
        '"Host": "api.acmeinc.com",' +
        '"Accept": "*/*",' +
        '"Connection": "Keep-Alive",' +
        '"User-Agent": "Apache-HttpClient",' +
        '"Content-Type": "application/json",' +
        '"Content-Length": "126",' +
        '"Accept-Encoding": "gzip"' +
    '}');

var reqBody = JSON.parse( '{' +
        '"items": [' +
            '{' +
                '"type": 1,' +
                '"id": "hello"' +
            '},' +
            '{' +
                '"type": 2,' +
                '"id": "world"' +
            '}' +
        ']' +
    '}');

var rspHeaders = JSON.parse('{' +
        '"Vary": "Accept-Encoding",' +
        '"Pragma": "no-cache",' +
        '"Expires": "-1",' +
        '"Content-Type": "application/json; charset=utf-8",' +
        '"Cache-Control": "no-cache"' +
    '}');

var rspBody = JSON.parse('{' +
        '"Error": "InvalidArgumentException",' +
        '"Message": "Missing field field_a"' +
    '}');

var reqDate = new Date();
var eventReq = {
    time: reqDate,
    uri: "https://api.acmeinc.com/items/reviews/",
    verb: "PATCH",
    apiVersion: "1.1.0",
    ipAddress: "61.48.220.123",
    headers: reqHeaders,
    body: reqBody
};

var eventRsp = {
    time: (new Date()).setMilliseconds(reqDate.getMilliseconds() + 500),
    status: 500,
    headers: rspHeaders,
    body: rspBody
};

var eventA = {
    request: eventReq,
    response: eventRsp,
    userId: "12345",
    companyId: "67890"
};

var myEventModels = [ eventA ]

//Access various controllers by:
var controller = moesifapi.ApiController;

// Send the actual events
controller.createEventsBatch(myEventModels, function(error, response, context) {
  //  Handle Errors
});

from __future__ import print_function
from moesifapi.moesif_api_client import *
from moesifapi.models import *
from datetime import *

# Setup API Client
client = MoesifAPIClient(YOUR_COLLECTOR_APPLICATION_ID)
api = client.api_controller


# Create API Event Models and set fields
req_headers = APIHelper.json_deserialize("""  {
  "Host": "api.acmeinc.com",
  "Accept": "*/*",
  "Connection": "Keep-Alive",
  "User-Agent": "Apache-HttpClient",
  "Content-Type": "application/json",
  "Content-Length": "126",
  "Accept-Encoding": "gzip"
} """)

req_body = APIHelper.json_deserialize( """{
  "items": [
    {
      "type": 1,
      "id": "hello"
    },
    {
      "type": 2,
      "id": "world"
    }
  ]
}""")

rsp_headers = APIHelper.json_deserialize("""  {
    "Date": "Mon, 05 Feb 2024 23:46:49 GMT",
    "Vary": "Accept-Encoding",
    "Pragma": "no-cache",
    "Expires": "-1",
    "Content-Type": "application/json; charset=utf-8"
    "Cache-Control": "no-cache"
  } """)

rsp_body = APIHelper.json_deserialize( """{
    "Error": "InvalidArgumentException",
    "Message": "Missing field field_a"
  }""")


event_req = EventRequestModel(time = datetime.utcnow() - timedelta(seconds=-1),
    uri = "https://api.acmeinc.com/items/reviews/",
    verb = "PATCH",
    api_version = "1.1.0",
    ip_address = "61.48.220.123",
    headers = req_headers,
    body = req_body)

event_rsp = EventResponseModel(time = datetime.utcnow(),
    status = 500,
    headers = rsp_headers,
    body = rsp_body)

event_a = EventModel(request = event_req,
    response = event_rsp,
    user_id = "12345",
    company_id = "67890"

my_events = [ event_a ]

# Send the actual events
api.create_events_batch(my_events)

require 'moesif_api'

# Setup API Client
client = MoesifApi::MoesifAPIClient.new(YOUR_COLLECTOR_APPLICATION_ID)
api = client.api_controller

# Create API Event Models and set fields
event_a = EventModel.new()
event_a.user_id = "12345"
event_a.company_id = "67890"
my_event_models = [ event_a ]

# Send the actual events
api.create_events_batch(my_event_models)

using Moesif.Api;
using Moesif.Api.Helpers;

// Create client instance using your ApplicationId
var client = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID");
var apiClient = GetClient().Api;

// Parameters for the API call
var reqHeaders = APIHelper.JsonDeserialize<object>(@" {
        ""Host"": ""api.acmeinc.com"",
        ""Accept"": ""*/*"",
        ""Connection"": ""Keep-Alive"",
        ""User-Agent"": ""Apache-HttpClient"",
        ""Content-Type"": ""application/json"",
        ""Content-Length"": ""126"",
        ""Accept-Encoding"": ""gzip""
    }");

var reqBody = APIHelper.JsonDeserialize<object>(@" {
        ""items"": [
            {
                ""type"": 1,
                ""id"": ""hello""
            },
            {
                ""type"": 2,
                ""id"": ""world""
            }
        ]
    }");

var rspHeaders = APIHelper.JsonDeserialize<object>(@" {
        ""Date"": ""Mon, 05 Feb 2024 23:46:49 GMT"",
        ""Vary"": ""Accept-Encoding"",
        ""Pragma"": ""no-cache"",
        ""Expires"": ""-1"",
        ""Content-Type"": ""application/json; charset=utf-8"",
        ""Cache-Control"": ""no-cache""
    } ");

var rspBody = APIHelper.JsonDeserialize<object>(@" {
        ""Error"": ""InvalidArgumentException"",
        ""Message"": ""Missing field field_a""
    }");

var reqDate = new Date();
var eventReq = new EventRequestModel()
{
    Time = DateTime.Parse("2024-10-30T04:45:42.914"),
    Uri = "https://api.acmeinc.com/items/reviews/",
    Verb = "PATCH",
    ApiVersion = "1.1.0",
    IpAddress = "61.48.220.123",
    Headers = reqHeaders,
    Body = reqBody
};

var eventRsp = new EventResponseModel()
{
    Time = DateTime.Parse("2024-10-30T04:45:42.914"),
    Status = 500,
    Headers = rspHeaders,
    Body = rspBody
};

var eventModel = new EventModel()
{
    Request = eventReq,
    Response = eventRsp,
    UserId = "12345",
    CompanyId = "67890"
};

// Create a List
var events = new List<EventModel>();
events.Add(eventModel);
events.Add(eventModel);
events.Add(eventModel);

//////////////////////////////////////
// Example for making an async call //  
//////////////////////////////////////
try
{
    await controller.CreateEventsBatchAsync(events);
}
catch(APIException)
{
    // Handle Error
};

///////////////////////////////////////////
// Example for making a synchronous call //
///////////////////////////////////////////
try
{
    controller.CreateEventsBatch(events);
}
catch(APIException)
{
    // Handle Error
};

import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"
import "time"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

reqTime := time.Now().UTC()
apiVersion := "1.0"
ipAddress := "61.48.220.123"

req := models.EventRequestModel{
  Time:       &reqTime,
  Uri:        "https://api.acmeinc.com/widgets",
  Verb:       "GET",
  ApiVersion: &apiVersion,
  IpAddress:  &ipAddress,
  Headers: map[string]interface{}{
    "ReqHeader1": "ReqHeaderValue1",
  },
  Body: nil,
}

rspTime := time.Now().UTC().Add(time.Duration(1) * time.Second)

rsp := models.EventResponseModel{
  Time:      &rspTime,
  Status:    500,
  IpAddress: nil,
  Headers: map[string]interface{}{
    "RspHeader1": "RspHeaderValue1",
  },
  Body: map[string]interface{}{
    "Key1": "Value1",
    "Key2": 12,
    "Key3": map[string]interface{}{
      "Key3_1": "SomeValue",
    },
  },
}

userId := "12345"
companyId := "6789"

event := models.EventModel{
  Request:      req,
  Response:     rsp,
  SessionToken: nil,
  Tags:         nil,
  UserId:       &userId,
  CompanyId:    &companyId,
}

events := make([]*models.EventModel, 20)
for i := 0; i < 20; i++ {
  events[i] = &event
}

// Queue the events
err := apiClient.QueueEvents(events)

// Create the events batch synchronously
err := apiClient.CreateEventsBatch(event)

<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.

require_once "vendor/autoload.php";

// Import the SDK client in your project:

use MoesifApi\MoesifApiClient;

// Instantiate the client. After this, you can now access the Moesif API
// and call the respective methods:

$client = new MoesifApiClient("Your application Id");
$api = $client->getApi();
Name Type Required Description
request object true The object that specifies the API request.

time

string(date-time) true Timestamp for the request in ISO 8601 format.

uri

string true Full uri such as https://api.acmeinc.com/?query=string including protocol, host, and query string.

verb

string true HTTP method used such as GET or POST.

api_version

string false API Version you want to tag this request with such as 1.0.0.

ip_address

string false IP address of the requester, If not set, we extract the remote IP address.

headers

object true Headers of the request as a Map<string, string>. Multiple headers with the same key name should be combined together such that the values are joined by a comma. HTTP Header Protocol on w3.org.

body

object false Payload of the request in either JSON or a base64 encoded string.

transfer_encoding

string false Specifies the transfer encoding of request.body field. If set to json then the response.body must be a JSON object. If set to base64, then request.body must be a base64 encoded string. Helpful for binary payloads. If not set, the body is assumed to be json.
response object false The object that specifies the API response. The response object can be undefined such as a request timeouts.

time

string(date-time) true Timestamp for the response in ISO 8601 format.

status

integer true HTTP status code as number such as 200 or 500.

ip_address

string false IP address of the responding server.

headers

object true Headers of the response as a Map<string, string>. Multiple headers with the same key name should be combined together such that the values are joined by a comma. HTTP Header Protocol on w3.org

body

object false Payload of the response in either JSON or a base64 encoded string.

transfer_encoding

string false Specifies the transfer encoding of response.body field. If set to json then the response.body must be a JSON object. If set to base64, then response.body must be a base64 encoded string. Helpful for binary payloads. If not set, the body is assumed to be json.
span object false The object that contains open telemetry span context

id

string false The open telemetry span id for this API call.

parent_id

string false The parent span id that comes before this API call.

links

array false List of links to related traces or spans

status

integer false The status of the span's operation
action_name string false A recognizable operation name such as Get Items or Triggered SMS Job
trace_id string false The open telemetry trace_id that this API call is part of.
transaction_id string false A random 36 char UUID for this event. If set, Moesif will deduplicate events using this id and ensure idempotency. Moesif will still deduplicate even across different size batches.
session_token string false Set the API key/session token used for this API call. Moesif will auto-detect API sessions if not set.
user_id string false Associate this API call to a user. Typically, a real person.
company_id string false Associate this API call to a company (Required for metered billing).
subscription_id string false Associate this API call to a specific subscription of a company. Not needed unless same company can have multiple subscriptions to the same plan. When set, usage will be reported to only this subscription.
direction string false The direction of this API call which can be Incoming, Outgoing, or Internal
weight integer 1 The weight of this event which is 1/sampling rate. Moesif uses this to reweigh scalar values, like counts, ensuring they are accurate even when API calls are sampled.
metadata object false An object containing any custom event metadata you want to store with this event.

Actions

Track a Custom Action

POST https://api.moesif.net/v1/actions

Log a single action to Moesif. Actions represent events that occur within your application at a specific point in time. They can be tracked within your UI (such as "User Clicked Sign Up") or from your backend (such as "SMS Job Finished"). Each action consists of a required Action Name and optional Metadata.

POST https://api.moesif.net/v1/actions

Example Request
{
  "action_name": "Clicked Sign Up",
  "user_id": "12345",
  "company_id": "67890",
  "transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257",
  "request": {
    "uri": "https://acmeinc.com/pricing",
    "user_agent_string": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
  },
  "metadata": {
    "button_label": "Get Started",
    "sign_up_method": "Google SSO"
  }
}
# You can also use wget
curl -X POST https://api.moesif.net/v1/actions \
  -H 'Content-Type: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID' \
  -d '{"action_name":"Clicked Sign Up","user_id":"12345","company_id":"67890","transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257","request":{"uri":"https://acmeinc.com/pricing","user_agent_string":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"},"metadata":{"button_label":"Get Started","sign_up_method":"Google SSO"}}'
var moesif = require('moesif-browser-js');

moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
});

// The first argument (required) contains the action name string. 
// The second argument (optional) contains event metadata.
moesif.track('Clicked Sign Up', {
  button_label: 'Get Started',
  sign_up_method: 'Google SSO'
});
var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";

var action = {
  transactionId: "a3765025-46ec-45dd-bc83-b136c8d1d257",
  actionName: "Clicked Sign Up",
  sessionToken: "23jdf0owekfmcn4u3qypxg08w4d8ayrcdx8nu2nz]s98y18cx98q3yhwmnhcfx43f",
  userId: "12345",
  companyId: "67890",
  metadata: {
    email: "johndoe@acmeinc.com",
    button_label: 'Get Started',
    sign_up_method: 'Google SSO'
  },
  request: {
    time: new Date(),
    uri: "https://api.acmeinc.com/items/reviews/",
    ipAddress: "61.48.220.123",
  }
};
// Send the Action
apiClient.sendAction(new moesifapi.ActionModel(action), function(error, response, context) {
  // Do Something
});
Name Type Required Description
transaction_id string false A random 36 char UUID for this event. If set, Moesif will deduplicate events using this id and ensure idempotency.
action_name string true A recognizable name such as Clicked Sign Up or SMS Job Finished
session_token string false The customer's current session token as a string.
user_id string false Associate this API call to a user. Typically, a real person.
company_id string false Associate this API call to a company (Required for metered billing).
subscription_id string false Associate this API call to a specific subscription of a company. Not needed unless same company can have multiple subscriptions to the same plan. When set, usage will be reported to only this subscription.
metadata object false An object containing any custom event metadata you want to store with this event.
request object true The object containing the action's request context.

time

string(date-time) false Timestamp for the action in ISO 8601 format. Set by server automatically if not set.

uri

string true Full uri customer is on such as https://wwww.acmeinc.com/pricing?utm_source=adwords including protocol, host, and query string.

ip_address

string false IP address of the customer, If not set, we extract the remote IP address.

user_agent_string

string false The customer's browser agent string for device context.

Track Custom Actions in Batch

POST https://api.moesif.net/v1/actions/batch

Log a batch of actions to Moesif. Actions represent events that occur within your application at a specific point in time. They can be tracked within your UI (such as "User Clicked Sign Up") or from your backend (such as "SMS Job Finished"). Each action consists of a required Action Name and optional Metadata.

This API accepts an array of actions as the payload The maximum batch size is 15MB. Break up larger batches into smaller batches.

POST https://api.moesif.net/v1/actions/batch

Example Request
[
  {
    "action_name": "Clicked Sign Up",
    "user_id": "12345",
    "company_id": "67890",
    "transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257",
    "request": {
      "uri": "https://acmeinc.com/pricing",
      "user_agent_string": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
    },
    "metadata": {
      "button_label": "Get Started",
      "sign_up_method": "Google SSO"
    }
  },
  {
    "action_name": "Purchased Subscription",
    "user_id": "12345",
    "company_id": "67890",
    "transaction_id": "a90cbabb-2dfc-4290-a368-48ce1a1af7ba",
    "request": {
      "uri": "https://acmeinc.com/pricing",
      "user_agent_string": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
    },
    "metadata": {
      "plan_name": "Pay As You Go",
      "plan_revenue": 5000
    }
  }
]
# You can also use wget
curl -X POST https://api.moesif.net/v1/actions/batch \
  -H 'Content-Type: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID' \
  -d '[{"action_name":"Clicked Sign Up","user_id":"12345","company_id":"67890","transaction_id": "a3765025-46ec-45dd-bc83-b136c8d1d257","request":{"uri":"https://acmeinc.com/pricing","user_agent_string":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"},"metadata":{"button_label":"Get Started","sign_up_method":"Google SSO"}},{"action_name":"Purchased Subscription","user_id":"12345","company_id":"67890","transaction_id": "a90cbabb-2dfc-4290-a368-48ce1a1af7ba","request":{"uri":"https://acmeinc.com/pricing","user_agent_string":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"},"metadata":{"plan_name":"Pay As You Go","plan_revenue":5000}}]'
var moesif = require('moesif-browser-js');

moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
});

// The first argument (required) contains the action name string. 
// The second argument (optional) contains event metadata.
moesif.track('Clicked Sign Up', {
  button_label: 'Get Started',
  sign_up_method: 'Google SSO'
});
var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";

// Define the request context objects for each action.
var req_contextA = {
  time: new Date(),
  uri: "https://api.acmeinc.com/items/reviews/",
  ipAddress: "61.48.220.123",
  userAgentString: "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
};

var req_contextB = {
  time: new Date(),
  uri: "https://api.acmeinc.com/pricing/",
  ipAddress: "61.48.220.126",
  userAgentString: "PostmanRuntime/7.26.5"
};

// Define the actions.
var actionA = {
  transactionId: "a3765025-46ec-45dd-bc83-b136a8d1d357",
  actionName: "Clicked Sign Up",
  sessionToken: "23abf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f",
  userId: "18340",
  companyId: "25100",
  metadata: {
    email: "alex@acmeinc.com",
    button_label: 'Get Started',
    sign_up_method: 'Google SSO'
  },
  request: req_contextA
};

var actionB = {
  transactionId: "a3765024-46ee-45dd-bc83-b136c8d1d250",
  actionName: "Viewed pricing",
  sessionToken: "23jdf0owejfmbn4u3qypxg09w4d8ayrxdx8nu2ng]s98y18cx98q3yhwmnhcfx43f",
  userId: "12390",
  companyId: "97895",
  metadata: {
    email: "kim@acmeinc.com",
    button_label: 'See pricing',
    sign_up_method: 'Google SSO'
  },
  request: req_contextB
};

var actions = [
  new moesifapi.ActionModel(actionA),
  new moesifapi.ActionModel(actionB)
];
// Send the batch of Actions
apiClient.sendActionsBatch(actions, function(error, response, context) {
  // Do Something
});
Name Type Required Description
transaction_id string false A random 36 char UUID for this event. If set, Moesif will deduplicate events using this id and ensure idempotency. Moesif will still deduplicate even across different size batches.
action_name string true A recognizable name such as Clicked Sign Up or SMS Job Finished
session_token string false The customer's current session token as a string.
user_id string false Associate this API call to a user. Typically, a real person.
company_id string false Associate this API call to a company (Required for metered billing).
subscription_id string false Associate this API call to a specific subscription of a company. Not needed unless same company can have multiple subscriptions to the same plan. When set, usage will be reported to only this subscription.
metadata object false An object containing any custom event metadata you want to store with this event.
request object true The object containing the action's request context.

time

string(date-time) false Timestamp for the action in ISO 8601 format. Set by server automatically if not set.

uri

string true Full uri customer is on such as https://wwww.acmeinc.com/pricing?utm_source=adwords including protocol, host, and query string.

ip_address

string false IP address of the customer, If not set, we extract the remote IP address.

user_agent_string

string false The customer's browser agent string for device context.

Users

Update a User

POST https://api.moesif.net/v1/users

Updates a user profile in Moesif, which is typically a single person or API consumer. For updating customer profiles such as for monetization use cases, see companies and subscriptions.

You can also track users automatically using a Moesif client integration like moesif-browser-js or Segment.

User properties can be stored via the metadata object.

We’ve reserved some metadata fields that have semantic meanings for users, and we handle them in special ways. For example, we expect email to be a string containing the user’s email address which is used to look up a user's demographic enrichment data and send behavioral emails.

Reserved metadata fields include:

Create vs update

If the user does not exist, Moesif will create a new one.

If a user exists, the new user properties will be merged with the existing properties recursively. This means you don't need to resend the entire user object if you are only updating a single field.

Do not call identifyUser for anonymous visitors. The SDK automatically tracks these via a generated anonymousId in localStorage. Once you call identifyUser, Moesif automatically merges multiple user profiles if needed.
POST https://api.moesif.net/v1/users

Example Request
  {
    "user_id": "12345",
    "company_id": "67890",
    "metadata": {
      "email": "john@acmeinc.com",
      "first_name": "John",
      "last_name": "Doe",
      "title": "Software Engineer",
      "sales_info": {
          "stage": "Customer",
          "lifetime_value": 24000,
          "account_owner": "mary@contoso.com"
      }
    }
  }
# You can also use wget
curl -X POST https://api.moesif.net/v1/users \
  -d '{"user_id":"12345","company_id":"67890","metadata":{"email":"john@acmeinc.com","first_name":"John","last_name":"Doe","title":"Software Engineer","sales_info":{"stage":"Customer","lifetime_value":24000,"account_owner":"mary@contoso.com"}}}' \
  -H 'Accept: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'
var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";

// Only userId is required.
// metadata can be any custom object
var user = {
  userId: '12345',
  companyId: '67890'
  metadata: {
    email: 'john@acmeinc.com',
    firstName: 'John',
    lastName: 'Doe',
    title: 'Software Engineer',
    salesInfo: {
        stage: 'Customer',
        lifetimeValue: 24000,
        accountOwner: 'mary@contoso.com',
    },
  }
};
// 4. Create a single user
apiClient.updateUser(new moesifapi.UserModel(user), function(error, response, context) {
  // Do Something
});
from moesifapi.moesif_api_client import *
from moesifapi.models import *

api_client = MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").api

# Only user_id is required.
# metadata can be any custom object
user = {
  'user_id': '12345',
  'company_id': '67890', # If set, associate user with a company object
  'metadata': {
    'email': 'john@acmeinc.com',
    'first_name': 'John',
    'last_name': 'Doe',
    'title': 'Software Engineer',
    'sales_info': {
        'stage': 'Customer',
        'lifetime_value': 24000,
        'account_owner': 'mary@contoso.com'
    },
  }
}

update_user = api_client.update_user(user)
api_client = MoesifApi::MoesifAPIClient.new('YOUR_COLLECTOR_APPLICATION_ID').api

metadata => {
  :email => 'john@acmeinc.com',
  :first_name => 'John',
  :last_name => 'Doe',
  :title => 'Software Engineer',
  :salesInfo => {
      :stage => 'Customer',
      :lifetime_value => 24000,
      :accountOwner => 'mary@contoso.com',
  }
}

# Only user_id is required.
# metadata can be any custom object
user = UserModel.new()
user.user_id = "12345"
user.company_id = "67890" # If set, associate user with a company object
user.metadata = metadata

update_user = api_client.update_user(user)
<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.
require_once "vendor/autoload.php";

// Import the SDK client in your project:
use MoesifApi\MoesifApiClient;
$apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID")->getApi();;

// metadata can be any custom object
$user->metadata = array(
        "email" => "john@acmeinc.com",
        "first_name" => "John",
        "last_name" => "Doe",
        "title" => "Software Engineer",
        "sales_info" => array(
            "stage" => "Customer",
            "lifetime_value" => 24000,
            "account_owner" => "mary@contoso.com"
        )
    );

$user = new Models\UserModel();
$user->userId = "12345";
$user->companyId = "67890"; // If set, associate user with a company object
$user->metadata = $metadata;

$apiClient->updateUser($user);
import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

// metadata can be any custom dictionary
metadata := map[string]interface{}{
  "email", "john@acmeinc.com",
  "first_name", "John",
  "last_name", "Doe",
  "title", "Software Engineer",
  "sales_info", map[string]interface{}{
      "stage", "Customer",
      "lifetime_value", 24000,
      "account_owner", "mary@contoso.com",
  },
}

// Only UserId is required
user := models.UserModel{
  UserId:  "12345",
  CompanyId:  "67890", // If set, associate user with a company object
  Metadata:  &metadata,
}

// Queue the user asynchronously
err := apiClient.QueueUser(&user)

// Update the user synchronously
err := apiClient.UpdateUser(&user)
var apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID").Api;;

// metadata can be any custom dictionary
var metadata = new Dictionary<string, object>
{
    {"email", "john@acmeinc.com"},
    {"first_name", "John"},
    {"last_name", "Doe"},
    {"title", "Software Engineer"},
    {"sales_info", new Dictionary<string, object> {
        {"stage", "Customer"},
        {"lifetime_value", 24000},
        {"account_owner", "mary@contoso.com"}
    }
};

// Only user_id is required
var user = new UserModel()
{
    UserId = "12345",
  CompanyId = "67890",
    Metadata = metadata
};

// Update the user asynchronously
await apiClient.UpdateUserAsync(user);

// Update the user synchronously
apiClient.UpdateUser(user);
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID");

// Only userId is required
// metadata can be any custom object
UserModel user = new UserBuilder()
    .userId("12345")
    .companyId("67890") // If set, associate user with a company object
    .metadata(APIHelper.deserialize("{" +
        "\"email\": \"johndoe@acmeinc.com\"," +
        "\"first_name\": \"John\"," +
        "\"last_name\": \"Doe\"," +
        "\"title\": \"Software Engineer\"," +
        "\"sales_info\": {" +
            "\"stage\": \"Customer\"," +
            "\"lifetime_value\": 24000," +
            "\"account_owner\": \"mary@contoso.com\"" +
          "}" +
        "}"))
    .build();

// Asynchronous Call to update user
client.getAPI().updateUserAsync(user, callBack);

// Synchronous Call to update user
client.getAPI().updateUser(user);
var moesif = require('moesif-browser-js');

moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
  // add other option here.
});

// The second argument containing user metatdata is optional,
// but useful to store customer properties like email and name.
moesif.identifyUser('12345', {
  email: 'john@acmeinc.com',
  firstName: 'John',
  lastName: 'Doe',
  title: 'Software Engineer',
  salesInfo: {
      stage: 'Customer',
      lifetimeValue: 24000,
      accountOwner: 'mary@contoso.com',
  },
});

User id

Users in Moesif are identified via a user_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like email addresses or usernames. The user_id matches the identifyUser hook in your API monitoring agent.

Users can also be associated to a company by setting the company_id field when you update a user. This enables tracking API usage for individual users along with account-level usage.

Name Type Required Description
user_id string true The unique identifier for this user.
company_id string false Associate the user with a company (Helpful for B2B companies)
session_token string false Associate this user with a new API key/session token. This field is append only meaning when you set this field, previously set tokens are not removed.
modified_time string(date-time) false Last modified time of user profile. Set automatically by Moesif if not provided.
ip_address string false Set the user's last known ip address. Moesif sets this automatically from the user's most recent API activity if not provided.
user_agent_string string false Set the user's last known user agent. Moesif sets this automatically from the user's most recent API activity if not provided.
campaign object false Referrer and UTM parameters to track effectiveness of your acquisition channels. Set automatically by moesif-browser-js, but not with server side SDKs

utm_source

string false UTM parameter that identifies which site sent the traffic

utm_medium

string false UTM parameter that identifies what type of link was used, such as cost per click or email.

utm_campaign

string false UTM parameter that identifies a specific product promotion or strategic campaign.

utm_term

string false UTM parameter that identifies search terms.

utm_content

string false UTM parameter that identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link.

referrer

string false The referring URI before your domain.

referring_domain

string false The referring domain of the page that linked to your domain.

gclid

string false Google click Identifier to track Google Ads
metadata object false An object containing user demographics or other properties you want to store with this profile.

Update Users in Batch

POST https://api.moesif.net/v1/users/batch

Updates a list of user profiles in a single batch. Users are typically a single person or API consumer. For updating customer profiles such as for monetization use cases, see companies and subscriptions.

You can also track users automatically using a Moesif client integration like moesif-browser-js or Segment.

Any custom user properties can be stored via the metadata object.

We’ve reserved some fields names in the metadata object that have semantic meanings for users, and we handle them in special ways. For example, we expect email to be a string containing the user’s email address which is used to sync with external CRMs and to look up a user's Gravatar and demographics.

Reserved metadata fields include:

Create vs update

If the user does not exist, Moesif will create a new one.

If a user exists, the new user properties will be merged with the existing properties recursively. This means you don't need to resend the entire user object if you are only updating a single field.

POST https://api.moesif.net/v1/users/batch

Example Request
[
  {
    "user_id": "12345",
    "company_id": "67890",
    "metadata": {
      "email": "john@acmeinc.com",
      "first_name": "John",
      "last_name": "Doe",
      "title": "Software Engineer",
      "sales_info": {
        "stage": "Customer",
        "lifetime_value": 24000,
        "account_owner": "mary@contoso.com"
      }
    }
  },
  {
    "user_id": "54321",
    "company_id": "67890",
    "metadata": {
      "email": "mary@acmeinc.com",
      "first_name": "Mary",
      "last_name": "Jane",
      "title": "Software Engineer",
      "sales_info": {
        "stage": "Customer",
        "lifetime_value": 24000,
        "account_owner": "mary@contoso.com"
      }
    }
  }
]
# You can also use wget
curl -X POST https://api.moesif.net/v1/users/batch \
  -d '[{"user_id":"12345","company_id":"67890","metadata":{"email":"john@acmeinc.com","first_name":"John","last_name":"Doe","title":"Software Engineer","sales_info":{"stage":"Customer","lifetime_value":24000,"account_owner":"mary@contoso.com"}}},{"user_id":"54321","company_id":"67890","metadata":{"email":"mary@acmeinc.com","first_name":"Mary","last_name":"Jane","title":"Software Engineer","sales_info":{"stage":"Customer","lifetime_value":24000,"account_owner":"mary@contoso.com"}}}]' \
  -H 'Accept: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'


var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";

// 3. Generate a User Model
var userA = {
  userId: '12345',
  companyId: '67890'
  metadata: {
    email: 'john@acmeinc.com',
    firstName: 'John',
    lastName: 'Doe',
    title: 'Software Engineer',
    salesInfo: {
        stage: 'Customer',
        lifetimeValue: 24000,
        accountOwner: 'mary@contoso.com',
    },
  }
};

var userB = {
  userId: '67890',
  companyId: '67890'
  metadata: {
    email: 'mary@contoso.com',
    firstName: 'Mary',
    lastName: 'Jane',
    title: 'Software Engineer',
    salesInfo: {
        stage: 'Customer',
        lifetimeValue: 24000,
        accountOwner: 'mary@contoso.com',
    },
  }
};

var users = [
  new moesifapi.UserModel(userA),
  new moesifapi.UserModel(userB)
];

// 4. Send batch of users
apiClient.updateUsersBatch(users, function(error, response, context) {
  // Do Something
});
from moesifapi.moesif_api_client import *
from moesifapi.models import *

api_client = MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").api

userA = {
  'user_id': '12345',
  'company_id': '67890', # If set, associate user with a company object
  'metadata': {
    'email': 'john@acmeinc.com',
    'first_name': 'John',
    'last_name': 'Doe',
    'title': 'Software Engineer',
    'sales_info': {
        'stage': 'Customer',
        'lifetime_value': 24000,
        'account_owner': 'mary@contoso.com'
    },
  }
}

userB = {
  'user_id': '54321',
  'company_id': '67890', # If set, associate user with a company object
  'metadata': {
    'email': 'mary@acmeinc.com',
    'first_name': 'Mary',
    'last_name': 'Jane',
    'title': 'Software Engineer',
    'sales_info': {
        'stage': 'Customer',
        'lifetime_value': 48000,
        'account_owner': 'mary@contoso.com'
    },
  }
}
update_users = api_client.update_users_batch([userA, userB])
api_client = MoesifApi::MoesifAPIClient.new('YOUR_COLLECTOR_APPLICATION_ID').api

users = []

metadata => {
  :email => 'john@acmeinc.com',
  :first_name => 'John',
  :last_name => 'Doe',
  :title => 'Software Engineer',
  :salesInfo => {
      :stage => 'Customer',
      :lifetime_value => 24000,
      :accountOwner => 'mary@contoso.com',
  }
}

# Only user_id is required.
# metadata can be any custom object
user = UserModel.new()
user.user_id = "12345"
user.company_id = "67890" # If set, associate user with a company object
user.metadata = metadata

users << user

api_client = api_controller.update_users_batch(user_model)
<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.
require_once "vendor/autoload.php";

use MoesifApi\MoesifApiClient;
$apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID")->getApi();

// metadata can be any custom object
$userA->metadata = array(
        "email" => "john@acmeinc.com",
        "first_name" => "John",
        "last_name" => "Doe",
        "title" => "Software Engineer",
        "sales_info" => array(
            "stage" => "Customer",
            "lifetime_value" => 24000,
            "account_owner" => "mary@contoso.com"
        )
    );

$userA = new Models\UserModel();
$userA->userId = "12345";
$userA->companyId = "67890"; // If set, associate user with a company object
$userA->metadata = $metadata;

// metadata can be any custom object
$userB->metadata = array(
        "email" => "mary@acmeinc.com",
        "first_name" => "Mary",
        "last_name" => "Jane",
        "title" => "Software Engineer",
        "sales_info" => array(
            "stage" => "Customer",
            "lifetime_value" => 24000,
            "account_owner" => "mary@contoso.com"
        )
    );

$userB = new Models\UserModel();
$userB->userId = "12345";
$userB->companyId = "67890"; // If set, associate user with a company object
$userB->metadata = $metadata;

$users = array($userA, $userB)
$apiClient->updateUsersBatch($user);
import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

// List of Users
var users []*models.UserModel

// metadata can be any custom dictionary
metadata := map[string]interface{}{
  "email", "john@acmeinc.com",
  "first_name", "John",
  "last_name", "Doe",
  "title", "Software Engineer",
  "sales_info", map[string]interface{}{
      "stage", "Customer",
      "lifetime_value", 24000,
      "account_owner", "mary@contoso.com",
  },
}

// Only UserId is required
userA := models.UserModel{
  UserId:  "12345",
  CompanyId:  "67890", // If set, associate user with a company object
  Metadata:  &metadata,
}

users = append(users, &userA)

// Queue the user asynchronously
err := apiClient.QueueUsers(&users)

// Update the user synchronously
err := apiClient.UpdateUsersBatch(&users)
var apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID").Api;;

var users = new List<UserModel>();

var metadataA = new Dictionary<string, object>
{
    {"email", "john@acmeinc.com"},
    {"first_name", "John"},
    {"last_name", "Doe"},
    {"title", "Software Engineer"},
    {"sales_info", new Dictionary<string, object> {
        {"stage", "Customer"},
        {"lifetime_value", 24000},
        {"account_owner", "mary@contoso.com"}
    }
};

// Only user_id is required
var userA = new UserModel()
{
    UserId = "12345",
  CompanyId = "67890", // If set, associate user with a company object
    Metadata = metadataA
};

var metadataB = new Dictionary<string, object>
{
    {"email", "mary@acmeinc.com"},
    {"first_name", "Mary"},
    {"last_name", "Jane"},
    {"title", "Software Engineer"},
    {"sales_info", new Dictionary<string, object> {
        {"stage", "Customer"},
        {"lifetime_value", 24000},
        {"account_owner", "mary@contoso.com"}
    }
};

// Only user_id is required
var userB = new UserModel()
{
    UserId = "54321",
  CompanyId = "67890",
    Metadata = metadataA
};


users.Add(userA);
users.Add(userB);

// Update the users asynchronously
await apiClient.UpdateUsersBatchAsync(users);

// Update the users synchronously
apiClient.UpdateUsersBatch(users);
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID");

List<UserModel> users = new ArrayList<UserModel>();

UserModel userA = new UserBuilder()
        .userId("12345")
        .companyId("67890")
        .metadata(APIHelper.deserialize("{" +
            "\"email\": \"johndoe@acmeinc.com\"," +
            "\"first_name\": \"John\"," +
            "\"last_name\": \"Doe\"," +
            "\"title\": \"Software Engineer\"," +
            "\"sales_info\": {" +
                "\"stage\": \"Customer\"," +
                "\"lifetime_value\": 24000," +
                "\"account_owner\": \"mary@contoso.com\"" +
              "}" +
            "}"))
        .build();
users.add(userA);

UserModel userB = new UserBuilder()
        .userId("54321")
        .companyId("67890")
        .metadata(APIHelper.deserialize("{" +
            "\"email\": \"johndoe@acmeinc.com\"," +
            "\"first_name\": \"John\"," +
            "\"last_name\": \"Doe\"," +
            "\"title\": \"Software Engineer\"," +
            "\"sales_info\": {" +
                "\"stage\": \"Customer\"," +
                "\"lifetime_value\": 24000," +
                "\"account_owner\": \"mary@contoso.com\"" +
              "}" +
            "}"))
        .build();
users.add(userB);

// Asynchronous call to update users
APICallBack<Object> callBack = new APICallBack<Object>() {
    public void onSuccess(HttpContext context, Object response) {
      // Do something
    }

    public void onFailure(HttpContext context, Throwable error) {
      // Do something else
    }
};

// Asynchronous call to update users
client.getAPI().updateUsersBatchAsync(users, callBack);


// Synchronous call to update users
client.getAPI().updateUsersBatch(users);
Since this is a client side SDK, you cannot save a batch of users with moesif-browser-js.

User id

Users in Moesif are identified via a user_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like email addresses or usernames. The user_id matches the identifyUser hook in your API monitoring agent.

Users can also be associated to a company by setting the company_id field when you update a user. This enables tracking API usage for individual users along with account-level usage.

Name Type Required Description
user_id string true The unique identifier for this user.
company_id string false Associate the user with a company (Helpful for B2B companies).
session_token string false Associate this user with a new API key/session token. This field is append only meaning when you set this field, previously set tokens are not removed.
modified_time string(date-time) false Last modified time of user profile. Set automatically by Moesif if not provided.
ip_address string false Set the user's last known ip address. Moesif sets this automatically from the user's most recent API activity if not provided.
user_agent_string string false Set the user's last known user agent. Moesif sets this automatically from the user's most recent API activity if not provided.
campaign object false Referrer and UTM parameters to track effectiveness of your acquisition channels. Set automatically by moesif-browser-js, but not with server side SDKs.

utm_source

string false UTM parameter that identifies which site sent the traffic.

utm_medium

string false UTM parameter that identifies what type of link was used, such as cost per click or email.

utm_campaign

string false UTM parameter that identifies a specific product promotion or strategic campaign.

utm_term

string false UTM parameter that identifies search terms.

utm_content

string false UTM parameter that identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link.

referrer

string false The referring URI before your domain.

referring_domain

string false The referring domain of the page that linked to your domain.

gclid

string false Google click Identifier to track Google Ads.
metadata object false An object containing user demographics or other properties you want to store with this profile.

Companies

Update a Company

POST https://api.moesif.net/v1/companies

Updates a company profile in Moesif. A company is your direct customer paying for your service. A company can have one or more users and one or more subscriptions. More info on the Moesif data model.

You can save custom properties to a company via the metadata object. While optional, it's also recommended to set the company_domain. When set, Moesif will enrich the company with publicly available information.

If company does not exist, a new one will be created. If a company exists, it will be merged on top of existing fields. Any new field set will override the existing fields. This is done via recursive merge which merges inner objects.

Create vs update

If the company does not exist, Moesif will create a new one.

If a company exists, the new company properties will be merged with the existing properties recursively. This means you don't need to resend the entire company object if you are only updating a single field.

If you call both identifyUser() and identifyCompany() in the same session, then Moesif will automatically associate the user with the company.
POST https://api.moesif.net/v1/companies

Example Request
{
  "company_id": "12345",
  "company_domain": "acmeinc.com",
  "metadata": {
    "org_name": "Acme, Inc",
    "plan_name": "Free",
    "deal_stage": "Lead",
    "mrr": 24000,
    "demographics": {
      "alexa_ranking": 500000,
      "employee_count": 47
    }
  }
}
# You can also use wget
curl -X POST https://api.moesif.net/v1/companies \
  -d '{"company_id":"12345","company_domain":"acmeinc.com","metadata":{"org_name":"Acme, Inc","plan_name":"Free","deal_stage":"Lead","mrr":24000,"demographics":{"alexa_ranking":500000,"employee_count":47}}}' \
  -H 'Accept: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'
var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";


// Only companyId is required.
// metadata can be any custom object
var company = {
  companyId: '67890',
  companyDomain: 'acmeinc.com', // If domain is set, Moesif will enrich your profiles with publicly available info 
  metadata: {
    orgName: 'Acme, Inc',
    planName: 'Free Plan',
    dealStage: 'Lead',
    mrr: 24000,
    demographics: {
      alexaRanking: 500000,
      employeeCount: 47
    }
  }
};

apiClient.updateCompany(company, function(error, response, context) {
  // Do Something
});
from moesifapi.moesif_api_client import *
from moesifapi.models import *

api_client = MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").api

# Only company_id is required.
# metadata can be any custom object
company = {
  'company_id': '12345',
  'company_domain': 'acmeinc.com', # If domain is set, Moesif will enrich your profiles with publicly available info 
  'metadata': {
    'org_name': 'Acme, Inc',
    'plan_name': 'Free',
    'deal_stage': 'Lead',
    'mrr': 24000,
    'demographics': {
        'alexa_ranking': 500000,
        'employee_count': 47
    },
  }
}

update_company = api_client.update_company(company)
api_client = MoesifApi::MoesifAPIClient.new('YOUR_COLLECTOR_APPLICATION_ID').api

metadata => {
  :org_name => 'Acme, Inc',
  :plan_name => 'Free',
  :deal_stage => 'Lead',
  :mrr => 24000,
  :demographics => {
      :alexa_ranking => 500000,
      :employee_count => 47
  }
}

# Only company_id is required.
# metadata can be any custom object
company = CompanyModel.new()
company.company_id = "67890"
company.company_domain = "acmeinc.com" # If domain is set, Moesif will enrich your profiles with publicly available info 
company.metadata = metadata

update_company = api_client.update_company(company)
<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.

require_once "vendor/autoload.php";

use MoesifApi\MoesifApiClient;
$apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID")->getApi();


$company = new Models\CompanyModel();
$company->companyId = "67890";
$company->companyDomain = "acmeinc.com";

// metadata can be any custom object
$company->metadata = array(
        "org_name" => "Acme, Inc",
        "plan_name" => "Free",
        "deal_stage" => "Lead",
        "mrr" => 24000,
        "demographics" => array(
            "alexa_ranking" => 500000,
            "employee_count" => 47
        )
    );

$apiClient->updateCompany($company);
import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

// metadata can be any custom dictionary
metadata := map[string]interface{}{
  "org_name", "Acme, Inc",
  "plan_name", "Free",
  "deal_stage", "Lead",
  "mrr", 24000,
  "demographics", map[string]interface{}{
      "alexa_ranking", 500000,
      "employee_count", 47,
  },
}

// Prepare company model
company := models.CompanyModel{
    CompanyId:        "67890",  // The only required field is your company id
    CompanyDomain:    "acmeinc.com", // If domain is set, Moesif will enrich your profiles with publicly available info 
    Metadata:         &metadata,
}

// Queue the company asynchronously
apiClient.QueueCompany(&company)

// Update the company synchronously
err := apiClient.UpdateCompany(&company)
var apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID").Api;;

// metadata can be any custom dictionary
var metadata = new Dictionary<string, object>
{
    {"org_name", "Acme, Inc"},
    {"plan_name", "Free"},
    {"deal_stage", "Lead"},
    {"mrr", 24000},
    {"demographics", new Dictionary<string, object> {
        {"alexa_ranking", 500000},
        {"employee_count", 47}
    }
};

// Only company id is required
var company = new CompanyModel()
{
  CompanyId = "67890",
  CompanyDomain = "acmeinc.com", // If domain is set, Moesif will enrich your profiles with publicly available info 
    Metadata = metadata
};

// Update the company asynchronously
await apiClient.UpdateCompanyAsync(company);

// Update the company synchronously
apiClient.UpdateCompany(company);
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").Api;

// Only companyId is required
// metadata can be any custom object
CompanyModel company = new CompanyBuilder()
    .companyId("67890")
    .companyDomain("acmeinc.com") // If set, Moesif will enrich your profiles with publicly available info 
    .metadata(APIHelper.deserialize("{" +
        "\"org_name\": \"Acme, Inc\"," +
        "\"plan_name\": \"Free\"," +
        "\"deal_stage\": \"Lead\"," +
        "\"mrr\": 24000," +
        "\"demographics\": {" +
            "\"alexa_ranking\": 500000," +
            "\"employee_count\": 47" +
          "}" +
        "}"))
    .build();

// Asynchronous Call to update company
client.getAPI().updateCompanyAsync(company, callBack);

// Synchronous Call to update company
client.getAPI().updateCompany(company, callBack);
var moesif = require('moesif-browser-js');

moesif.init({
  applicationId: 'YOUR_COLLECTOR_APPLICATION_ID'
  // add other option here.
});

// Only the first argument is a string containing the company id. 
// This is the only required field. 
//
// The second argument is a object used to store a company info like plan, 
// MRR, and company demographics.
// 
// The third argument is a string containing company website or email domain. 
// If set, Moesif will enrich your profiles with publicly available info.  
metadata = {
  orgName: 'Acme, Inc',
  planName: 'Free Plan',
  dealStage: 'Lead',
  mrr: 24000,
  demographics: {
    alexaRanking: 500000,
    employeeCount: 47
  }
};

moesif.identifyCompany('67890', metadata, 'acmeinc.com');

Company ids

Users in Moesif are identified via a company_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like website domain or company name. The company_id matches the identifyCompany hook in your API monitoring agent.

Users can also be associated to a company by setting the company_id field when you update a user. This enables tracking API usage for individual users along with account-level usage.

Name Type Required Description
company_id string true The unique identifier for this company.
company_domain string false If set, Moesif will enrich your company profile with publicly available info
session_token string false Associate this company with a new API key/session token. This field is append only meaning when you set this field, previously set tokens are not removed.
modified_time string(date-time) false Last modified time of company profile. Set automatically by Moesif if not provided.
ip_address string false Set the company's last known ip address. Moesif sets this automatically from the user's most recent API activity if not provided.
campaign object false Referrer and UTM parameters to track effectiveness of your acquisition channels. Set automatically by moesif-browser-js, but not with server side SDKs

utm_source

string false UTM parameter that identifies which site sent the traffic

utm_medium

string false UTM parameter that identifies what type of link was used, such as cost per click or email.

utm_campaign

string false UTM parameter that identifies a specific product promotion or strategic campaign.

utm_term

string false UTM parameter that identifies search terms.

utm_content

string false UTM parameter that identifies what specifically was clicked to bring the company to the site, such as a banner ad or a text link.

referrer

string false The referring URI before your domain.

referring_domain

string false The referring domain of the page that linked to your domain.

gclid

string false Google click Identifier to track Google Ads
metadata object false An object containing company demographics or other properties you want to store with this profile.

Update Companies in Batch

POST https://api.moesif.net/v1/companies/batch

Updates a list of companies profile in Moesif.

A custom JSON object can be placed in the metadata object of each company which will be stored as part of the company profile.

A company is your direct customer paying for your service. A company can have one or more users and one or more subscriptions. More info on the Moesif data model.

You can save custom properties to a company via the metadata object. While optional, it's also recommended to set the company_domain. When set, Moesif will enrich the company with publicly available information.

If company does not exist, a new one will be created. If a company exists, it will be merged on top of existing fields. Any new field set will override the existing fields. This is done via recursive merge which merges inner objects.

POST https://api.moesif.net/v1/companies/batch

Example Request
[
  {
    "company_id": "12345",
    "company_domain": "acmeinc.com",
    "metadata": {
      "org_name": "Acme, Inc",
      "plan_name": "Free",
      "deal_stage": "Lead",
      "mrr": 24000,
      "demographics": {
        "alexa_ranking": 500000,
        "employee_count": 47
      }
    }
  },
  {
    "company_id": "54321",
    "company_domain": "contoso.com",
    "metadata": {
      "org_name": "Contoso, Inc",
      "plan_name": "Paid",
      "deal_stage": "Lead",
      "mrr": 48000,
      "demographics": {
        "alexa_ranking": 500000,
        "employee_count": 47
      }
    }
  }
]
# You can also use wget
curl -X POST https://api.moesif.net/v1/companies/batch \
  -d '[{"company_id":"12345","company_domain":"acmeinc.com","metadata":{"org_name":"Acme, Inc","plan_name":"Free","deal_stage":"Lead","mrr":24000,"demographics":{"alexa_ranking":500000,"employee_count":47}}},{"company_id":"54321","company_domain":"contoso.com","metadata":{"org_name":"Contoso, Inc","plan_name":"Paid","deal_stage":"Lead","mrr":48000,"demographics":{"alexa_ranking":500000,"employee_count":47}}}]' \
  -H 'Accept: application/json' \
  -H 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID'
var moesifapi = require('moesifapi');
var apiClient = moesifapi.ApiController;

moesifapi.configuration.ApplicationId = "YOUR_COLLECTOR_APPLICATION_ID";


// Only companyId is required.
// metadata can be any custom object
var companies = [{
    companyId: '67890',
    companyDomain: 'acmeinc.com', // If domain is set, Moesif will enrich your profiles with publicly available info 
    metadata: {
      orgName: 'Acme, Inc',
      planName: 'Free Plan',
      dealStage: 'Lead',
      mrr: 24000,
      demographics: {
        alexaRanking: 500000,
        employeeCount: 47
      }
    }
  },
  {
    companyId: '09876',
    companyDomain: 'contoso.com', // If domain is set, Moesif will enrich your profiles with publicly available info 
    metadata: {
      orgName: 'Contoso, Inc',
      planName: 'Paid Plan',
      dealStage: 'Lead',
      mrr: 48000,
      demographics: {
        alexaRanking: 500000,
        employeeCount: 53
      }
    }
  }
]

apiClient.updateCompanies(companies, function(error, response, context) {
  // Do Something
});
from moesifapi.moesif_api_client import *
from moesifapi.models import *

api_client = MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").api

# Only company_id is required.
# metadata can be any custom object
companies = [{
  'company_id': '67890',
  'company_domain': 'acmeinc.com', # If domain is set, Moesif will enrich your profiles with publicly available info 
  'metadata': {
    'org_name': 'Acme, Inc',
    'plan_name': 'Free',
    'deal_stage': 'Lead',
    'mrr': 24000,
    'demographics': {
        'alexa_ranking': 500000,
        'employee_count': 47
    },
  }
},
{
  'company_id': '09876',
  'company_domain': 'contoso.com', # If domain is set, Moesif will enrich your profiles with publicly available info 
  'metadata': {
    'org_name': 'Contoso, Inc',
    'plan_name': 'Paid',
    'deal_stage': 'Lead',
    'mrr': 48000,
    'demographics': {
        'alexa_ranking': 500000,
        'employee_count': 53
    },
  }
}]

update_company = api_client.update_companies(companies)
api_client = MoesifApi::MoesifAPIClient.new('YOUR_COLLECTOR_APPLICATION_ID').api

companies = []

metadata => {
  :org_name => 'Acme, Inc',
  :plan_name => 'Free',
  :deal_stage => 'Lead',
  :mrr => 24000,
  :demographics => {
      :alexa_ranking => 500000,
      :employee_count => 47
  }
}

# Only company_id is required.
# metadata can be any custom object
company = CompanyModel.new()
company.company_id = "67890"
company.company_domain = "acmeinc.com" # If domain is set, Moesif will enrich your profiles with publicly available info 
company.metadata = metadata

companies << company

update_company = api_client.update_companies(companies)
<?php
// Depending on your project setup, you might need to include composer's
// autoloader in your PHP code to enable autoloading of classes.

require_once "vendor/autoload.php";

use MoesifApi\MoesifApiClient;
$apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID")->getApi();

$companyA = new Models\CompanyModel();
$companyA->companyId = "67890";
$companyA->companyDomain = "acmeinc.com";

// metadata can be any custom object
$companyB->metadata = array(
        "org_name" => "Acme, Inc",
        "plan_name" => "Free",
        "deal_stage" => "Lead",
        "mrr" => 24000,
        "demographics" => array(
            "alexa_ranking" => 500000,
            "employee_count" => 47
        )
    );

$companyB = new Models\CompanyModel();
$companyB->companyId = "67890";
$companyB->companyDomain = "acmeinc.com";

// metadata can be any custom object
$companyB->metadata = array(
        "org_name" => "Acme, Inc",
        "plan_name" => "Free",
        "deal_stage" => "Lead",
        "mrr" => 24000,
        "demographics" => array(
            "alexa_ranking" => 500000,
            "employee_count" => 47
        )
    );

$companies = array($companyA, $companyB)
$apiClient->updateCompaniesBatch(array($companies));
import "github.com/moesif/moesifapi-go"
import "github.com/moesif/moesifapi-go/models"

apiClient := moesifapi.NewAPI("YOUR_COLLECTOR_APPLICATION_ID")

// List of Companies
var companies []*models.CompanyModel

// metadata can be any custom dictionary
metadata := map[string]interface{}{
  "org_name", "Acme, Inc",
  "plan_name", "Free",
  "deal_stage", "Lead",
  "mrr", 24000,
  "demographics", map[string]interface{}{
      "alexa_ranking", 500000,
      "employee_count", 47,
  },
}

// Prepare company model
companyA := models.CompanyModel{
    CompanyId:        "67890",  // The only required field is your company id
    CompanyDomain:  "acmeinc.com", // If domain is set, Moesif will enrich your profiles with publicly available info 
    Metadata:           &metadata,
}

companies = append(companies, &companyA)

// Queue the company asynchronously
apiClient.QueueCompanies(&companies)

// Update the company synchronously
err := apiClient.UpdateCompaniesBatch(&companies)
var apiClient = new MoesifApiClient("YOUR_COLLECTOR_APPLICATION_ID").Api;;

var companies = new List<CompanyModel>();

// metadata can be any custom dictionary
var metadataA = new Dictionary<string, object>
{
    {"org_name", "Acme, Inc"},
    {"plan_name", "Free"},
    {"deal_stage", "Lead"},
    {"mrr", 24000},
    {"demographics", new Dictionary<string, object> {
        {"alexa_ranking", 500000},
        {"employee_count", 47}
    }
};

// Only company id is required
var companyA = new CompanyModel()
{
  CompanyId = "67890",
  CompanyDomain = "acmeinc.com", // If domain is set, Moesif will enrich your profiles with publicly available info 
    Metadata = metadata
};

// metadata can be any custom dictionary
var metadataB = new Dictionary<string, object>
{
    {"org_name", "Contoso, Inc"},
    {"plan_name", "Paid"},
    {"deal_stage", "Lead"},
    {"mrr", 48000},
    {"demographics", new Dictionary<string, object> {
        {"alexa_ranking", 500000},
        {"employee_count", 53}
    }
};

// Only company id is required
var companyB = new CompanyModel()
{
  CompanyId = "09876",
  CompanyDomain = "contoso.com", // If domain is set, Moesif will enrich your profiles with publicly available info 
    Metadata = metadata
};


companies.Add(companyA);
companies.Add(companyB);

// Update the companies asynchronously
await apiClient.UpdateCompaniesBatchAsync(companies);

// Update the companies synchronously
apiClient.UpdateCompaniesBatch(companies);
MoesifAPIClient client = new MoesifAPIClient("YOUR_COLLECTOR_APPLICATION_ID").Api;

// Only companyId is required
// metadata can be any custom object
CompanyModel company = new CompanyBuilder()
    .companyId("67890")
    .companyDomain("acmeinc.com") // If set, Moesif will enrich your profiles with publicly available info 
    .metadata(APIHelper.deserialize("{" +
        "\"org_name\": \"Acme, Inc\"," +
        "\"plan_name\": \"Free\"," +
        "\"deal_stage\": \"Lead\"," +
        "\"mrr\": 24000," +
        "\"demographics\": {" +
            "\"alexa_ranking\": 500000," +
            "\"employee_count\": 47" +
          "}" +
        "}"))
    .build();

// Create a batch of companies
List<EventModel> events = new ArrayList<CompanyModel>();
events.add(company);

// Asynchronous Call to update companies
client.getAPI().updateCompaniesBatchAsync(companies, callBack);

// Synchronous Call to update companies
client.getAPI().updateCompaniesBatch(companies);
Since this is a client side SDK, you cannot save a batch of companies with moesif-browser-js.

Company ids

Users in Moesif are identified via a company_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like website domain or company name. The company_id matches the identifyCompany hook in your API monitoring agent.

Users can also be associated to a company by setting the company_id field when you update a user. This enables tracking API usage for individual users along with account-level usage.

Name Type Required Description
company_id string true The unique identifier for this company.
company_domain string false If set, Moesif will enrich your company profile with publicly available info
session_token string false Associate this company with a new API key/session token. This field is append only meaning when you set this field, previously set tokens are not removed.
modified_time string(date-time) false Last modified time of company profile. Set automatically by Moesif if not provided.
ip_address string false Set the company's last known ip address. Moesif sets this automatically from the user's most recent API activity if not provided.
campaign object false Referrer and UTM parameters to track effectiveness of your acquisition channels. Set automatically by moesif-browser-js, but not with server side SDKs

utm_source

string false UTM parameter that identifies which site sent the traffic

utm_medium

string false UTM parameter that identifies what type of link was used, such as cost per click or email.

utm_campaign

string false UTM parameter that identifies a specific product promotion or strategic campaign.

utm_term

string false UTM parameter that identifies search terms.

utm_content

string false UTM parameter that identifies what specifically was clicked to bring the company to the site, such as a banner ad or a text link.

referrer

string false The referring URI before your domain.

referring_domain

string false The referring domain of the page that linked to your domain.

gclid

string false Google click Identifier to track Google Ads
metadata object false An object containing company demographics or other properties you want to store with this profile.

Subscriptions

Update a Subscription

POST https://api.moesif.net/v1/subscriptions

Updates a subscription for a subscription in Moesif. A subscription represents a single plan a customer is subscribed to and paying for. A company can have one or more subscriptions. Any custom subscription properties can be stored via the metadata object.

Create vs update

If the subscription does not exist, Moesif will create a new one.

If a subscription exists, the new subscription properties will be merged with the existing properties recursively. This means you don't need to resend the entire subscription object if you are only updating a single field.

POST https://api.moesif.net/v1/subscriptions

Example Request
{
    "subscription_id": "12345", // Subscription Id
    "company_id": "67890", // Company Id
    "current_period_start": "2024-10-21T17:32:28.000Z",
    "current_period_end": "2024-11-21T17:32:28.000Z",
    "status": "active",
    "metadata": {
        "subscription_type": "PAYG",
        "subscription_tier": "Pro",
        "quota": {
            "quota_limit": 1000000,
            "quota_period": "Year"
        }
    }
}
# You can also use wget
curl --location 'https://api.moesif.net/v1/subscriptions' \
--header 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID' \
--header 'Content-Type: application/json' \
--data '{
    "subscription_id": "12345",
    "company_id": "67890",
    "current_period_start": "2024-10-21T17:32:28.000Z",
    "current_period_end": "2024-11-21T17:32:28.000Z",
    "status": "active",
    "metadata": {
        "subscription_type": "PAYG",
        "subscription_tier": "Pro",
        "quota": {
            "quota_limit": 1000000,
            "quota_period": "YEAR"
        }
    }
}'

Subscription ids

Subscriptions in Moesif are identified via a subscription_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like website domain or subscription name.

Name Type Required Description
subscription_id string true The unique identifier for this subscription.
company_id string true The unique identifier for the company this subscription should be associated with.
current_period_start string(date-time) false The start time of the current billing term. This can be yearly, monthly, or other billing term. Required for quota and billing management.
current_period_end string(date-time) false The end time of the current billing term. This can be yearly, monthly, or other billing term. Required for quota and billing management.
status string true One of [active, cancelled, paused, trialing, pending, draft, future]. This can be used to drive governance rules that the subscription status in Moesif such as blocking access to cancelled subscriptions.
metadata object false An object containing subscription demographics or other properties you want to store with this profile.
items object[] false An array of items, each item represents an plan or price that the customer is subscribed to. See schema for subscription items below.
items (Subscription Items)
Name Type Required Description
plan_id string true The unique identifier the plan the customer subscribed to.
subscription_item_id string false The unique identifier for this item instance if available
price_id string false The unique identify for the price the customer subscribed to.
unit_of_measure string false the unit of measure.
created_at string(date-time) false When this item is created.
metadata object false An object containing additional data

Update Subscriptions in Batch

POST https://api.moesif.net/v1/subscriptions/batch

Updates a list of subscriptions profile in Moesif.

A custom JSON object can be placed in the metadata object of each subscription which will be stored as part of the subscription profile.

If subscription does not exist, a new one will be created. If a subscription exists, it will be merged on top of existing fields. Any new field set will override the existing fields. This is done via recursive merge which merges inner objects.

POST https://api.moesif.net/v1/subscriptions/batch

Example Request
[
  {
    "subscription_id": "12345", // Subscription Id
    "company_id": "67890", // Company Id
    "current_period_start": "2024-10-21T17:32:28.000Z",
    "current_period_end": "2024-11-21T17:32:28.000Z",
    "status": "active",
    "items": [{
      "plan_id": "my_custom_plan"
    }],
    "metadata": {
        "subscription_type": "PAYG",
        "subscription_tier": "Pro",
        "quota": {
            "quota_limit": 1000000,
            "quota_period": "Year"
        }
    }
},
{
    "subscription_id": "abcde", // Subscription Id
    "company_id": "xyz", // Company Id
    "current_period_start": "2024-10-21T17:32:28.000Z",
    "current_period_end": "2024-11-21T17:32:28.000Z",
    "status": "active",
    "metadata": {
        "subscription_type": "PAYG",
        "subscription_tier": "Enterprise",
        "quota": {
            "quota_limit": 1000000,
            "quota_period": "YEAR"
        }
    }
}
]
# You can also use wget
curl --location 'https://api.moesif.net/v1/subscriptions/batch' \
--header 'X-Moesif-Application-Id: YOUR_COLLECTOR_APPLICATION_ID' \
--header 'Content-Type: application/json' \
--data '[{
    "subscription_id": "12345",
    "company_id": "67890",
    "current_period_start": "2024-10-21T17:32:28.000Z",
    "current_period_end": "2024-11-21T17:32:28.000Z",
    "status": "active",
    "items": [{
      "plan_id": "my_custom_plan"
    }],
    "metadata": {
        "subscription_type": "PAYG",
        "subscription_tier": "Pro",
        "quota": {
            "quota_limit": 1000000,
            "quota_period": "YEAR"
        }
    }
}]'

Subscription ids

Subscriptions in Moesif are identified via a subscription_id and should be a permanent and robust identifier, like a database id. We recommend not using values that can change like website domain or subscription name.

Name Type Required Description
subscription_id string true The unique identifier for this subscription.
company_id string true The unique identifier for the company this subscription should be associated with.
current_period_start string(date-time) false The start time of the current billing term. This can be yearly, monthly, or other billing term. Required for quota and billing management.
current_period_end string(date-time) false The end time of the current billing term. This can be yearly, monthly, or other billing term. Required for quota and billing management.
status string false One of [active, cancelled, paused, trialing, pending, draft, future]. This can be used to drive governance rules that the subscription status in Moesif such as blocking access to cancelled subscriptions.
metadata object false An object containing subscription demographics or other properties you want to store with this profile.
items object[] false An array of items, each item represents an plan or price that the customer is subscribed to. See schema for items above.

Config

Get Config

GET https://api.moesif.net/v1/config

Retrieves the configuration for governance rules and dynamic sampling rules.

POST https://api.moesif.net/v1/config

Example Response
{
    "sample_rate": 100,
    "user_sample_rate": {},
    "company_sample_rate": { },
    "user_rules": { },
    "company_rules": {  },
    "regex_config": [
        {
            "conditions": [
                {
                    "path": "request.route",
                    "value": "/health/.*"
                }
            ],
            "sample_rate": 0
        }
    ]
}

Get Rules

GET https://api.moesif.net/v1/rules

Retrieves the set of rules for quotas and behavior rules to block users/companies.

POST https://api.moesif.net/v1/rules

Example Response
[
    {
        "_id": "64ca685a833073c6b41b15f3",
        "created_at": "2024-10-01T00:00:00.000",
        "name": "Block Free Users who Exceeded their Monthly Quota",
        "block": true,
        "type": "user",
        "variables": [
            {
                "name": "0",
                "path": "body.plan_name"
            },
            {
                "name": "1",
                "path": "body.quota_amount"
            }
        ],
        "regex_config": [],
        "response": {
            "status": 429,
            "headers": {
                "X-Rate-Limit-Month": "{{1}}"
            },
            "body": {
                "error_code": "too_many_requests",
                "message": "You exceeded your monthly quota of {{1}} for the {{0}} plan. Please upgrade your plan."
            }
        }
    }
]

Management API v1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Management API to query data in Moesif. You can use the management API to export data for custom reports or to build custom dashboards.

Base URLs:

If you're using the Moesif secure proxy, the base URL is http://localhost:9500/api/v1 assuming it's running on port 9500.

Terms of service

Authentication

Authorization: Bearer YOUR_MANAGEMENT_API_KEY

- Flow: password

- Token URL = https://api.moesif.com/v1/:orgId/oauth/access_tokens

Scope Scope Description
create:encrypted_keys Create encrypted Keys for the Moesif secure proxy
delete:dashboards Delete existing dashboards
update:dashboards Update existing dashboards
create:dashboards Create a new team dashboard that can be shared
read:public_workspaces Read public workspaces/shared links
read:virtual_eventtypes Read existing virtual events/tags
update:companies Update existing companies and associated company metadata
create:companies Create new companies and associated company metadata
create:reports Create a new report such as SmartDiff
delete:workspaces Delete existing workspaces
create:workspaces Create a new workspace/chart that can be shared
read:workspaces Read existing workspaces
update:virtual_eventtypes Update existing virtual events/tags
create:cohorts Save new customer cohorts
delete:encrypted_keys Delete encrypted Keys for the Moesif secure proxy
read:dashboards Read existing dashboards
read:events Read/query events and associated event metadata
create:events Create new events and associated event metadata
read:cohorts Read previously saved customer cohorts
read:encrypted_keys Read encrypted Keys for the Moesif secure proxy
update:apps Update an existing application
update:encrypted_keys Update encrypted Keys for the Moesif secure proxy
update:organizations Update an existing application
create:access_tokens Create new tokens to access the Management API or Collector API
create:users Create new users and associated user metadata
create:apps Create a new application/project under the organization
update:workspaces Update existing workspaces
delete:cohorts Delete previously saved customer cohorts
read:users Read/query users and associated user metadata
delete:virtual_eventtypes Delete existing virtual events/tags
read:reports Read reports such as SmartDiff
delete:reports Delete existing reports such as SmartDiff
update:users Update existing users and associated user metadata
update:cohorts Update previously saved customer cohorts
read:companies Read/query companies and associated company metadata
create:virtual_eventtypes Create virtual events/tags
delete:apps Delete an existing application
delete:companies Delete existing companies and associated company metadata
read:apps Read the organization's applications
create:eth_abi Create/upload new Ethereum ABI Entries
delete:users Delete existing users and associated user metadata

Companies

updateCompanies

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/companies \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}' 
const fetch = require('node-fetch');
const inputBody = {
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/companies',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}

r = requests.post('https://api.moesif.com/v1/search/~/companies', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}')

result = RestClient.post 'https://api.moesif.com/v1/search/~/companies',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/companies', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/companies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/companies";

      string json = @"{
  ""company_id"": ""string"",
  ""modified_time"": ""2024-04-11T04:01:35.090Z"",
  ""session_token"": ""string"",
  ""company_domain"": ""string"",
  ""metadata"": {}
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CompanyUpdate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CompanyUpdate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/companies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/companies

Update a Company

POST https://api.moesif.com/v1/search/~/companies

Example Request

{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}

Parameters

Name In Type Required Description
body body CompanyUpdate true none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

batchUpdateCompanies

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/companies/batch \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]' 
const fetch = require('node-fetch');
const inputBody = [
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/companies/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = [
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]

r = requests.post('https://api.moesif.com/v1/search/~/companies/batch', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]')

result = RestClient.post 'https://api.moesif.com/v1/search/~/companies/batch',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/companies/batch', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/companies/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/companies/batch";

      string json = @"[
  {
    ""company_id"": ""string"",
    ""modified_time"": ""2024-04-11T04:01:35.090Z"",
    ""session_token"": ""string"",
    ""company_domain"": ""string"",
    ""metadata"": {}
  }
]";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CompanyUpdate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CompanyUpdate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/companies/batch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/companies/batch

Update Companies in Batch

POST https://api.moesif.com/v1/search/~/companies/batch

Example Request

[
  {
    "company_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "session_token": "string",
    "company_domain": "string",
    "metadata": {}
  }
]

Parameters

Name In Type Required Description
body body CompanyUpdate true none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

getCompany

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/companies/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/companies/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/companies/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/companies/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/companies/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/companies/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/companies/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/companies/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/companies/{id}

Get a Company

GET https://api.moesif.com/v1/search/~/companies/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

deleteCompany

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/search/~/companies/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/companies/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/search/~/companies/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/search/~/companies/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/search/~/companies/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/search/~/companies/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/search/~/companies/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/companies/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /search/~/companies/{id}

Delete a Company

DELETE https://api.moesif.com/v1/search/~/companies/{id}

Parameters

Name In Type Required Description
id path string true none
delete_events query boolean false Delete events associated with the company which can be set to true or false(default)

Responses

Status Meaning Description Schema
200 OK success None

countCompanies

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/count/companies?app_id=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/count/companies?app_id=string',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/count/companies', params={
  'app_id': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/count/companies',
  params: {
  'app_id' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/count/companies', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/count/companies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/count/companies";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/count/companies?app_id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/count/companies

Count Companies

POST https://api.moesif.com/v1/search/~/count/companies

Example Request

false

Parameters

Name In Type Required Description

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

searchCompanyMetrics

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/search/companymetrics/companies \
  -H 'Content-Type: application/json' \
  -H 'Accept: 0' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'0',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/search/companymetrics/companies',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '0',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/search/companymetrics/companies', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '0',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/search/companymetrics/companies',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => '0',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/search/companymetrics/companies', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"0"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/search/companymetrics/companies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/search/companymetrics/companies";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/search/companymetrics/companies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'0');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/search/companymetrics/companies

Search CompanyMetrics/Companies

POST https://api.moesif.com/v1/search/~/search/companymetrics/companies

Example Request

false

Parameters

Name In Type Required Description
from query string(date-time) false The start date, which can be absolute such as 2023-07-01T00:00:00Z or relative such as -24h
to query string(date-time) false The end date, which can be absolute such as 2023-07-02T00:00:00Z or relative such as now

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

Subscriptions

getCompanySubscriptions

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/companies/{id}/subscriptions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/companies/{id}/subscriptions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/companies/{id}/subscriptions', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/companies/{id}/subscriptions',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/companies/{id}/subscriptions', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/companies/{id}/subscriptions")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/companies/{id}/subscriptions";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/companies/{id}/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/companies/{id}/subscriptions

Get the Subscriptions of a Company

GET https://api.moesif.com/v1/search/~/companies/{id}/subscriptions

Parameters

Name In Type Required Description
id path string true none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

createSubscription

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/subscriptions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/subscriptions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}

r = requests.post('https://api.moesif.com/v1/search/~/subscriptions', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}')

result = RestClient.post 'https://api.moesif.com/v1/search/~/subscriptions',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/subscriptions', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/subscriptions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/subscriptions";

      string json = @"{
  ""trial_start"": ""2024-04-11T04:01:35.090Z"",
  ""company_id"": ""string"",
  ""start_date"": ""2024-04-11T04:01:35.090Z"",
  ""collection_method"": ""string"",
  ""provider"": ""string"",
  ""items"": [
    {
      ""item_price_id"": ""string"",
      ""price_id"": ""string"",
      ""is_metered"": true,
      ""plan_id"": ""string"",
      ""unit_of_measure"": ""string"",
      ""status"": ""string"",
      ""subscription_item_id"": ""string""
    }
  ],
  ""current_period_start"": ""2024-04-11T04:01:35.090Z"",
  ""company_external_id"": ""string"",
  ""payment_status"": ""string"",
  ""cancel_time"": ""2024-04-11T04:01:35.090Z"",
  ""status"": ""string"",
  ""trial_end"": ""2024-04-11T04:01:35.090Z"",
  ""external_id"": ""string"",
  ""metadata"": {},
  ""subscription_id"": ""string"",
  ""version_id"": ""string"",
  ""current_period_end"": ""2024-04-11T04:01:35.090Z"",
  ""created"": ""2024-04-11T04:01:35.090Z""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(AddSubscription content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(AddSubscription content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/subscriptions

Create or Update a Subscription

POST https://api.moesif.com/v1/search/~/subscriptions

Example Request

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}

Parameters

Name In Type Required Description
body body AddSubscription true none

Example responses

200 Response

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "app_id": "string",
  "subscription_id": "string",
  "version_id": "string",
  "type": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "org_id": "string",
  "created": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
200 OK success Subscription

batchCreateSubscriptions

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/subscriptions/batch \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/subscriptions/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}

r = requests.post('https://api.moesif.com/v1/search/~/subscriptions/batch', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}')

result = RestClient.post 'https://api.moesif.com/v1/search/~/subscriptions/batch',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/subscriptions/batch', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/subscriptions/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/subscriptions/batch";

      string json = @"{
  ""trial_start"": ""2024-04-11T04:01:35.090Z"",
  ""company_id"": ""string"",
  ""start_date"": ""2024-04-11T04:01:35.090Z"",
  ""collection_method"": ""string"",
  ""provider"": ""string"",
  ""items"": [
    {
      ""item_price_id"": ""string"",
      ""price_id"": ""string"",
      ""is_metered"": true,
      ""plan_id"": ""string"",
      ""unit_of_measure"": ""string"",
      ""status"": ""string"",
      ""subscription_item_id"": ""string""
    }
  ],
  ""current_period_start"": ""2024-04-11T04:01:35.090Z"",
  ""company_external_id"": ""string"",
  ""payment_status"": ""string"",
  ""cancel_time"": ""2024-04-11T04:01:35.090Z"",
  ""status"": ""string"",
  ""trial_end"": ""2024-04-11T04:01:35.090Z"",
  ""external_id"": ""string"",
  ""metadata"": {},
  ""subscription_id"": ""string"",
  ""version_id"": ""string"",
  ""current_period_end"": ""2024-04-11T04:01:35.090Z"",
  ""created"": ""2024-04-11T04:01:35.090Z""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(AddSubscription content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(AddSubscription content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/subscriptions/batch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/subscriptions/batch

Create or Update Subscriptions in Batch

POST https://api.moesif.com/v1/search/~/subscriptions/batch

Example Request

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}

Parameters

Name In Type Required Description
body body AddSubscription true none

Example responses

200 Response

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "app_id": "string",
  "subscription_id": "string",
  "version_id": "string",
  "type": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "org_id": "string",
  "created": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
200 OK success Subscription

getSubscription

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/subscriptions/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/subscriptions/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/subscriptions/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/subscriptions/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/subscriptions/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/subscriptions/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/subscriptions/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/subscriptions/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/subscriptions/{id}

Get a Subscription

GET https://api.moesif.com/v1/search/~/subscriptions/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "app_id": "string",
  "subscription_id": "string",
  "version_id": "string",
  "type": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "org_id": "string",
  "created": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
200 OK success Subscription

Metrics

countEvents

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/count/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/count/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/count/events', params={
  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/count/events',
  params: {
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/count/events', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/count/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/count/events";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/count/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/count/events

Count Events

POST https://api.moesif.com/v1/search/~/count/events

Example Request

false

Parameters

Name In Type Required Description
from query string(date-time) true The start date, which can be absolute such as 2019-07-01T00:00:00Z or relative such as -24h
to query string(date-time) true The end date, which can be absolute such as 2019-07-02T00:00:00Z or relative such as now
track_total_hits query boolean false none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

getEvent

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/events/{id}?event_time=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/events/{id}?event_time=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/events/{id}', params={
  'event_time': '2024-04-11T04:01:35.090Z'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/events/{id}',
  params: {
  'event_time' => 'string(date-time)'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/events/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/events/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/events/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/events/{id}?event_time=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/events/{id}

Get an Event

GET https://api.moesif.com/v1/search/~/events/{id}

Parameters

Name In Type Required Description
id path string true none
event_time query string(date-time) true none

Example responses

200 Response

{
  "_id": "AWF5M-FDTqLFD8l5y2f4",
  "_source": {
    "company_id": "67890",
    "duration_ms": 76,
    "request": {
      "body": "json",
      "uri": "https://api.github.com",
      "user_agent": {
        "patch": "1",
        "major": "7",
        "minor": "1",
        "name": "PostmanRuntime"
      },
      "geo_ip": {
        "ip": "73.189.235.253",
        "region_name": "CA",
        "continent_code": "NA",
        "location": [
          "["
        ],
        "latitude": 37.769,
        "timezone": "America/Los_Angeles",
        "area_code": 415,
        "longitude": -122.393,
        "real_region_name": "California",
        "dma_code": 807,
        "postal_code": "94107",
        "city_name": "San Francisco",
        "country_code2": "US",
        "country_code3": "USA",
        "country_name": "United States"
      },
      "ip_address": "73.189.235.253",
      "verb": "GET",
      "route": "/",
      "time": "2023-07-09T06:14:58.550",
      "headers": {}
    },
    "user_id": "123454",
    "company": {},
    "response": {
      "body": {},
      "transfer_encoding": "json",
      "status": 200,
      "time": "2023-07-09T06:14:58.626",
      "headers": {}
    },
    "id": "AWF5M-FDTqLFD8l5y2f4",
    "event_type": "api_call",
    "session_token": "rdfmnw3fu24309efjc534nb421UZ9-]2JDO[ME",
    "metadata": {},
    "app_id": "198:3",
    "org_id": "177:3",
    "user": {}
  },
  "sort": [
    0
  ]
}

Responses

Status Meaning Description Schema
200 OK success eventResponse

searchEvents

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/search/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/search/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/search/events', params={
  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/search/events',
  params: {
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/search/events', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/search/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/search/events";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/search/events?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/search/events

Search Events

POST https://api.moesif.com/v1/search/~/search/events

Example Request

false

Parameters

Name In Type Required Description
from query string(date-time) true The start date, which can be absolute such as 2023-07-01T00:00:00Z or relative such as -24h
to query string(date-time) true The end date, which can be absolute such as 2023-07-02T00:00:00Z or relative such as now

Example responses

201 Response

{
  "took": 358,
  "timed_out": false,
  "hits": {
    "total": 947,
    "hits": [
      {
        "_id": "AWF5M-FDTqLFD8l5y2f4",
        "_source": {
          "company_id": "[",
          "duration_ms": "[",
          "request": {},
          "user_id": "[",
          "company": {},
          "response": {},
          "id": "[",
          "event_type": "[",
          "session_token": "[",
          "metadata": {},
          "app_id": "[",
          "org_id": "[",
          "user": {}
        },
        "sort": [
          0
        ]
      }
    ]
  }
}

Responses

Status Meaning Description Schema
201 Created success searchEventsResponse

searchPublicWorkspaces

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search', params={
  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search',
  params: {
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/workspaces/{workspaceId}/search

Search Events in saved public Workspace

POST https://api.moesif.com/v1/search/~/workspaces/{workspaceId}/search

Example Request

false

Parameters

Name In Type Required Description
from query string(date-time) true The start date, which can be absolute such as 2023-07-01T00:00:00Z or relative such as -24h
to query string(date-time) true The end date, which can be absolute such as 2023-07-02T00:00:00Z or relative such as now
workspaceId path string true none
include_details query boolean false none
take query integer(int32) false none

Example responses

201 Response

{
  "took": 358,
  "timed_out": false,
  "hits": {
    "total": 947,
    "hits": [
      {
        "_id": "AWF5M-FDTqLFD8l5y2f4",
        "_source": {
          "company_id": "[",
          "duration_ms": "[",
          "request": {},
          "user_id": "[",
          "company": {},
          "response": {},
          "id": "[",
          "event_type": "[",
          "session_token": "[",
          "metadata": {},
          "app_id": "[",
          "org_id": "[",
          "user": {}
        },
        "sort": [
          0
        ]
      }
    ]
  }
}

Responses

Status Meaning Description Schema
201 Created success searchEventsResponse

Users

countUsers

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/count/users?app_id=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/count/users?app_id=string',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/count/users', params={
  'app_id': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/count/users',
  params: {
  'app_id' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/count/users', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/count/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/count/users";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/count/users?app_id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/count/users

Count Users

POST https://api.moesif.com/v1/search/~/count/users

Example Request

false

Parameters

Name In Type Required Description

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

searchUserMetrics

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/search/usermetrics/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: 0' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'


const fetch = require('node-fetch');
const inputBody = false;
const headers = {
  'Content-Type':'application/json',
  'Accept':'0',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/search/usermetrics/users',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '0',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = false

r = requests.post('https://api.moesif.com/v1/search/~/search/usermetrics/users', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '0',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('false')

result = RestClient.post 'https://api.moesif.com/v1/search/~/search/usermetrics/users',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => '0',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('false')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/search/usermetrics/users', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"0"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `false`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/search/usermetrics/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/search/usermetrics/users";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/search/usermetrics/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'0');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """false""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/search/usermetrics/users

Search UserMetrics/Users

POST https://api.moesif.com/v1/search/~/search/usermetrics/users

Example Request

false

Parameters

Name In Type Required Description
from query string(date-time) false The start date, which can be absolute such as 2023-07-01T00:00:00Z or relative such as -24h
to query string(date-time) false The end date, which can be absolute such as 2023-07-02T00:00:00Z or relative such as now

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

updateUsers

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/users',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}

r = requests.post('https://api.moesif.com/v1/search/~/users', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/search/~/users',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/users', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/users";

      string json = @"{
  ""company_id"": ""string"",
  ""first_name"": ""string"",
  ""name"": ""string"",
  ""email"": ""string"",
  ""photo_url"": ""string"",
  ""user_id"": ""string"",
  ""modified_time"": ""2024-04-11T04:01:35.090Z"",
  ""last_name"": ""string"",
  ""metadata"": {},
  ""user_name"": ""string"",
  ""phone"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(UserUpdate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(UserUpdate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/users

Update a User

POST https://api.moesif.com/v1/search/~/users

Example Request

{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}

Parameters

Name In Type Required Description
body body UserUpdate true none

Example responses

200 Response

{
  "_id": "123456",
  "_source": {
    "first_name": "John",
    "body": {},
    "name": "John Doe",
    "email": "john.doe@gmail.com",
    "first_seen_time": "2023-07-27T21:52:58.0990000Z",
    "user_agent": {
      "name": "Android",
      "os_major": "7",
      "os": "Android 7.0",
      "os_name": "Android",
      "os_minor": "0",
      "major": "7",
      "device": "Samsung SM-G955U",
      "minor": "0"
    },
    "geo_ip": {
      "ip": "107.200.85.196",
      "region_name": "South Carolina",
      "continent_code": "NA",
      "location": {
        "lon": -79.85489654541016,
        "lat": 32.822898864746094
      },
      "latitude": 32.822898864746094,
      "timezone": "America/New_York",
      "longitude": -79.85489654541016,
      "dma_code": 519,
      "postal_code": "29464",
      "region_code": "SC",
      "city_name": "Mt. Pleasant",
      "country_code2": "US",
      "country_code3": "US",
      "country_name": "United States"
    },
    "modified_time": "2023-07-27T21:55:19.464",
    "last_name": "Doe",
    "ip_address": "107.200.85.196",
    "session_token": [
      "e93u2jiry8fij8q09-tfZ9SIK9DERDXUYMF"
    ],
    "last_seen_time": "2023-07-27T21:52:58.0990000Z",
    "app_id": "198:3",
    "org_id": "177:3"
  },
  "sort": [
    1519768519464
  ]
}

Responses

Status Meaning Description Schema
200 OK success userResponse

batchUpdateUsers

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/search/~/users/batch \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]' 
const fetch = require('node-fetch');
const inputBody = [
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/users/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = [
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]

r = requests.post('https://api.moesif.com/v1/search/~/users/batch', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]')

result = RestClient.post 'https://api.moesif.com/v1/search/~/users/batch',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/search/~/users/batch', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/search/~/users/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/users/batch";

      string json = @"[
  {
    ""company_id"": ""string"",
    ""first_name"": ""string"",
    ""name"": ""string"",
    ""email"": ""string"",
    ""photo_url"": ""string"",
    ""user_id"": ""string"",
    ""modified_time"": ""2024-04-11T04:01:35.090Z"",
    ""last_name"": ""string"",
    ""metadata"": {},
    ""user_name"": ""string"",
    ""phone"": ""string""
  }
]";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(UserUpdate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(UserUpdate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/users/batch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /search/~/users/batch

Update Users in Batch

POST https://api.moesif.com/v1/search/~/users/batch

Example Request

[
  {
    "company_id": "string",
    "first_name": "string",
    "name": "string",
    "email": "string",
    "photo_url": "string",
    "user_id": "string",
    "modified_time": "2024-04-11T04:01:35.090Z",
    "last_name": "string",
    "metadata": {},
    "user_name": "string",
    "phone": "string"
  }
]

Parameters

Name In Type Required Description
body body UserUpdate true none

Example responses

200 Response

{
  "_id": "123456",
  "_source": {
    "first_name": "John",
    "body": {},
    "name": "John Doe",
    "email": "john.doe@gmail.com",
    "first_seen_time": "2023-07-27T21:52:58.0990000Z",
    "user_agent": {
      "name": "Android",
      "os_major": "7",
      "os": "Android 7.0",
      "os_name": "Android",
      "os_minor": "0",
      "major": "7",
      "device": "Samsung SM-G955U",
      "minor": "0"
    },
    "geo_ip": {
      "ip": "107.200.85.196",
      "region_name": "South Carolina",
      "continent_code": "NA",
      "location": {
        "lon": -79.85489654541016,
        "lat": 32.822898864746094
      },
      "latitude": 32.822898864746094,
      "timezone": "America/New_York",
      "longitude": -79.85489654541016,
      "dma_code": 519,
      "postal_code": "29464",
      "region_code": "SC",
      "city_name": "Mt. Pleasant",
      "country_code2": "US",
      "country_code3": "US",
      "country_name": "United States"
    },
    "modified_time": "2023-07-27T21:55:19.464",
    "last_name": "Doe",
    "ip_address": "107.200.85.196",
    "session_token": [
      "e93u2jiry8fij8q09-tfZ9SIK9DERDXUYMF"
    ],
    "last_seen_time": "2023-07-27T21:52:58.0990000Z",
    "app_id": "198:3",
    "org_id": "177:3"
  },
  "sort": [
    1519768519464
  ]
}

Responses

Status Meaning Description Schema
200 OK success userResponse

getUser

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/users/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/users/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/users/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/users/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/users/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/users/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/users/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/users/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/users/{id}

Get a User

GET https://api.moesif.com/v1/search/~/users/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "_id": "123456",
  "_source": {
    "first_name": "John",
    "body": {},
    "name": "John Doe",
    "email": "john.doe@gmail.com",
    "first_seen_time": "2023-07-27T21:52:58.0990000Z",
    "user_agent": {
      "name": "Android",
      "os_major": "7",
      "os": "Android 7.0",
      "os_name": "Android",
      "os_minor": "0",
      "major": "7",
      "device": "Samsung SM-G955U",
      "minor": "0"
    },
    "geo_ip": {
      "ip": "107.200.85.196",
      "region_name": "South Carolina",
      "continent_code": "NA",
      "location": {
        "lon": -79.85489654541016,
        "lat": 32.822898864746094
      },
      "latitude": 32.822898864746094,
      "timezone": "America/New_York",
      "longitude": -79.85489654541016,
      "dma_code": 519,
      "postal_code": "29464",
      "region_code": "SC",
      "city_name": "Mt. Pleasant",
      "country_code2": "US",
      "country_code3": "US",
      "country_name": "United States"
    },
    "modified_time": "2023-07-27T21:55:19.464",
    "last_name": "Doe",
    "ip_address": "107.200.85.196",
    "session_token": [
      "e93u2jiry8fij8q09-tfZ9SIK9DERDXUYMF"
    ],
    "last_seen_time": "2023-07-27T21:52:58.0990000Z",
    "app_id": "198:3",
    "org_id": "177:3"
  },
  "sort": [
    1519768519464
  ]
}

Responses

Status Meaning Description Schema
200 OK success userResponse

deleteUser

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/search/~/users/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/users/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/search/~/users/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/search/~/users/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/search/~/users/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/search/~/users/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/search/~/users/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/users/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /search/~/users/{id}

Delete a User

DELETE https://api.moesif.com/v1/search/~/users/{id}

Parameters

Name In Type Required Description
id path string true none
delete_events query boolean false Delete events associated with the user which can be set to true or false(default)

Responses

Status Meaning Description Schema
200 OK success None

Properties

getProperties

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/mappings/users/properties?app_id=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/mappings/users/properties?app_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/mappings/users/properties', params={
  'app_id': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/mappings/users/properties',
  params: {
  'app_id' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/mappings/users/properties', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/mappings/users/properties")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/mappings/users/properties";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/mappings/users/properties?app_id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/mappings/users/properties

Get Property Mapping for Users

GET https://api.moesif.com/v1/search/~/mappings/users/properties

Parameters

Name In Type Required Description

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

getRequestBodyProperties

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/mappings/events/request/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/mappings/events/request/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/mappings/events/request/body/properties', params={
  'app_id': 'string',  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/mappings/events/request/body/properties',
  params: {
  'app_id' => 'string',
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/mappings/events/request/body/properties', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/mappings/events/request/body/properties")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/mappings/events/request/body/properties";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/mappings/events/request/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/mappings/events/request/body/properties

Get Property Mapping for Events Request Body

GET https://api.moesif.com/v1/search/~/mappings/events/request/body/properties

Parameters

Name In Type Required Description
from query string(date-time) true none
to query string(date-time) true none
include_values query boolean false none
key_path query string false none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

getResponseBodyProperties

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/search/~/mappings/events/response/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/search/~/mappings/events/response/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/search/~/mappings/events/response/body/properties', params={
  'app_id': 'string',  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/search/~/mappings/events/response/body/properties',
  params: {
  'app_id' => 'string',
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/search/~/mappings/events/response/body/properties', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/search/~/mappings/events/response/body/properties")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/search/~/mappings/events/response/body/properties";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/search/~/mappings/events/response/body/properties?app_id=string&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /search/~/mappings/events/response/body/properties

Get Property Mapping for Events Response Body

GET https://api.moesif.com/v1/search/~/mappings/events/response/body/properties

Parameters

Name In Type Required Description
from query string(date-time) true none
to query string(date-time) true none
include_values query boolean false none
key_path query string false none

Example responses

Responses

Status Meaning Description Schema
200 OK success None

Response Schema

Workspaces

getWorkspaceToken

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/workspaces/access_token \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/workspaces/access_token',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/workspaces/access_token', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/workspaces/access_token',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/workspaces/access_token', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/workspaces/access_token")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/workspaces/access_token";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/workspaces/access_token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /workspaces/access_token

Get new Workspace Token

Get a new Workspace Access Token

GET https://api.moesif.com/v1/workspaces/access_token

Example responses

200 Response

{
  "_id": "string",
  "token": "string",
  "url": "string"
}

Responses

Status Meaning Description Schema
200 OK success SignedToken

getPublicWorkspace

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/workspaces/public/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/workspaces/public/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/workspaces/public/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/workspaces/public/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/workspaces/public/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/workspaces/public/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/workspaces/public/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/workspaces/public/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /workspaces/public/{id}

Get a Public Workspace

GET https://api.moesif.com/v1/workspaces/public/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "_id": "string",
  "is_template": true,
  "dashboard": {},
  "auth_user_id": "string",
  "colors": {},
  "sequence": [
    {
      "delay": 0,
      "submit_data": {
        "body": {},
        "url": "string",
        "params": [
          {
            "key": null,
            "val": null
          }
        ],
        "verb": "string",
        "headers": [
          {
            "key": null,
            "val": null
          }
        ]
      }
    }
  ],
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "app_id": "string",
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z",
  "comments": {
    "summary": {
      "count": 0,
      "latest_comment": {
        "auth_user_id": "string",
        "comment_id": "string",
        "mentions": [
          "string"
        ],
        "partner_user_id": "string",
        "message": "string",
        "created_at": "2024-04-11T04:01:35.090Z",
        "updated_at": "2024-04-11T04:01:35.090Z"
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK success WorkspaceDocument

createWorkspace

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/workspaces \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

r = requests.post('https://api.moesif.com/v1/~/workspaces', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

result = RestClient.post 'https://api.moesif.com/v1/~/workspaces',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/workspaces', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/workspaces", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces";

      string json = @"{
  ""name"": ""string"",
  ""is_default"": true,
  ""view_count"": 0,
  ""dashboard"": {},
  ""colors"": {},
  ""drawings"": [
    {
      ""name"": ""string"",
      ""direction"": ""string"",
      ""id"": ""string"",
      ""type"": ""string"",
      ""value"": 0.1
    }
  ],
  ""chart"": {
    ""original_encoded_view_elements"": ""string"",
    ""funnel_query"": {},
    ""url_query"": ""string"",
    ""to"": ""string"",
    ""view_elements"": {},
    ""from"": ""string"",
    ""original_encoded_funnel_query"": ""string"",
    ""es_query"": {},
    ""args"": ""string"",
    ""original_encoded_query"": ""string"",
    ""time_zone"": ""string"",
    ""view"": ""string""
  },
  ""template"": {
    ""dynamic_fields"": [
      ""string""
    ],
    ""dynamic_time"": true
  },
  ""type"": ""string"",
  ""width"": 0.1,
  ""sort_order"": 0.1,
  ""policy"": {
    ""acl"": [
      {
        ""grantee"": ""string"",
        ""permission"": ""string""
      }
    ],
    ""resource"": {},
    ""api_scopes"": [
      ""string""
    ],
    ""original_encoded_resource"": ""string""
  }
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(WorkspaceCreateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(WorkspaceCreateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/workspaces

Create New Workspace

POST https://api.moesif.com/v1/~/workspaces

Example Request

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Parameters

Name In Type Required Description
expiration query string(date-time) false none
body body WorkspaceCreateItem true none

Example responses

201 Response

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "_id": "string",
  "is_template": true,
  "dashboard": {},
  "auth_user_id": "string",
  "colors": {},
  "sequence": [
    {
      "delay": 0,
      "submit_data": {
        "body": {},
        "url": "string",
        "params": [
          {
            "key": null,
            "val": null
          }
        ],
        "verb": "string",
        "headers": [
          {
            "key": null,
            "val": null
          }
        ]
      }
    }
  ],
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "app_id": "string",
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z",
  "comments": {
    "summary": {
      "count": 0,
      "latest_comment": {
        "auth_user_id": "string",
        "comment_id": "string",
        "mentions": [
          "string"
        ],
        "partner_user_id": "string",
        "message": "string",
        "created_at": "2024-04-11T04:01:35.090Z",
        "updated_at": "2024-04-11T04:01:35.090Z"
      }
    }
  }
}

Responses

Status Meaning Description Schema
201 Created success WorkspaceDocument

getWorkspaces

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/workspaces?take=0&access=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces?take=0&access=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/workspaces', params={
  'take': '0',  'access': [
  "string"
]

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/workspaces',
  params: {
  'take' => 'integer(int32)',
  'access' => 'array[string]'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/workspaces', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/workspaces")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces?take=0&access=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/workspaces

Get Workspaces

GET https://api.moesif.com/v1/~/workspaces

Parameters

Name In Type Required Description
take query integer(int32) true none
before_id query string false none
type query string false none
access query array[string] true none

Example responses

200 Response

[
  {
    "name": "string",
    "is_default": true,
    "view_count": 0,
    "_id": "string",
    "is_template": true,
    "dashboard": {},
    "auth_user_id": "string",
    "colors": {},
    "sequence": [
      {
        "delay": 0,
        "submit_data": {
          "body": {},
          "url": "string",
          "params": [
            {}
          ],
          "verb": "string",
          "headers": [
            {}
          ]
        }
      }
    ],
    "drawings": [
      {
        "name": "string",
        "direction": "string",
        "id": "string",
        "type": "string",
        "value": 0.1
      }
    ],
    "chart": {
      "original_encoded_view_elements": "string",
      "funnel_query": {},
      "url_query": "string",
      "to": "string",
      "view_elements": {},
      "from": "string",
      "original_encoded_funnel_query": "string",
      "es_query": {},
      "args": "string",
      "original_encoded_query": "string",
      "time_zone": "string",
      "view": "string"
    },
    "template": {
      "dynamic_fields": [
        "string"
      ],
      "dynamic_time": true
    },
    "app_id": "string",
    "type": "string",
    "width": 0.1,
    "sort_order": 0.1,
    "policy": {
      "acl": [
        {
          "grantee": "string",
          "permission": "string"
        }
      ],
      "resource": {},
      "api_scopes": [
        "string"
      ],
      "original_encoded_resource": "string"
    },
    "org_id": "string",
    "migration": {},
    "created": "2024-04-11T04:01:35.090Z",
    "comments": {
      "summary": {
        "count": 0,
        "latest_comment": {
          "auth_user_id": "string",
          "comment_id": "string",
          "mentions": [
            null
          ],
          "partner_user_id": "string",
          "message": "string",
          "created_at": "2024-04-11T04:01:35.090Z",
          "updated_at": "2024-04-11T04:01:35.090Z"
        }
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [WorkspaceDocument] false none none
» name string false none none
» is_default boolean false none none
» view_count integer(int32) true none none
» _id string false none none
» is_template boolean false none none
» dashboard object false none none
» auth_user_id string true none none
» colors object false none none
» sequence [SequenceItem] false none none
»» delay integer(int32) true none none
»» submit_data object true none none
»»» body object false none none
»»» url string true none none
»»» params [KeyValuePair] false none none
»»»» key string true none none
»»»» val string true none none
»»» verb string true none none
»»» headers [KeyValuePair] false none none
» drawings [DrawingItem] false none none
»» name string true none none
»» direction string true none none
»» id string true none none
»» type string true none none
»» value number(double) true none none
» chart object false none none
»» original_encoded_view_elements string false none none
»» funnel_query object false none none
»» url_query string true none none
»» to string false none none
»» view_elements object false none none
»» from string false none none
»» original_encoded_funnel_query string false none none
»» es_query object false none none
»» args string false none none
»» original_encoded_query string false none none
»» time_zone string false none none
»» view string true none none
» template object false none none
»» dynamic_fields [string] true none none
»» dynamic_time boolean false none none
» app_id string true none none
» type string false none none
» width number(double) false none none
» sort_order number(double) false none none
» policy object false none none
»» acl [ACLItem] true none none
»»» grantee string true none none
»»» permission string true none none
»» resource object true none none
»» api_scopes [string] false none none
»» original_encoded_resource string false none none
» org_id string true none none
» migration object false none none
» created string(date-time) true none none
» comments object false none none
»» summary object true none none
»»» count integer(int32) true none none
»»» latest_comment object false none none
»»»» auth_user_id string false none none
»»»» comment_id string false none none
»»»» mentions [string] false none none
»»»» partner_user_id string false none none
»»»» message string false none none
»»»» created_at string(date-time) false none none
»»»» updated_at string(date-time) false none none

getWorkspaceTemplates

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/workspaces/templates \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/templates',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/workspaces/templates', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/workspaces/templates',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/workspaces/templates', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/workspaces/templates")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/templates";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/templates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/workspaces/templates

Get Workspace Templates

GET https://api.moesif.com/v1/~/workspaces/templates

Parameters

Name In Type Required Description

Example responses

200 Response

[
  {
    "name": "string",
    "is_default": true,
    "view_count": 0,
    "_id": "string",
    "is_template": true,
    "dashboard": {},
    "auth_user_id": "string",
    "colors": {},
    "sequence": [
      {
        "delay": 0,
        "submit_data": {
          "body": {},
          "url": "string",
          "params": [
            {}
          ],
          "verb": "string",
          "headers": [
            {}
          ]
        }
      }
    ],
    "drawings": [
      {
        "name": "string",
        "direction": "string",
        "id": "string",
        "type": "string",
        "value": 0.1
      }
    ],
    "chart": {
      "original_encoded_view_elements": "string",
      "funnel_query": {},
      "url_query": "string",
      "to": "string",
      "view_elements": {},
      "from": "string",
      "original_encoded_funnel_query": "string",
      "es_query": {},
      "args": "string",
      "original_encoded_query": "string",
      "time_zone": "string",
      "view": "string"
    },
    "template": {
      "dynamic_fields": [
        "string"
      ],
      "dynamic_time": true
    },
    "app_id": "string",
    "type": "string",
    "width": 0.1,
    "sort_order": 0.1,
    "policy": {
      "acl": [
        {
          "grantee": "string",
          "permission": "string"
        }
      ],
      "resource": {},
      "api_scopes": [
        "string"
      ],
      "original_encoded_resource": "string"
    },
    "org_id": "string",
    "migration": {},
    "created": "2024-04-11T04:01:35.090Z",
    "comments": {
      "summary": {
        "count": 0,
        "latest_comment": {
          "auth_user_id": "string",
          "comment_id": "string",
          "mentions": [
            null
          ],
          "partner_user_id": "string",
          "message": "string",
          "created_at": "2024-04-11T04:01:35.090Z",
          "updated_at": "2024-04-11T04:01:35.090Z"
        }
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [WorkspaceDocument] false none none
» name string false none none
» is_default boolean false none none
» view_count integer(int32) true none none
» _id string false none none
» is_template boolean false none none
» dashboard object false none none
» auth_user_id string true none none
» colors object false none none
» sequence [SequenceItem] false none none
»» delay integer(int32) true none none
»» submit_data object true none none
»»» body object false none none
»»» url string true none none
»»» params [KeyValuePair] false none none
»»»» key string true none none
»»»» val string true none none
»»» verb string true none none
»»» headers [KeyValuePair] false none none
» drawings [DrawingItem] false none none
»» name string true none none
»» direction string true none none
»» id string true none none
»» type string true none none
»» value number(double) true none none
» chart object false none none
»» original_encoded_view_elements string false none none
»» funnel_query object false none none
»» url_query string true none none
»» to string false none none
»» view_elements object false none none
»» from string false none none
»» original_encoded_funnel_query string false none none
»» es_query object false none none
»» args string false none none
»» original_encoded_query string false none none
»» time_zone string false none none
»» view string true none none
» template object false none none
»» dynamic_fields [string] true none none
»» dynamic_time boolean false none none
» app_id string true none none
» type string false none none
» width number(double) false none none
» sort_order number(double) false none none
» policy object false none none
»» acl [ACLItem] true none none
»»» grantee string true none none
»»» permission string true none none
»» resource object true none none
»» api_scopes [string] false none none
»» original_encoded_resource string false none none
» org_id string true none none
» migration object false none none
» created string(date-time) true none none
» comments object false none none
»» summary object true none none
»»» count integer(int32) true none none
»»» latest_comment object false none none
»»»» auth_user_id string false none none
»»»» comment_id string false none none
»»»» mentions [string] false none none
»»»» partner_user_id string false none none
»»»» message string false none none
»»»» created_at string(date-time) false none none
»»»» updated_at string(date-time) false none none

updateWorkspace

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/workspaces/{id} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

r = requests.post('https://api.moesif.com/v1/~/workspaces/{id}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

result = RestClient.post 'https://api.moesif.com/v1/~/workspaces/{id}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/workspaces/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/workspaces/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}";

      string json = @"{
  ""name"": ""string"",
  ""colors"": {},
  ""drawings"": [
    {
      ""name"": ""string"",
      ""direction"": ""string"",
      ""id"": ""string"",
      ""type"": ""string"",
      ""value"": 0.1
    }
  ],
  ""chart"": {
    ""original_encoded_view_elements"": ""string"",
    ""funnel_query"": {},
    ""url_query"": ""string"",
    ""to"": ""string"",
    ""view_elements"": {},
    ""from"": ""string"",
    ""original_encoded_funnel_query"": ""string"",
    ""es_query"": {},
    ""args"": ""string"",
    ""original_encoded_query"": ""string"",
    ""time_zone"": ""string"",
    ""view"": ""string""
  },
  ""template"": {
    ""dynamic_fields"": [
      ""string""
    ],
    ""dynamic_time"": true
  },
  ""width"": 0.1,
  ""sort_order"": 0.1,
  ""policy"": {
    ""acl"": [
      {
        ""grantee"": ""string"",
        ""permission"": ""string""
      }
    ],
    ""resource"": {},
    ""api_scopes"": [
      ""string""
    ],
    ""original_encoded_resource"": ""string""
  }
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(WorkspaceUpdateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(WorkspaceUpdateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/workspaces/{id}

Update a Workspace

POST https://api.moesif.com/v1/~/workspaces/{id}

Example Request

{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Parameters

Name In Type Required Description
id path string true none
body body WorkspaceUpdateItem true none

Responses

Status Meaning Description Schema
200 OK success None

getWorkspace

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/workspaces/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/workspaces/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/workspaces/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/workspaces/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/workspaces/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/workspaces/{id}

Get a Workspace

GET https://api.moesif.com/v1/~/workspaces/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "_id": "string",
  "is_template": true,
  "dashboard": {},
  "auth_user_id": "string",
  "colors": {},
  "sequence": [
    {
      "delay": 0,
      "submit_data": {
        "body": {},
        "url": "string",
        "params": [
          {
            "key": null,
            "val": null
          }
        ],
        "verb": "string",
        "headers": [
          {
            "key": null,
            "val": null
          }
        ]
      }
    }
  ],
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "app_id": "string",
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z",
  "comments": {
    "summary": {
      "count": 0,
      "latest_comment": {
        "auth_user_id": "string",
        "comment_id": "string",
        "mentions": [
          "string"
        ],
        "partner_user_id": "string",
        "message": "string",
        "created_at": "2024-04-11T04:01:35.090Z",
        "updated_at": "2024-04-11T04:01:35.090Z"
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK success WorkspaceDocument

deleteWorkspace

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/workspaces/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/workspaces/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/workspaces/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/workspaces/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/workspaces/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/workspaces/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/workspaces/{id}

Delete a Workspace

DELETE https://api.moesif.com/v1/~/workspaces/{id}

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
200 OK success None

createComment

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/workspaces/{id}/comments \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "message": "string",
  "mentions": [
    "string"
  ]
}' 
const fetch = require('node-fetch');
const inputBody = {
  "message": "string",
  "mentions": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/comments',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "message": "string",
  "mentions": [
    "string"
  ]
}

r = requests.post('https://api.moesif.com/v1/~/workspaces/{id}/comments', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "message": "string",
  "mentions": [
    "string"
  ]
}')

result = RestClient.post 'https://api.moesif.com/v1/~/workspaces/{id}/comments',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "message": "string",
  "mentions": [
    "string"
  ]
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/workspaces/{id}/comments', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "message": "string",
  "mentions": [
    "string"
  ]
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/workspaces/{id}/comments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/comments";

      string json = @"{
  ""message"": ""string"",
  ""mentions"": [
    ""string""
  ]
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CommentItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CommentItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "message": "string",
  "mentions": [
    "string"
  ]
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/workspaces/{id}/comments

Create a New Comment

POST https://api.moesif.com/v1/~/workspaces/{id}/comments

Example Request

{
  "message": "string",
  "mentions": [
    "string"
  ]
}

Parameters

Name In Type Required Description
id path string true none
body body CommentItem true none

Responses

Status Meaning Description Schema
201 Created success None

getComments

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/workspaces/{id}/comments \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/comments',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/workspaces/{id}/comments', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/workspaces/{id}/comments',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/workspaces/{id}/comments', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/workspaces/{id}/comments")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/comments";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/workspaces/{id}/comments

Get all Comments

GET https://api.moesif.com/v1/~/workspaces/{id}/comments

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
200 OK success None

updateComment

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "message": "string",
  "mentions": [
    "string"
  ]
}' 
const fetch = require('node-fetch');
const inputBody = {
  "message": "string",
  "mentions": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "message": "string",
  "mentions": [
    "string"
  ]
}

r = requests.post('https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "message": "string",
  "mentions": [
    "string"
  ]
}')

result = RestClient.post 'https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "message": "string",
  "mentions": [
    "string"
  ]
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "message": "string",
  "mentions": [
    "string"
  ]
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}";

      string json = @"{
  ""message"": ""string"",
  ""mentions"": [
    ""string""
  ]
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CommentItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CommentItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "message": "string",
  "mentions": [
    "string"
  ]
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/workspaces/{id}/comments/{commentId}

Update Existing Comment

POST https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}

Example Request

{
  "message": "string",
  "mentions": [
    "string"
  ]
}

Parameters

Name In Type Required Description
id path string true none
commentId path string true none
body body CommentItem true none

Responses

Status Meaning Description Schema
201 Created success None

deleteComment

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/workspaces/{id}/comments/{commentId}

Delete a Comment

DELETE https://api.moesif.com/v1/~/workspaces/{id}/comments/{commentId}

Parameters

Name In Type Required Description
id path string true none
commentId path string true none

Responses

Status Meaning Description Schema
204 No Content success None

addACLPermissions

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/workspaces/{id}/policy/acl \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/policy/acl',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.post('https://api.moesif.com/v1/~/workspaces/{id}/policy/acl', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.post 'https://api.moesif.com/v1/~/workspaces/{id}/policy/acl',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/workspaces/{id}/policy/acl', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/workspaces/{id}/policy/acl")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/policy/acl";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/policy/acl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/workspaces/{id}/policy/acl

Add ACL permission

POST https://api.moesif.com/v1/~/workspaces/{id}/policy/acl

Parameters

Name In Type Required Description
id path string true none
grantee query string false none
permission query string false none

Responses

Status Meaning Description Schema
200 OK success None

deleteACLPermissions

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/workspaces/{id}/policy/acl?grantee=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/workspaces/{id}/policy/acl?grantee=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/workspaces/{id}/policy/acl', params={
  'grantee': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/workspaces/{id}/policy/acl',
  params: {
  'grantee' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/workspaces/{id}/policy/acl', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/workspaces/{id}/policy/acl")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/workspaces/{id}/policy/acl";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/workspaces/{id}/policy/acl?grantee=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/workspaces/{id}/policy/acl

Delete ACL permission

DELETE https://api.moesif.com/v1/~/workspaces/{id}/policy/acl

Parameters

Name In Type Required Description
id path string true none
grantee query string true none

Responses

Status Meaning Description Schema
200 OK success None

Applications

addApp

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/apps \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/apps',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

r = requests.post('https://api.moesif.com/v1/~/apps', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/apps',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/apps', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/apps", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/apps";

      string json = @"{
  ""name"": ""string"",
  ""time_zone"": ""string"",
  ""week_starts_on"": 0,
  ""custom_app_id"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(AppCreate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(AppCreate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/apps");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/apps

Create a new App

Create a new app under the selected organization

POST https://api.moesif.com/v1/~/apps

Example Request

{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

Parameters

Name In Type Required Description
body body AppCreate true none

Example responses

200 Response

{
  "name": "string",
  "custom_app_id": "string",
  "search_api_base_url": "string",
  "week_starts_on": 0,
  "id": "string",
  "portal_api_base_url": "string",
  "secure_proxy": true,
  "time_zone": "string"
}

Responses

Status Meaning Description Schema
200 OK success AppResponse

getApps

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/apps?take=0 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/apps?take=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/apps', params={
  'take': '0'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/apps',
  params: {
  'take' => 'integer(int32)'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/apps', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/apps")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/apps";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/apps?take=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/apps

Gets Apps

Gets a list of apps for the selected organization

GET https://api.moesif.com/v1/~/apps

Parameters

Name In Type Required Description
take query integer(int32) true none
before_id query string false none

Example responses

200 Response

[
  {
    "name": "string",
    "custom_app_id": "string",
    "search_api_base_url": "string",
    "week_starts_on": 0,
    "id": "string",
    "portal_api_base_url": "string",
    "secure_proxy": true,
    "time_zone": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AppResponse] false none none
» name string true none none
» custom_app_id string false none none
» search_api_base_url string false none none
» week_starts_on integer(int32) false none none
» id string false none none
» portal_api_base_url string false none none
» secure_proxy boolean false none none
» time_zone string false none none

updateApp

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/apps/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/apps/{id}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

r = requests.post('https://api.moesif.com/v1/~/apps/{id}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/apps/{id}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/apps/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/apps/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/apps/{id}";

      string json = @"{
  ""name"": ""string"",
  ""time_zone"": ""string"",
  ""week_starts_on"": 0,
  ""custom_app_id"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(AppUpdate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(AppUpdate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/apps/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/apps/{id}

Update Apps

Update the name of the app for the selected organization

POST https://api.moesif.com/v1/~/apps/{id}

Example Request

{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

Parameters

Name In Type Required Description
id path string true none
body body AppUpdate true none

Example responses

200 Response

{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

Responses

Status Meaning Description Schema
200 OK success AppUpdate

deleteApp

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/apps/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/apps/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/apps/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/apps/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/apps/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/apps/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/apps/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/apps/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/apps/{id}

Delete Apps

Delete the app for the selected organization

DELETE https://api.moesif.com/v1/~/apps/{id}

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
200 OK success None

Product Catalog

createMoesifPlan

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/billing/catalog/plans?provider=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/plans?provider=string',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

r = requests.post('https://api.moesif.com/v1/~/billing/catalog/plans', params={
  'provider': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/billing/catalog/plans',
  params: {
  'provider' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/billing/catalog/plans', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/billing/catalog/plans", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/plans";

      string json = @"{
  ""name"": ""string"",
  ""prices"": [
    {
      ""name"": ""string"",
      ""transform_quantity"": {
        ""divide_by"": 0,
        ""round"": ""string""
      },
      ""provider"": ""string"",
      ""price_in_decimal"": ""string"",
      ""tiers"": [
        {
          ""up_to"": null,
          ""unit_price_in_decimal"": ""string"",
          ""flat_price_in_decimal"": ""string""
        }
      ],
      ""period_units"": ""string"",
      ""plan_id"": ""string"",
      ""id"": ""string"",
      ""status"": ""string"",
      ""pricing_model"": ""string"",
      ""tax_behavior"": ""string"",
      ""currency"": ""string"",
      ""metadata"": null,
      ""created_at"": ""2024-04-11T04:01:35.090Z"",
      ""unit"": ""string"",
      ""usage_aggregator"": ""string"",
      ""period"": 0
    }
  ],
  ""provider"": ""string"",
  ""description"": ""string"",
  ""id"": ""string"",
  ""status"": ""string"",
  ""product_id"": ""string"",
  ""metadata"": null,
  ""created_at"": ""2024-04-11T04:01:35.090Z"",
  ""unit"": ""string"",
  ""updated_at"": ""2024-04-11T04:01:35.090Z""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(MoesifPlan content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(MoesifPlan content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/plans?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/billing/catalog/plans

Create a new Moesif Plan

POST https://api.moesif.com/v1/~/billing/catalog/plans

Example Request

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Parameters

Name In Type Required Description
provider query string true none
body body MoesifPlan true none

Example responses

201 Response

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
201 Created created MoesifPlan

listMoesifPlans

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/catalog/plans \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/plans',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/catalog/plans', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/catalog/plans',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/catalog/plans', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/catalog/plans")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/plans";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/plans");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/catalog/plans

List all Moesif Plans

GET https://api.moesif.com/v1/~/billing/catalog/plans

Parameters

Name In Type Required Description
provider query string false none
includes query string false none
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 1000 (inclusive). Defaults to 1000.

Example responses

200 Response

[
  {
    "name": "string",
    "prices": [
      {
        "name": "string",
        "transform_quantity": {
          "divide_by": 0,
          "round": "string"
        },
        "provider": "string",
        "price_in_decimal": "string",
        "tiers": [
          {
            "up_to": null,
            "unit_price_in_decimal": "string",
            "flat_price_in_decimal": "string"
          }
        ],
        "period_units": "string",
        "plan_id": "string",
        "id": "string",
        "status": "string",
        "pricing_model": "string",
        "tax_behavior": "string",
        "currency": "string",
        "metadata": null,
        "created_at": "2024-04-11T04:01:35.090Z",
        "unit": "string",
        "usage_aggregator": "string",
        "period": 0
      }
    ],
    "provider": "string",
    "description": "string",
    "id": "string",
    "status": "string",
    "product_id": "string",
    "metadata": null,
    "created_at": "2024-04-11T04:01:35.090Z",
    "unit": "string",
    "updated_at": "2024-04-11T04:01:35.090Z"
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [MoesifPlan] false none none
» name string false none none
» prices [MoesifPrice] false none none
»» name string false none none
»» transform_quantity object false none none
»»» divide_by integer(int64) true none none
»»» round string true none none
»» provider string false none none
»» price_in_decimal string false none none
»» tiers [MoesifPriceTier] false none none
»»» up_to util.either[scala.long,string] true none none
»»» unit_price_in_decimal string false none none
»»» flat_price_in_decimal string false none none
»» period_units string false none none
»» plan_id string false none none
»» id string false none none
»» status string false none none
»» pricing_model string false none none
»» tax_behavior string false none none
»» currency string false none none
»» metadata .map[string,string] false none none
»» created_at string(date-time) false none none
»» unit string false none none
»» usage_aggregator string false none none
»» period integer(int64) false none none
» provider string false none none
» description string false none none
» id string false none none
» status string false none none
» product_id string false none none
» metadata .map[string,string] false none none
» created_at string(date-time) false none none
» unit string false none none
» updated_at string(date-time) false none none

getMoesifPlan

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/catalog/plans/{id}', params={
  'provider': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/catalog/plans/{id}',
  params: {
  'provider' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/catalog/plans/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/catalog/plans/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/plans/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/catalog/plans/{id}

Get a Moesif Plan

Get the Moesif Plan for authenticated users

GET https://api.moesif.com/v1/~/billing/catalog/plans/{id}

Parameters

Name In Type Required Description
id path string true none
provider query string true none

Example responses

200 Response

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
200 OK success MoesifPlan

deleteMoesifPlan

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/billing/catalog/plans/{id}', params={
  'provider': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/billing/catalog/plans/{id}',
  params: {
  'provider' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/billing/catalog/plans/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/billing/catalog/plans/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/billing/catalog/plans/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/billing/catalog/plans/{id}

Delete a Moesif Plan

DELETE https://api.moesif.com/v1/~/billing/catalog/plans/{id}

Parameters

Name In Type Required Description
id path string true none
provider query string true none

Responses

Status Meaning Description Schema
204 No Content no content None

updateMoesifPlan

Code samples

# You can also use wget
curl -X PUT https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

r = requests.put('https://api.moesif.com/v1/~/billing/catalog/plans/{id}', params={
  'provider': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}')

result = RestClient.put 'https://api.moesif.com/v1/~/billing/catalog/plans/{id}',
  params: {
  'provider' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('PUT','https://api.moesif.com/v1/~/billing/catalog/plans/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("PUT", "https://api.moesif.com/v1/~/billing/catalog/plans/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }



    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/billing/catalog/plans/{id}";


      string json = @"{
  ""name"": ""string"",
  ""prices"": [
    {
      ""name"": ""string"",
      ""transform_quantity"": {
        ""divide_by"": 0,
        ""round"": ""string""
      },
      ""provider"": ""string"",
      ""price_in_decimal"": ""string"",
      ""tiers"": [
        {
          ""up_to"": null,
          ""unit_price_in_decimal"": ""string"",
          ""flat_price_in_decimal"": ""string""
        }
      ],
      ""period_units"": ""string"",
      ""plan_id"": ""string"",
      ""id"": ""string"",
      ""status"": ""string"",
      ""pricing_model"": ""string"",
      ""tax_behavior"": ""string"",
      ""currency"": ""string"",
      ""metadata"": null,
      ""created_at"": ""2024-04-11T04:01:35.090Z"",
      ""unit"": ""string"",
      ""usage_aggregator"": ""string"",
      ""period"": 0
    }
  ],
  ""provider"": ""string"",
  ""description"": ""string"",
  ""id"": ""string"",
  ""status"": ""string"",
  ""product_id"": ""string"",
  ""metadata"": null,
  ""created_at"": ""2024-04-11T04:01:35.090Z"",
  ""unit"": ""string"",
  ""updated_at"": ""2024-04-11T04:01:35.090Z""
}";
      var content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);


    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, MoesifPlan content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }


    /// Serialize an object to Json
    private StringContent SerializeObject(MoesifPlan content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/plans/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

PUT /~/billing/catalog/plans/{id}

Update a Moesif Plan

PUT https://api.moesif.com/v1/~/billing/catalog/plans/{id}

Example Request

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Parameters

Name In Type Required Description
id path string true none
provider query string true none
body body MoesifPlan true none

Example responses

200 Response

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
200 OK success MoesifPlan

createMoesifPrice

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/billing/catalog/prices?provider=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/prices?provider=string',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

r = requests.post('https://api.moesif.com/v1/~/billing/catalog/prices', params={
  'provider': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}')

result = RestClient.post 'https://api.moesif.com/v1/~/billing/catalog/prices',
  params: {
  'provider' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/billing/catalog/prices', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/billing/catalog/prices", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/prices";

      string json = @"{
  ""name"": ""string"",
  ""transform_quantity"": {
    ""divide_by"": 0,
    ""round"": ""string""
  },
  ""provider"": ""string"",
  ""price_in_decimal"": ""string"",
  ""tiers"": [
    {
      ""up_to"": null,
      ""unit_price_in_decimal"": ""string"",
      ""flat_price_in_decimal"": ""string""
    }
  ],
  ""period_units"": ""string"",
  ""plan_id"": ""string"",
  ""id"": ""string"",
  ""status"": ""string"",
  ""pricing_model"": ""string"",
  ""tax_behavior"": ""string"",
  ""currency"": ""string"",
  ""metadata"": null,
  ""created_at"": ""2024-04-11T04:01:35.090Z"",
  ""unit"": ""string"",
  ""usage_aggregator"": ""string"",
  ""period"": 0
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(MoesifPrice content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(MoesifPrice content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/prices?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/billing/catalog/prices

Create a new Moesif Price

POST https://api.moesif.com/v1/~/billing/catalog/prices

Example Request

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Parameters

Name In Type Required Description
provider query string true none
body body MoesifPrice true none

Example responses

201 Response

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Responses

Status Meaning Description Schema
201 Created created MoesifPrice

listMoesifPrices

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/catalog/prices \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/prices',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/catalog/prices', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/catalog/prices',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/catalog/prices', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/catalog/prices")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/prices";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/prices");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/catalog/prices

List all Moesif Prices for a specific Plan

GET https://api.moesif.com/v1/~/billing/catalog/prices

Parameters

Name In Type Required Description
provider query string false none
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 1000 (inclusive). Defaults to 1000.

Example responses

200 Response

[
  {
    "name": "string",
    "transform_quantity": {
      "divide_by": 0,
      "round": "string"
    },
    "provider": "string",
    "price_in_decimal": "string",
    "tiers": [
      {
        "up_to": null,
        "unit_price_in_decimal": "string",
        "flat_price_in_decimal": "string"
      }
    ],
    "period_units": "string",
    "plan_id": "string",
    "id": "string",
    "status": "string",
    "pricing_model": "string",
    "tax_behavior": "string",
    "currency": "string",
    "metadata": null,
    "created_at": "2024-04-11T04:01:35.090Z",
    "unit": "string",
    "usage_aggregator": "string",
    "period": 0
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [MoesifPrice] false none none
» name string false none none
» transform_quantity object false none none
»» divide_by integer(int64) true none none
»» round string true none none
» provider string false none none
» price_in_decimal string false none none
» tiers [MoesifPriceTier] false none none
»» up_to util.either[scala.long,string] true none none
»» unit_price_in_decimal string false none none
»» flat_price_in_decimal string false none none
» period_units string false none none
» plan_id string false none none
» id string false none none
» status string false none none
» pricing_model string false none none
» tax_behavior string false none none
» currency string false none none
» metadata .map[string,string] false none none
» created_at string(date-time) false none none
» unit string false none none
» usage_aggregator string false none none
» period integer(int64) false none none

getMoesifPrice

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/catalog/prices/{id}', params={
  'provider': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/catalog/prices/{id}',
  params: {
  'provider' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/catalog/prices/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/catalog/prices/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/catalog/prices/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/catalog/prices/{id}

Get a Moesif Price

Get the Moesif Price for a specific Plan for authenticated users

GET https://api.moesif.com/v1/~/billing/catalog/prices/{id}

Parameters

Name In Type Required Description
id path string true none
provider query string true none

Example responses

200 Response

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Responses

Status Meaning Description Schema
200 OK success MoesifPrice

deleteMoesifPrice

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/billing/catalog/prices/{id}', params={
  'provider': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/billing/catalog/prices/{id}',
  params: {
  'provider' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/billing/catalog/prices/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/billing/catalog/prices/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/billing/catalog/prices/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/billing/catalog/prices/{id}

Delete a Moesif Price

DELETE https://api.moesif.com/v1/~/billing/catalog/prices/{id}

Parameters

Name In Type Required Description
id path string true none
provider query string true none

Responses

Status Meaning Description Schema
204 No Content no content None

updateMoesifPrice

Code samples

# You can also use wget
curl -X PUT https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

r = requests.put('https://api.moesif.com/v1/~/billing/catalog/prices/{id}', params={
  'provider': 'string'

}, headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}')

result = RestClient.put 'https://api.moesif.com/v1/~/billing/catalog/prices/{id}',
  params: {
  'provider' => 'string'
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('PUT','https://api.moesif.com/v1/~/billing/catalog/prices/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("PUT", "https://api.moesif.com/v1/~/billing/catalog/prices/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }



    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/billing/catalog/prices/{id}";


      string json = @"{
  ""name"": ""string"",
  ""transform_quantity"": {
    ""divide_by"": 0,
    ""round"": ""string""
  },
  ""provider"": ""string"",
  ""price_in_decimal"": ""string"",
  ""tiers"": [
    {
      ""up_to"": null,
      ""unit_price_in_decimal"": ""string"",
      ""flat_price_in_decimal"": ""string""
    }
  ],
  ""period_units"": ""string"",
  ""plan_id"": ""string"",
  ""id"": ""string"",
  ""status"": ""string"",
  ""pricing_model"": ""string"",
  ""tax_behavior"": ""string"",
  ""currency"": ""string"",
  ""metadata"": null,
  ""created_at"": ""2024-04-11T04:01:35.090Z"",
  ""unit"": ""string"",
  ""usage_aggregator"": ""string"",
  ""period"": 0
}";
      var content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);


    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, MoesifPrice content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }


    /// Serialize an object to Json
    private StringContent SerializeObject(MoesifPrice content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/catalog/prices/{id}?provider=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

PUT /~/billing/catalog/prices/{id}

Update a Moesif Price

PUT https://api.moesif.com/v1/~/billing/catalog/prices/{id}

Example Request

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Parameters

Name In Type Required Description
id path string true none
provider query string true none
body body MoesifPrice true none

Example responses

200 Response

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Responses

Status Meaning Description Schema
200 OK success MoesifPrice

Billing Meters

listMeters

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/meters \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/meters',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/meters', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/meters',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/meters', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/meters")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/meters";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/meters");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/meters

List Billing Meters

List Billing Meters

GET https://api.moesif.com/v1/~/billing/meters

Parameters

Name In Type Required Description

Example responses

200 Response

[
  {
    "name": "string",
    "billing_plan": {
      "provider_slug": "string",
      "friendly_name": "string",
      "params": {
        "usage_rounding_mode": "string",
        "webhook_params": {
          "reporting": {},
          "channel_ids": [
            null
          ],
          "custom_plan": {}
        },
        "recurly_params": {
          "plan": {},
          "add_on": {},
          "add_ons": [
            null
          ]
        },
        "chargebee_params": {
          "item_plan": {},
          "item_price": {},
          "item_prices": [
            null
          ],
          "reporting": {}
        },
        "stripe_params": {
          "product": {},
          "price": {},
          "prices": [
            null
          ],
          "reporting": {}
        },
        "zuora_params": {
          "plan_id": "string",
          "price_id": "string",
          "price_ids": [
            null
          ]
        },
        "usage_multiplier": null
      }
    },
    "url_query": "string",
    "_id": "string",
    "slug": "string",
    "status": "string",
    "modified_at": "2024-04-11T04:01:35.090Z",
    "es_query": "string",
    "created_at": "2024-04-11T04:01:35.090Z",
    "zero_balance_behavior": "string",
    "app_id": "string",
    "org_id": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [BillingMeterDocument] false none none
» name string true none none
» billing_plan object true none none
»» provider_slug string true none none
»» friendly_name string false none none
»» params object false none none
»»» usage_rounding_mode string false none none
»»» webhook_params object false none none
»»»» reporting object false none none
»»»»» report_when [string] true none none
»»»» channel_ids [string] true none none
»»»» custom_plan object true none none
»»»»» plan_id string true none none
»»» recurly_params object false none none
»»»» plan object false none none
»»»»» name string false none none
»»»»» id string false none none
»»»»» code string true none none
»»»» add_on object false none none
»»»»» name string false none none
»»»»» currencies [RecurlyCurrencyAmount] false none none
»»»»»» currency string true none none
»»»»»» unit_amount double false none none
»»»»»» unit_amount_decimal string false none none
»»»»» usage_percentage double false none none
»»»»» add_on_type string false none none
»»»»» external_sku string false none none
»»»»» state string false none none
»»»»» tiers [RecurlyAddOnTier] false none none
»»»»»» ending_quantity integer(int64) false none none
»»»»»» currencies [RecurlyCurrencyAmount] true none none
»»»»» tier_type string false none none
»»»»» code string true none none
»»»»» plan_id string false none none
»»»»» id string false none none
»»»»» percentage_tiers [RecurlyAddOnPercentageTiers] false none none
»»»»»» tiers [RecurlyAddOnPercentageTier] false none none
»»»»»»» ending_amount double false none none
»»»»»»» usage_percent string false none none
»»»»»» currency string false none none
»»»»» usage_type string false none none
»»»»» created_at string false none none
»»»»» usage_calculation_type string false none none
»»»»» updated_at string false none none
»»»»» deleted_at string false none none
»»»» add_ons [RecurlyPlanAddOn] false none none
»»» chargebee_params object false none none
»»»» item_plan object false none none
»»»»» name string false none none
»»»»» item_family_id string false none none
»»»»» description string false none none
»»»»» usage_calculation string false none none
»»»»» external_name string false none none
»»»»» metered boolean false none none
»»»»» id string true none none
»»»»» status string false none none
»»»»» unit string false none none
»»»»» updated_at integer(int64) false none none
»»»»» archived_at integer(int64) false none none
»»»» item_price object false none none
»»»»» name string false none none
»»»»» item_id string false none none
»»»»» description string false none none
»»»»» price integer(int64) false none none
»»»»» price_in_decimal string false none none
»»»»» external_name string false none none
»»»»» tiers [ChargebeeItemPriceTier] false none none
»»»»»» starting_unit integer(int32) true none none
»»»»»» ending_unit integer(int32) false none none
»»»»»» price integer(int32) true none none
»»»»» trial_end_action string false none none
»»»»» trial_period integer(int64) false none none
»»»»» id string true none none
»»»»» status string false none none
»»»»» pricing_model string false none none
»»»»» created_at integer(int64) false none none
»»»»» period_unit string false none none
»»»»» updated_at integer(int64) false none none
»»»»» trial_period_unit string false none none
»»»»» item_type string false none none
»»»»» currency_code string false none none
»»»»» archived_at integer(int64) false none none
»»»»» free_quantity integer(int64) false none none
»»»»» period integer(int64) false none none
»»»» item_prices [ChargebeeItemPrice] false none none
»»»» reporting object false none none
»»»»» reporting_period string false none none
»»» stripe_params object false none none
»»»» product object false none none
»»»»» name string true none none
»»»»» description string false none none
»»»»» unit_label string false none none
»»»»» id string true none none
»»»»» usage_type string false none none
»»»» price object false none none
»»»»» tiers_mode string false none none
»»»»» transform_quantity object false none none
»»»»»» divide_by integer(int64) false none none
»»»»»» round string false none none
»»»»» price_id string true none none
»»»»» tiers [StripeTier] false none none
»»»»»» flat_amount_decimal string false none none
»»»»»» up_to integer(int64) false none none
»»»»»» unit_amount_decimal string false none none
»»»»»» flat_amount integer(int64) false none none
»»»»»» unit_amount integer(int64) false none none
»»»»» recurring object false none none
»»»»»» trial_period_days integer(int64) false none none
»»»»»» interval string false none none
»»»»»» usage_type string false none none
»»»»»» interval_count integer(int64) false none none
»»»»»» aggregate_usage string false none none
»»»»» unit_amount_decimal string false none none
»»»»» price_nickname string false none none
»»»»» currency string false none none
»»»»» billing_scheme string false none none
»»»»» unit_amount integer(int64) false none none
»»»»» created integer(int64) false none none
»»»»» active boolean false none none
»»»» prices [StripePrice] false none none
»»»» reporting object false none none
»»» zuora_params object false none none
»»»» plan_id string false none none
»»»» price_id string false none none
»»»» price_ids [string] false none none
»»» usage_multiplier double false none none
» url_query string true none none
» _id string false none none
» slug string true none none
» status string true none none
» modified_at string(date-time) true none none
» es_query string true none none
» created_at string(date-time) true none none
» zero_balance_behavior string false none none
» app_id string true none none
» org_id string true none none

getMeter

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/meters/{meterId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/meters/{meterId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/meters/{meterId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/meters/{meterId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/meters/{meterId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/meters/{meterId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/meters/{meterId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/meters/{meterId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/meters/{meterId}

Get Billing Meter by id

Get Billing Meter by id

GET https://api.moesif.com/v1/~/billing/meters/{meterId}

Parameters

Name In Type Required Description
meterId path string true none

Example responses

200 Response

{
  "name": "string",
  "billing_plan": {
    "provider_slug": "string",
    "friendly_name": "string",
    "params": {
      "usage_rounding_mode": "string",
      "webhook_params": {
        "reporting": {
          "report_when": null
        },
        "channel_ids": [
          "string"
        ],
        "custom_plan": {
          "plan_id": null
        }
      },
      "recurly_params": {
        "plan": {
          "name": null,
          "id": null,
          "code": null
        },
        "add_on": {
          "name": null,
          "currencies": null,
          "usage_percentage": null,
          "add_on_type": null,
          "external_sku": null,
          "state": null,
          "tiers": null,
          "tier_type": null,
          "code": null,
          "plan_id": null,
          "id": null,
          "percentage_tiers": null,
          "usage_type": null,
          "created_at": null,
          "usage_calculation_type": null,
          "updated_at": null,
          "deleted_at": null
        },
        "add_ons": [
          {}
        ]
      },
      "chargebee_params": {
        "item_plan": {
          "name": null,
          "item_family_id": null,
          "description": null,
          "usage_calculation": null,
          "external_name": null,
          "metered": null,
          "id": null,
          "status": null,
          "unit": null,
          "updated_at": null,
          "archived_at": null
        },
        "item_price": {
          "name": null,
          "item_id": null,
          "description": null,
          "price": null,
          "price_in_decimal": null,
          "external_name": null,
          "tiers": null,
          "trial_end_action": null,
          "trial_period": null,
          "id": null,
          "status": null,
          "pricing_model": null,
          "created_at": null,
          "period_unit": null,
          "updated_at": null,
          "trial_period_unit": null,
          "item_type": null,
          "currency_code": null,
          "archived_at": null,
          "free_quantity": null,
          "period": null
        },
        "item_prices": [
          {}
        ],
        "reporting": {
          "reporting_period": null
        }
      },
      "stripe_params": {
        "product": {
          "name": null,
          "description": null,
          "unit_label": null,
          "id": null,
          "usage_type": null
        },
        "price": {
          "tiers_mode": null,
          "transform_quantity": null,
          "price_id": null,
          "tiers": null,
          "recurring": null,
          "unit_amount_decimal": null,
          "price_nickname": null,
          "currency": null,
          "billing_scheme": null,
          "unit_amount": null,
          "created": null,
          "active": null
        },
        "prices": [
          {}
        ],
        "reporting": {
          "reporting_period": null
        }
      },
      "zuora_params": {
        "plan_id": "string",
        "price_id": "string",
        "price_ids": [
          "string"
        ]
      },
      "usage_multiplier": null
    }
  },
  "url_query": "string",
  "_id": "string",
  "slug": "string",
  "status": "string",
  "modified_at": "2024-04-11T04:01:35.090Z",
  "es_query": "string",
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
200 OK success BillingMeterDocument

deleteMeter

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/billing/meters/{meterId} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/meters/{meterId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/billing/meters/{meterId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/billing/meters/{meterId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/billing/meters/{meterId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/billing/meters/{meterId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/billing/meters/{meterId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/meters/{meterId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/billing/meters/{meterId}

Delete Billing Meter by id

Delete Billing Meter by id

DELETE https://api.moesif.com/v1/~/billing/meters/{meterId}

Parameters

Name In Type Required Description
meterId path string true none

Responses

Status Meaning Description Schema
200 OK success None

Billing Reports

getBillingReports

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/reports \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/reports',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/reports', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/reports',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/reports', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/reports")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/reports";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/reports");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/reports

Get BillingReports

Query audit history of billing reports to external billing providers

GET https://api.moesif.com/v1/~/billing/reports

Parameters

Name In Type Required Description
from query string(date-time) false none
to query string(date-time) false none
billing_meter_id query string false none
company_id query string false none
provider query string false none
subscription_id query string false none
success query boolean false none
status_code query integer(int32) false none
error_code query string false none
type query string false none

Example responses

200 Response

[
  {
    "ending_balance": {
      "sequence_id": 0,
      "current_balance": 0.1,
      "pending_activity": 0.1,
      "available_balance": 0.1
    },
    "company_id": "string",
    "success": true,
    "provider": "string",
    "report_version": 0,
    "usage_end_time": "2024-04-11T04:01:35.090Z",
    "usage": {
      "invoice": {
        "period_start": "2024-04-11T04:01:35.090Z",
        "period_end": "2024-04-11T04:01:35.090Z",
        "id": "string"
      },
      "aggregator": "string"
    },
    "_id": "string",
    "meter_usage": 0,
    "last_success_time": "2024-04-11T04:01:35.090Z",
    "beginning_balance": {
      "sequence_id": 0,
      "current_balance": 0.1,
      "pending_activity": 0.1,
      "available_balance": 0.1
    },
    "billing_meter_id": "string",
    "amount": 0.1,
    "usage_start_time": "2024-04-11T04:01:35.090Z",
    "status": "string",
    "provider_requests": [
      {
        "success": true,
        "status_code": 0,
        "job_id": "string",
        "error_message": "string",
        "error_code": "string",
        "request_time": "2024-04-11T04:01:35.090Z"
      }
    ],
    "currency": "string",
    "report_total_usage": 0,
    "channel_requests": [
      {
        "channel_id": "string",
        "channel_name": "string",
        "provider_requests": [
          {
            "success": true,
            "status_code": 0,
            "job_id": "string",
            "error_message": "string",
            "error_code": "string",
            "request_time": "2024-04-11T04:01:35.090Z"
          }
        ]
      }
    ],
    "created_at": "2024-04-11T04:01:35.090Z",
    "app_id": "string",
    "subscription_id": "string",
    "subscription_period_start": "2024-04-11T04:01:35.090Z",
    "balance_changes": [
      {
        "amount": 0.1
      }
    ],
    "type": "string",
    "updated_at": "2024-04-11T04:01:35.090Z",
    "org_id": "string",
    "subscription_period_end": "2024-04-11T04:01:35.090Z",
    "meter_metric": 0
  }
]

Responses

Status Meaning Description Schema
200 OK success Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [BillingReport] false none none
» ending_balance object false none none
»» sequence_id integer(int32) true none none
»» current_balance number(double) true none none
»» pending_activity number(double) true none none
»» available_balance number(double) true none none
» company_id string true none none
» success boolean true none none
» provider string true none none
» report_version integer(int32) false none none
» usage_end_time string(date-time) true none none
» usage object false none none
»» invoice object false none none
»»» period_start string(date-time) false none none
»»» period_end string(date-time) false none none
»»» id string true none none
»» aggregator string false none none
» _id string false none none
» meter_usage integer(int64) true none none
» last_success_time string(date-time) false none none
» beginning_balance object false none none
» billing_meter_id string true none none
» amount number(double) false none none
» usage_start_time string(date-time) true none none
» status string false none none
» provider_requests [ProviderRequest] true none none
»» success boolean true none none
»» status_code integer(int32) true none none
»» job_id string true none none
»» error_message string true none none
»» error_code string true none none
»» request_time string(date-time) true none none
» currency string false none none
» report_total_usage integer(int64) true none none
» channel_requests [ChannelRequest] false none none
»» channel_id string true none none
»» channel_name string true none none
»» provider_requests [ProviderRequest] true none none
» created_at string(date-time) false none none
» app_id string true none none
» subscription_id string true none none
» subscription_period_start string(date-time) false none none
» balance_changes [BalanceChange] false none none
»» amount number(double) true none none
» type string false none none
» updated_at string(date-time) false none none
» org_id string true none none
» subscription_period_end string(date-time) false none none
» meter_metric integer(int64) true none none

getBillingReportsMetrics

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/billing/reports/metrics?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/reports/metrics?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/billing/reports/metrics', params={
  'from': '2024-04-11T04:01:35.090Z',  'to': '2024-04-11T04:01:35.090Z'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/billing/reports/metrics',
  params: {
  'from' => 'string(date-time)',
  'to' => 'string(date-time)'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/billing/reports/metrics', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/billing/reports/metrics")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/reports/metrics";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/reports/metrics?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/billing/reports/metrics

Get BillingReports' values for a given meter and time range for a single company or all companies

Get BillingReports' values for a given meter and time range for a single company or all companies

GET https://api.moesif.com/v1/~/billing/reports/metrics

Parameters

Name In Type Required Description
from query string(date-time) true none
to query string(date-time) true none
billing_meter_id query string false none
success query boolean false none
aggregator query string false none
interval query string false none
company_id query string false none
subscription_id query string false none
type query array[string] false none

Example responses

200 Response

{
  "buckets": [
    {
      "start": "2024-04-11T04:01:35.090Z",
      "metric": 0.1,
      "amounts": null,
      "ending_balance": {
        "current_balance": 0.1,
        "pending_activity": 0.1,
        "available_balance": 0.1
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK three buckets of aggregates for the given meter and time range including Metric Value, Reported Usage, and list of errors. BillingMetricResponse

Balance Transactions

createBalanceTransaction

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/billing/reports/balance_transactions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/billing/reports/balance_transactions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}

r = requests.post('https://api.moesif.com/v1/~/billing/reports/balance_transactions', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/billing/reports/balance_transactions',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/billing/reports/balance_transactions', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/billing/reports/balance_transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/billing/reports/balance_transactions";

      string json = @"{
  ""company_id"": ""string"",
  ""description"": ""string"",
  ""expire_at"": ""2024-04-11T04:01:35.090Z"",
  ""active_at"": ""2024-04-11T04:01:35.090Z"",
  ""amount"": 0.1,
  ""transaction_id"": ""string"",
  ""subscription_id"": ""string"",
  ""type"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(BillingReportBalanceTransCreate content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(BillingReportBalanceTransCreate content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/billing/reports/balance_transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/billing/reports/balance_transactions

Post BillingReports Balance Transactions

Post a billing report of type balance_transaction

POST https://api.moesif.com/v1/~/billing/reports/balance_transactions

Example Request

{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}

Parameters

Name In Type Required Description
body body BillingReportBalanceTransCreate true none

Responses

Status Meaning Description Schema
204 No Content success, no content and BillingReports were created or updated None

Cohorts

createCohort

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/cohorts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

r = requests.post('https://api.moesif.com/v1/~/cohorts', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/cohorts',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/cohorts', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/cohorts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/cohorts";

      string json = @"{
  ""channels"": null,
  ""priority"": 0,
  ""url_query"": ""string"",
  ""criteria"": {},
  ""notification_rule"": {
    ""send_on_addition"": true,
    ""send_on_removal"": true,
    ""period"": ""string"",
    ""fields"": [
      ""string""
    ]
  },
  ""cohort_name"": ""string"",
  ""to"": ""string"",
  ""week_starts_on"": 0,
  ""locked_by"": ""string"",
  ""from"": ""string"",
  ""cohort_type"": ""string"",
  ""time_zone"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CohortCreateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CohortCreateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/cohorts

Create New Cohort

POST https://api.moesif.com/v1/~/cohorts

Example Request

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

Parameters

Name In Type Required Description
body body CohortCreateItem true none

Example responses

201 Response

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": "string",
  "_id": "string",
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "modified_at": "2024-04-11T04:01:35.090Z",
  "from": "string",
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "cohort_type": "string",
  "time_zone": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
201 Created success CohortDocument

getCohorts

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/cohorts?cohort_type=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts?cohort_type=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/cohorts', params={
  'cohort_type': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/cohorts',
  params: {
  'cohort_type' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/cohorts', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/cohorts")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/cohorts";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts?cohort_type=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/cohorts

Get Cohorts

GET https://api.moesif.com/v1/~/cohorts

Parameters

Name In Type Required Description
cohort_type query string true none

Responses

Status Meaning Description Schema
200 OK success None

updateCohort

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/cohorts/{cohortId} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts/{cohortId}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

r = requests.post('https://api.moesif.com/v1/~/cohorts/{cohortId}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/cohorts/{cohortId}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/cohorts/{cohortId}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/cohorts/{cohortId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/cohorts/{cohortId}";

      string json = @"{
  ""channels"": null,
  ""priority"": 0,
  ""url_query"": ""string"",
  ""criteria"": {},
  ""sample_rate"": 0,
  ""notification_rule"": {
    ""send_on_addition"": true,
    ""send_on_removal"": true,
    ""period"": ""string"",
    ""fields"": [
      ""string""
    ]
  },
  ""cohort_name"": ""string"",
  ""to"": ""string"",
  ""week_starts_on"": 0,
  ""locked_by"": ""string"",
  ""from"": ""string"",
  ""cohort_type"": ""string"",
  ""time_zone"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(CohortUpdateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(CohortUpdateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts/{cohortId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/cohorts/{cohortId}

Update a Cohort

POST https://api.moesif.com/v1/~/cohorts/{cohortId}

Example Request

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

Parameters

Name In Type Required Description
cohortId path string true none
body body CohortUpdateItem true none

Responses

Status Meaning Description Schema
200 OK success None

getCohort

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/cohorts/{cohortId}?cohort_type=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts/{cohortId}?cohort_type=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/cohorts/{cohortId}', params={
  'cohort_type': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/cohorts/{cohortId}',
  params: {
  'cohort_type' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/cohorts/{cohortId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/cohorts/{cohortId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/cohorts/{cohortId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts/{cohortId}?cohort_type=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/cohorts/{cohortId}

Get Cohort

GET https://api.moesif.com/v1/~/cohorts/{cohortId}

Parameters

Name In Type Required Description
cohort_type query string true none
cohortId path string true none

Responses

Status Meaning Description Schema
200 OK success None

deleteCohort

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/cohorts/{cohortId} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts/{cohortId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/cohorts/{cohortId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/cohorts/{cohortId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/cohorts/{cohortId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/cohorts/{cohortId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/cohorts/{cohortId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts/{cohortId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/cohorts/{cohortId}

Delete Cohort

DELETE https://api.moesif.com/v1/~/cohorts/{cohortId}

Parameters

Name In Type Required Description
cohortId path string true none

Responses

Status Meaning Description Schema
200 OK success None

deleteCohortSampleRate

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/cohorts/{cohortId}/sample_rate

Delete Sample Rate for a Cohort

DELETE https://api.moesif.com/v1/~/cohorts/{cohortId}/sample_rate

Parameters

Name In Type Required Description
cohortId path string true none

Responses

Status Meaning Description Schema
200 OK success None

Dashboards

deleteDashboards

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/dashboard/{dashId} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboard/{dashId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/dashboard/{dashId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/dashboard/{dashId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/dashboard/{dashId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/dashboard/{dashId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/dashboard/{dashId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboard/{dashId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/dashboard/{dashId}

Delete a Dashboard

DELETE https://api.moesif.com/v1/~/dashboard/{dashId}

Parameters

Name In Type Required Description
dashId path string true none
parent_id query string false none

Responses

Status Meaning Description Schema
200 OK success None

copyDashboard

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/dashboard/{id}/copy \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboard/{id}/copy',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.post('https://api.moesif.com/v1/~/dashboard/{id}/copy', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.post 'https://api.moesif.com/v1/~/dashboard/{id}/copy',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/dashboard/{id}/copy', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/dashboard/{id}/copy")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboard/{id}/copy";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboard/{id}/copy");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/dashboard/{id}/copy

Copy Dashboard

POST https://api.moesif.com/v1/~/dashboard/{id}/copy

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
201 Created success None

createDashboard

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/dashboards \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.post('https://api.moesif.com/v1/~/dashboards', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.post 'https://api.moesif.com/v1/~/dashboards',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/dashboards', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/dashboards")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboards";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/dashboards

Create New Dashboard

POST https://api.moesif.com/v1/~/dashboards

Parameters

Name In Type Required Description

Example responses

201 Response

{
  "parent": "string",
  "name": "string",
  "_id": "string",
  "auth_user_id": "string",
  "profile_view_promotion": "string",
  "app_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z"
}

Responses

Status Meaning Description Schema
201 Created success DashboardDocument

getDashboards

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/dashboards \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/dashboards', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/dashboards',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/dashboards', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/dashboards")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboards";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/dashboards

Get a Dashboard

GET https://api.moesif.com/v1/~/dashboards

Parameters

Name In Type Required Description

Responses

Status Meaning Description Schema
200 OK success None

copyAllDashboards

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/dashboards/copy?app_id=string&to_app_id=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/copy?app_id=string&to_app_id=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.post('https://api.moesif.com/v1/~/dashboards/copy', params={
  'app_id': 'string',  'to_app_id': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.post 'https://api.moesif.com/v1/~/dashboards/copy',
  params: {
  'app_id' => 'string',
  'to_app_id' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/dashboards/copy', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/dashboards/copy")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboards/copy";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/copy?app_id=string&to_app_id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/dashboards/copy

Copy All Dashboards

POST https://api.moesif.com/v1/~/dashboards/copy

Parameters

Name In Type Required Description

Responses

Status Meaning Description Schema
201 Created success None

updateDashboard

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/dashboards/{dashId} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}' 
const fetch = require('node-fetch');
const inputBody = {
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/{dashId}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

r = requests.post('https://api.moesif.com/v1/~/dashboards/{dashId}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

result = RestClient.post 'https://api.moesif.com/v1/~/dashboards/{dashId}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/dashboards/{dashId}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/dashboards/{dashId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboards/{dashId}";

      string json = @"{
  ""parent"": ""string"",
  ""name"": ""string"",
  ""dashboard_id"": ""string"",
  ""workspace_ids"": [
    [
      ""string""
    ]
  ],
  ""sort_order"": 0.1,
  ""dashboard_ids"": [
    ""string""
  ],
  ""policy"": {
    ""acl"": [
      {
        ""grantee"": ""string"",
        ""permission"": ""string""
      }
    ],
    ""resource"": {},
    ""api_scopes"": [
      ""string""
    ],
    ""original_encoded_resource"": ""string""
  }
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(DashboardUpdateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(DashboardUpdateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/{dashId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/dashboards/{dashId}

Update a Dashboard

POST https://api.moesif.com/v1/~/dashboards/{dashId}

Example Request

{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Parameters

Name In Type Required Description
dashId path string true none
body body DashboardUpdateItem true none

Responses

Status Meaning Description Schema
201 Created success None

deleteDashboard

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/dashboards/{dashId} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/{dashId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/dashboards/{dashId}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/dashboards/{dashId}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/dashboards/{dashId}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/dashboards/{dashId}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/dashboards/{dashId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/{dashId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/dashboards/{dashId}

Delete a Dashboard

DELETE https://api.moesif.com/v1/~/dashboards/{dashId}

Parameters

Name In Type Required Description
dashId path string true none

Responses

Status Meaning Description Schema
200 OK success None

cascadeDeleteDashboard

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/dashboards/{dashId}/cascade \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/{dashId}/cascade',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/dashboards/{dashId}/cascade', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/dashboards/{dashId}/cascade',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/dashboards/{dashId}/cascade', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/dashboards/{dashId}/cascade")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/dashboards/{dashId}/cascade";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/{dashId}/cascade");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/dashboards/{dashId}/cascade

Casccade delete a Dashboard

DELETE https://api.moesif.com/v1/~/dashboards/{dashId}/cascade

Parameters

Name In Type Required Description
dashId path string true none

Responses

Status Meaning Description Schema
200 OK success None

addACLPermissions

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/dashboards/{id}/policy/acl \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/{id}/policy/acl',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.post('https://api.moesif.com/v1/~/dashboards/{id}/policy/acl', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.post 'https://api.moesif.com/v1/~/dashboards/{id}/policy/acl',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/dashboards/{id}/policy/acl', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/dashboards/{id}/policy/acl")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/dashboards/{id}/policy/acl";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/{id}/policy/acl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/dashboards/{id}/policy/acl

Add Dashboards ACL permission

POST https://api.moesif.com/v1/~/dashboards/{id}/policy/acl

Parameters

Name In Type Required Description
id path string true none
grantee query string false none
permission query string false none

Responses

Status Meaning Description Schema
200 OK success None

deleteACLPermissions

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/dashboards/{id}/policy/acl?grantee=string \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/dashboards/{id}/policy/acl?grantee=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/dashboards/{id}/policy/acl', params={
  'grantee': 'string'

}, headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/dashboards/{id}/policy/acl',
  params: {
  'grantee' => 'string'
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/dashboards/{id}/policy/acl', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/dashboards/{id}/policy/acl")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/dashboards/{id}/policy/acl";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/dashboards/{id}/policy/acl?grantee=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/dashboards/{id}/policy/acl

Delete Dashboards ACL permission

DELETE https://api.moesif.com/v1/~/dashboards/{id}/policy/acl

Parameters

Name In Type Required Description
id path string true none
grantee query string true none

Responses

Status Meaning Description Schema
200 OK success None

Email Templates

createEmailTemplate

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/emails/templates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/emails/templates',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

r = requests.post('https://api.moesif.com/v1/~/emails/templates', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}')

result = RestClient.post 'https://api.moesif.com/v1/~/emails/templates',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/emails/templates', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/emails/templates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/emails/templates";

      string json = @"{
  ""name"": ""string"",
  ""state"": 0,
  ""cohorts"": [
    {
      ""id"": ""string"",
      ""type"": ""string"",
      ""config"": {
        ""url_query"": ""string"",
        ""criteria"": ""string"",
        ""cohort_name"": ""string"",
        ""to"": ""string"",
        ""from"": ""string"",
        ""cohort_type"": ""string"",
        ""time_zone"": ""string""
      }
    }
  ],
  ""dynamic_fields"": [
    {
      ""token"": ""string"",
      ""field"": ""string"",
      ""aggregator"": ""avg""
    }
  ],
  ""content"": {
    ""html"": ""string"",
    ""chunks"": {}
  },
  ""template"": {
    ""subject"": ""string"",
    ""editor"": ""string"",
    ""design"": {},
    ""thumbnail_url"": ""string""
  },
  ""period"": ""string"",
  ""addresses"": {
    ""from"": ""string"",
    ""cc"": [
      ""string""
    ],
    ""bcc"": [
      ""string""
    ]
  }
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(EmailTemplateCreateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(EmailTemplateCreateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/emails/templates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/emails/templates

Create New Email Template

POST https://api.moesif.com/v1/~/emails/templates

Example Request

{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

Parameters

Name In Type Required Description
body body EmailTemplateCreateItem true none

Example responses

Responses

Status Meaning Description Schema
201 Created success None

Response Schema

getEmailTemplates

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/emails/templates \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/emails/templates',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/emails/templates', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/emails/templates',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/emails/templates', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/emails/templates")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/emails/templates";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/emails/templates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/emails/templates

Get Email Templates

GET https://api.moesif.com/v1/~/emails/templates

Parameters

Name In Type Required Description
cohort_id query string false none

Responses

Status Meaning Description Schema
200 OK success None

updateEmailTemplate

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/emails/templates/{id} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/emails/templates/{id}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

r = requests.post('https://api.moesif.com/v1/~/emails/templates/{id}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}')

result = RestClient.post 'https://api.moesif.com/v1/~/emails/templates/{id}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/emails/templates/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/emails/templates/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/emails/templates/{id}";

      string json = @"{
  ""name"": ""string"",
  ""state"": 0,
  ""cohorts"": [
    {
      ""id"": ""string"",
      ""type"": ""string"",
      ""config"": {
        ""url_query"": ""string"",
        ""criteria"": ""string"",
        ""cohort_name"": ""string"",
        ""to"": ""string"",
        ""from"": ""string"",
        ""cohort_type"": ""string"",
        ""time_zone"": ""string""
      }
    }
  ],
  ""dynamic_fields"": [
    {
      ""token"": ""string"",
      ""field"": ""string"",
      ""aggregator"": ""avg""
    }
  ],
  ""content"": {
    ""html"": ""string"",
    ""chunks"": {}
  },
  ""template"": {
    ""subject"": ""string"",
    ""editor"": ""string"",
    ""design"": {},
    ""thumbnail_url"": ""string""
  },
  ""period"": ""string"",
  ""addresses"": {
    ""from"": ""string"",
    ""cc"": [
      ""string""
    ],
    ""bcc"": [
      ""string""
    ]
  }
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(EmailTemplateUpdateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(EmailTemplateUpdateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/emails/templates/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/emails/templates/{id}

Update an Email Template

POST https://api.moesif.com/v1/~/emails/templates/{id}

Example Request

{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

Parameters

Name In Type Required Description
id path string true none
body body EmailTemplateUpdateItem true none

Responses

Status Meaning Description Schema
200 OK success None

getEmailTemplate

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/emails/templates/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/emails/templates/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/emails/templates/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/emails/templates/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/emails/templates/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/emails/templates/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/emails/templates/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/emails/templates/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/emails/templates/{id}

Get Email Template

GET https://api.moesif.com/v1/~/emails/templates/{id}

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
200 OK success None

deleteEmailTemplate

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/emails/templates/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/emails/templates/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/emails/templates/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/emails/templates/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/emails/templates/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/emails/templates/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/emails/templates/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/emails/templates/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/emails/templates/{id}

Delete Email Template

DELETE https://api.moesif.com/v1/~/emails/templates/{id}

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
200 OK success None

Governance Rules

createGovernanceRule

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/governance/rules \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/governance/rules',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

r = requests.post('https://api.moesif.com/v1/~/governance/rules', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/governance/rules',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/governance/rules', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/governance/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/governance/rules";

      string json = @"{
  ""name"": ""string"",
  ""priority"": 0,
  ""model"": ""string"",
  ""state"": 0,
  ""cohorts"": [
    {}
  ],
  ""variables"": [
    {
      ""name"": ""string"",
      ""path"": ""string""
    }
  ],
  ""applied_to"": ""string"",
  ""block"": true,
  ""response"": {
    ""status"": 0,
    ""headers"": null,
    ""body"": {},
    ""original_encoded_body"": ""string""
  },
  ""applied_to_unidentified"": true,
  ""regex_config"": [
    {
      ""conditions"": [
        {
          ""path"": ""string"",
          ""value"": ""string""
        }
      ],
      ""sample_rate"": 0
    }
  ],
  ""plans"": [
    {
      ""provider"": ""string"",
      ""plan_id"": ""string"",
      ""price_ids"": [
        ""string""
      ]
    }
  ],
  ""type"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(GovernanceRuleCreateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(GovernanceRuleCreateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/governance/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/governance/rules

Create New Governance Rules

POST https://api.moesif.com/v1/~/governance/rules

Example Request

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

Parameters

Name In Type Required Description
body body GovernanceRuleCreateItem true none

Example responses

201 Response

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "_id": "string",
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
201 Created success GovernanceRulesDocument

getGovernanceRules

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/governance/rules \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/governance/rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/governance/rules', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/governance/rules',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/governance/rules', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/governance/rules")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/governance/rules";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/governance/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/governance/rules

Get Governance Rules

GET https://api.moesif.com/v1/~/governance/rules

Parameters

Name In Type Required Description

Example responses

200 Response

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "_id": "string",
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
200 OK success GovernanceRulesDocument

updateGovernanceRule

Code samples

# You can also use wget
curl -X POST https://api.moesif.com/v1/~/governance/rules/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

  -d '{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}' 
const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/governance/rules/{id}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}
input_body = {
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

r = requests.post('https://api.moesif.com/v1/~/governance/rules/{id}', headers = headers, json = input_body)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

input_payload = JSON.parse('{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}')

result = RestClient.post 'https://api.moesif.com/v1/~/governance/rules/{id}',
  params: {
  }, 
  payload: input_payload.to_json, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$inputPayload = json_decode('{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}')

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.moesif.com/v1/~/governance/rules/{id}', array(
        'headers' => $headers,
        'json' => $inputPayload,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }
    jsonPayload := `{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}`
    data := bytes.NewBuffer([]byte(jsonPayload))
    req, err := http.NewRequest("POST", "https://api.moesif.com/v1/~/governance/rules/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://api.moesif.com/v1/~/governance/rules/{id}";

      string json = @"{
  ""name"": ""string"",
  ""priority"": 0,
  ""model"": ""string"",
  ""state"": 0,
  ""cohorts"": [
    {}
  ],
  ""variables"": [
    {
      ""name"": ""string"",
      ""path"": ""string""
    }
  ],
  ""applied_to"": ""string"",
  ""block"": true,
  ""response"": {
    ""status"": 0,
    ""headers"": null,
    ""body"": {},
    ""original_encoded_body"": ""string""
  },
  ""applied_to_unidentified"": true,
  ""regex_config"": [
    {
      ""conditions"": [
        {
          ""path"": ""string"",
          ""value"": ""string""
        }
      ],
      ""sample_rate"": 0
    }
  ],
  ""plans"": [
    {
      ""provider"": ""string"",
      ""plan_id"": ""string"",
      ""price_ids"": [
        ""string""
      ]
    }
  ],
  ""type"": ""string""
}";
      var content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(GovernanceRuleUpdateItem content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(GovernanceRuleUpdateItem content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/governance/rules/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",'application/json');
con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

// Enable sending a request body
con.setDoOutput(true);

String jsonPayload = """{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}""";

// Write payload to the request
try(OutputStream os = con.getOutputStream()) {
    byte[] input = jsonPayload.getBytes("utf-8");
    os.write(input, 0, input.length);           
}

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /~/governance/rules/{id}

Update a Governance Rule

POST https://api.moesif.com/v1/~/governance/rules/{id}

Example Request

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

Parameters

Name In Type Required Description
id path string true none
body body GovernanceRuleUpdateItem true none

Example responses

201 Response

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "_id": "string",
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
201 Created success GovernanceRulesDocument

getGovernanceRule

Code samples

# You can also use wget
curl -X GET https://api.moesif.com/v1/~/governance/rules/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/governance/rules/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.get('https://api.moesif.com/v1/~/governance/rules/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.get 'https://api.moesif.com/v1/~/governance/rules/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.moesif.com/v1/~/governance/rules/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("GET", "https://api.moesif.com/v1/~/governance/rules/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://api.moesif.com/v1/~/governance/rules/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/governance/rules/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

con.setRequestProperty("Accept",'application/json');
con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /~/governance/rules/{id}

Get a Governance Rule

GET https://api.moesif.com/v1/~/governance/rules/{id}

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "_id": "string",
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string",
  "org_id": "string"
}

Responses

Status Meaning Description Schema
200 OK success GovernanceRulesDocument

deleteGovernanceRule

Code samples

# You can also use wget
curl -X DELETE https://api.moesif.com/v1/~/governance/rules/{id} \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY'

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer YOUR_MANAGEMENT_API_KEY'
};

fetch('https://api.moesif.com/v1/~/governance/rules/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Authorization': 'Bearer YOUR_MANAGEMENT_API_KEY'
}

r = requests.delete('https://api.moesif.com/v1/~/governance/rules/{id}', headers = headers)

print(r.json())

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY'
}

result = RestClient.delete 'https://api.moesif.com/v1/~/governance/rules/{id}',
  params: {
  }, 
  headers: headers

p JSON.parse(result)

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer YOUR_MANAGEMENT_API_KEY',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://api.moesif.com/v1/~/governance/rules/{id}', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer YOUR_MANAGEMENT_API_KEY"},
    }


    req, err := http.NewRequest("DELETE", "https://api.moesif.com/v1/~/governance/rules/{id}")
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }




    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://api.moesif.com/v1/~/governance/rules/{id}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

URL obj = new URL("https://api.moesif.com/v1/~/governance/rules/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");

con.setRequestProperty("Authorization",'Bearer YOUR_MANAGEMENT_API_KEY');

int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /~/governance/rules/{id}

Delete a Governance Rule

DELETE https://api.moesif.com/v1/~/governance/rules/{id}

Parameters

Name In Type Required Description
id path string true none

Responses

Status Meaning Description Schema
204 No Content success None

Schemas

StripeTier

{
  "flat_amount_decimal": "string",
  "up_to": 0,
  "unit_amount_decimal": "string",
  "flat_amount": 0,
  "unit_amount": 0
}

Properties

Name Type Required Restrictions Description
flat_amount_decimal string false none none
up_to integer(int64) false none none
unit_amount_decimal string false none none
flat_amount integer(int64) false none none
unit_amount integer(int64) false none none

CohortDocument

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": "string",
  "_id": "string",
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "modified_at": "2024-04-11T04:01:35.090Z",
  "from": "string",
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "cohort_type": "string",
  "time_zone": "string",
  "org_id": "string"
}

Properties

Name Type Required Restrictions Description
channels array[string] false none none
priority integer(int32) false none none
url_query string false none none
criteria string true none none
_id string false none none
sample_rate integer(int32) false none none
notification_rule NotificationRule false none none
cohort_name string true none none
to string false none none
week_starts_on integer(int32) false none none
locked_by string false none none
modified_at string(date-time) true none none
from string false none none
created_at string(date-time) true none none
app_id string true none none
cohort_type string true none none
time_zone string false none none
org_id string true none none

RulesResponseItem

{
  "status": 0,
  "headers": null,
  "body": {},
  "original_encoded_body": "string"
}

Properties

Name Type Required Restrictions Description
status integer(int32) false none none
headers .map[string,string] false none none
body object false none none
original_encoded_body string false none none

AppCreate

{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
time_zone string false none none
week_starts_on integer(int32) false none none
custom_app_id string false none none

AppUpdate

{
  "name": "string",
  "time_zone": "string",
  "week_starts_on": 0,
  "custom_app_id": "string"
}

Properties

Name Type Required Restrictions Description
name string false none none
time_zone string false none none
week_starts_on integer(int32) false none none
custom_app_id string false none none

BillingReportUsageInvoice

{
  "period_start": "2024-04-11T04:01:35.090Z",
  "period_end": "2024-04-11T04:01:35.090Z",
  "id": "string"
}

Properties

Name Type Required Restrictions Description
period_start string(date-time) false none none
period_end string(date-time) false none none
id string true none none

CohortCreateItem

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

Properties

Name Type Required Restrictions Description
channels array[string] false none none
priority integer(int32) false none none
url_query string false none none
criteria object true none none
notification_rule NotificationRule false none none
cohort_name string true none none
to string false none none
week_starts_on integer(int32) false none none
locked_by string false none none
from string false none none
cohort_type string true none none
time_zone string false none none

CustomReportPlan

{
  "plan_id": "string"
}

Properties

Name Type Required Restrictions Description
plan_id string true none none

BillingReportUsage

{
  "invoice": {
    "period_start": "2024-04-11T04:01:35.090Z",
    "period_end": "2024-04-11T04:01:35.090Z",
    "id": "string"
  },
  "aggregator": "string"
}

Properties

Name Type Required Restrictions Description
invoice BillingReportUsageInvoice false none none
aggregator string false none none

BillingMetricResponse

{
  "buckets": [
    {
      "start": "2024-04-11T04:01:35.090Z",
      "metric": 0.1,
      "amounts": null,
      "ending_balance": {
        "current_balance": 0.1,
        "pending_activity": 0.1,
        "available_balance": 0.1
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
buckets [BillingMetricBucket] true none none

EmailAddresses

{
  "from": "string",
  "cc": [
    "string"
  ],
  "bcc": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
from string true none none
cc [string] true none none
bcc [string] true none none

Plan

{
  "provider": "string",
  "plan_id": "string",
  "price_ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
provider string true none none
plan_id string true none none
price_ids [string] true none none

SequenceItem

{
  "delay": 0,
  "submit_data": {
    "body": {},
    "url": "string",
    "params": [
      {
        "key": "string",
        "val": "string"
      }
    ],
    "verb": "string",
    "headers": [
      {
        "key": "string",
        "val": "string"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
delay integer(int32) true none none
submit_data SubmitData true none none

Cohort

{
  "id": "string",
  "type": "string",
  "config": {
    "url_query": "string",
    "criteria": "string",
    "cohort_name": "string",
    "to": "string",
    "from": "string",
    "cohort_type": "string",
    "time_zone": "string"
  }
}

Properties

Name Type Required Restrictions Description
id string true none none
type string true none none
config CohortConfig false none none

BalanceChange

{
  "amount": 0.1
}

Properties

Name Type Required Restrictions Description
amount number(double) true none none

StripePrice

{
  "tiers_mode": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "price_id": "string",
  "tiers": [
    {
      "flat_amount_decimal": "string",
      "up_to": 0,
      "unit_amount_decimal": "string",
      "flat_amount": 0,
      "unit_amount": 0
    }
  ],
  "recurring": {
    "trial_period_days": 0,
    "interval": "string",
    "usage_type": "string",
    "interval_count": 0,
    "aggregate_usage": "string"
  },
  "unit_amount_decimal": "string",
  "price_nickname": "string",
  "currency": "string",
  "billing_scheme": "string",
  "unit_amount": 0,
  "created": 0,
  "active": true
}

Properties

Name Type Required Restrictions Description
tiers_mode string false none none
transform_quantity StripeTransformQuantity false none none
price_id string true none none
tiers [StripeTier] false none none
recurring StripeRecurring false none none
unit_amount_decimal string false none none
price_nickname string false none none
currency string false none none
billing_scheme string false none none
unit_amount integer(int64) false none none
created integer(int64) false none none
active boolean false none none

RegexCondition

{
  "path": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
path string true none none
value string true none none

TemplateConfig

{
  "subject": "string",
  "editor": "string",
  "design": {},
  "thumbnail_url": "string"
}

Properties

Name Type Required Restrictions Description
subject string true none none
editor string true none none
design object true none none
thumbnail_url string false none none

RecurlyCurrencyAmount

{
  "currency": "string",
  "unit_amount": null,
  "unit_amount_decimal": "string"
}

Properties

Name Type Required Restrictions Description
currency string true none none
unit_amount double false none none
unit_amount_decimal string false none none

MoesifTransformQuantity

{
  "divide_by": 0,
  "round": "string"
}

Properties

Name Type Required Restrictions Description
divide_by integer(int64) true none none
round string true none none

StripeRecurring

{
  "trial_period_days": 0,
  "interval": "string",
  "usage_type": "string",
  "interval_count": 0,
  "aggregate_usage": "string"
}

Properties

Name Type Required Restrictions Description
trial_period_days integer(int64) false none none
interval string false none none
usage_type string false none none
interval_count integer(int64) false none none
aggregate_usage string false none none

DashboardUpdateItem

{
  "parent": "string",
  "name": "string",
  "dashboard_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Properties

Name Type Required Restrictions Description
parent string false none none
name string false none none
dashboard_id string false none none
workspace_ids [array] false none none
sort_order number(double) false none none
dashboard_ids [string] false none none
policy PolicyItem false none none

Comments

{
  "summary": {
    "count": 0,
    "latest_comment": {
      "auth_user_id": "string",
      "comment_id": "string",
      "mentions": [
        "string"
      ],
      "partner_user_id": "string",
      "message": "string",
      "created_at": "2024-04-11T04:01:35.090Z",
      "updated_at": "2024-04-11T04:01:35.090Z"
    }
  }
}

Properties

Name Type Required Restrictions Description
summary Summary true none none

SignedToken

{
  "_id": "string",
  "token": "string",
  "url": "string"
}

Properties

Name Type Required Restrictions Description
_id string true none none
token string true none none
url string false none none

ChargebeeItemPrice

{
  "name": "string",
  "item_id": "string",
  "description": "string",
  "price": 0,
  "price_in_decimal": "string",
  "external_name": "string",
  "tiers": [
    {
      "starting_unit": 0,
      "ending_unit": 0,
      "price": 0
    }
  ],
  "trial_end_action": "string",
  "trial_period": 0,
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "created_at": 0,
  "period_unit": "string",
  "updated_at": 0,
  "trial_period_unit": "string",
  "item_type": "string",
  "currency_code": "string",
  "archived_at": 0,
  "free_quantity": 0,
  "period": 0
}

Properties

Name Type Required Restrictions Description
name string false none none
item_id string false none none
description string false none none
price integer(int64) false none none
price_in_decimal string false none none
external_name string false none none
tiers [ChargebeeItemPriceTier] false none none
trial_end_action string false none none
trial_period integer(int64) false none none
id string true none none
status string false none none
pricing_model string false none none
created_at integer(int64) false none none
period_unit string false none none
updated_at integer(int64) false none none
trial_period_unit string false none none
item_type string false none none
currency_code string false none none
archived_at integer(int64) false none none
free_quantity integer(int64) false none none
period integer(int64) false none none

MoesifPrice

{
  "name": "string",
  "transform_quantity": {
    "divide_by": 0,
    "round": "string"
  },
  "provider": "string",
  "price_in_decimal": "string",
  "tiers": [
    {
      "up_to": null,
      "unit_price_in_decimal": "string",
      "flat_price_in_decimal": "string"
    }
  ],
  "period_units": "string",
  "plan_id": "string",
  "id": "string",
  "status": "string",
  "pricing_model": "string",
  "tax_behavior": "string",
  "currency": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "usage_aggregator": "string",
  "period": 0
}

Properties

Name Type Required Restrictions Description
name string false none none
transform_quantity MoesifTransformQuantity false none none
provider string false none none
price_in_decimal string false none none
tiers [MoesifPriceTier] false none none
period_units string false none none
plan_id string false none none
id string false none none
status string false none none
pricing_model string false none none
tax_behavior string false none none
currency string false none none
metadata .map[string,string] false none none
created_at string(date-time) false none none
unit string false none none
usage_aggregator string false none none
period integer(int64) false none none

EmailTemplateCreateItem

{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

Properties

Name Type Required Restrictions Description
name string true none none
state integer(int32) true none none
cohorts [Cohort] true none none
dynamic_fields [DynamicField] false none none
content TemplateContent true none none
template TemplateConfig true none none
period string false none none
addresses EmailAddresses true none none

PolicyItem

{
  "acl": [
    {
      "grantee": "string",
      "permission": "string"
    }
  ],
  "resource": {},
  "api_scopes": [
    "string"
  ],
  "original_encoded_resource": "string"
}

Properties

Name Type Required Restrictions Description
acl [ACLItem] true none none
resource object true none none
api_scopes [string] false none none
original_encoded_resource string false none none

RecurlyAddOnPercentageTier

{
  "ending_amount": null,
  "usage_percent": "string"
}

Properties

Name Type Required Restrictions Description
ending_amount double false none none
usage_percent string false none none

StripeTransformQuantity

{
  "divide_by": 0,
  "round": "string"
}

Properties

Name Type Required Restrictions Description
divide_by integer(int64) false none none
round string false none none

BillingMetricBucket

{
  "start": "2024-04-11T04:01:35.090Z",
  "metric": 0.1,
  "amounts": null,
  "ending_balance": {
    "current_balance": 0.1,
    "pending_activity": 0.1,
    "available_balance": 0.1
  }
}

Properties

Name Type Required Restrictions Description
start string(date-time) true none none
metric number(double) false none none
amounts .map[string,scala.double] false none none
ending_balance CreditBalanceMetric false none none

DashboardDocument

{
  "parent": "string",
  "name": "string",
  "_id": "string",
  "auth_user_id": "string",
  "profile_view_promotion": "string",
  "app_id": "string",
  "workspace_ids": [
    [
      "string"
    ]
  ],
  "sort_order": 0.1,
  "dashboard_ids": [
    "string"
  ],
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
parent string false none none
name string true none none
_id string false none none
auth_user_id string true none none
profile_view_promotion string false none none
app_id string true none none
workspace_ids [array] true none none
sort_order number(double) false none none
dashboard_ids [string] true none none
policy PolicyItem false none none
org_id string true none none
migration object false none none
created string(date-time) true none none

ChargebeeItemPlan

{
  "name": "string",
  "item_family_id": "string",
  "description": "string",
  "usage_calculation": "string",
  "external_name": "string",
  "metered": true,
  "id": "string",
  "status": "string",
  "unit": "string",
  "updated_at": 0,
  "archived_at": 0
}

Properties

Name Type Required Restrictions Description
name string false none none
item_family_id string false none none
description string false none none
usage_calculation string false none none
external_name string false none none
metered boolean false none none
id string true none none
status string false none none
unit string false none none
updated_at integer(int64) false none none
archived_at integer(int64) false none none

CreditBalanceMetric

{
  "current_balance": 0.1,
  "pending_activity": 0.1,
  "available_balance": 0.1
}

Properties

Name Type Required Restrictions Description
current_balance number(double) true none none
pending_activity number(double) true none none
available_balance number(double) true none none

CreateCommentItem

{
  "auth_user_id": "string",
  "comment_id": "string",
  "mentions": [
    "string"
  ],
  "partner_user_id": "string",
  "message": "string",
  "created_at": "2024-04-11T04:01:35.090Z",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
auth_user_id string false none none
comment_id string false none none
mentions [string] false none none
partner_user_id string false none none
message string false none none
created_at string(date-time) false none none
updated_at string(date-time) false none none

StripeBillingParams

{
  "product": {
    "name": "string",
    "description": "string",
    "unit_label": "string",
    "id": "string",
    "usage_type": "string"
  },
  "price": {
    "tiers_mode": "string",
    "transform_quantity": {
      "divide_by": 0,
      "round": "string"
    },
    "price_id": "string",
    "tiers": [
      {
        "flat_amount_decimal": "string",
        "up_to": 0,
        "unit_amount_decimal": "string",
        "flat_amount": 0,
        "unit_amount": 0
      }
    ],
    "recurring": {
      "trial_period_days": 0,
      "interval": "string",
      "usage_type": "string",
      "interval_count": 0,
      "aggregate_usage": "string"
    },
    "unit_amount_decimal": "string",
    "price_nickname": "string",
    "currency": "string",
    "billing_scheme": "string",
    "unit_amount": 0,
    "created": 0,
    "active": true
  },
  "prices": [
    {
      "tiers_mode": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "price_id": "string",
      "tiers": [
        {
          "flat_amount_decimal": "string",
          "up_to": 0,
          "unit_amount_decimal": "string",
          "flat_amount": 0,
          "unit_amount": 0
        }
      ],
      "recurring": {
        "trial_period_days": 0,
        "interval": "string",
        "usage_type": "string",
        "interval_count": 0,
        "aggregate_usage": "string"
      },
      "unit_amount_decimal": "string",
      "price_nickname": "string",
      "currency": "string",
      "billing_scheme": "string",
      "unit_amount": 0,
      "created": 0,
      "active": true
    }
  ],
  "reporting": {
    "reporting_period": "string"
  }
}

Properties

Name Type Required Restrictions Description
product StripeProduct false none none
price StripePrice false none none
prices [StripePrice] false none none
reporting ProviderReporting false none none

TemplateContent

{
  "html": "string",
  "chunks": {}
}

Properties

Name Type Required Restrictions Description
html string true none none
chunks object true none none

DynamicField

{
  "token": "string",
  "field": "string",
  "aggregator": "avg"
}

Properties

Name Type Required Restrictions Description
token string true none none
field string true none none
aggregator string true none none

Enumerated Values

Property Value
aggregator avg
aggregator min
aggregator max
aggregator terms
aggregator sum

BillingReportBalanceTransCreate

{
  "company_id": "string",
  "description": "string",
  "expire_at": "2024-04-11T04:01:35.090Z",
  "active_at": "2024-04-11T04:01:35.090Z",
  "amount": 0.1,
  "transaction_id": "string",
  "subscription_id": "string",
  "type": "string"
}

Properties

Name Type Required Restrictions Description
company_id string true none none
description string false none none
expire_at string(date-time) false none none
active_at string(date-time) false none none
amount number(double) true none none
transaction_id string true none none
subscription_id string true none none
type string true none none

WorkspaceCreateItem

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "dashboard": {},
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Properties

Name Type Required Restrictions Description
name string true none none
is_default boolean false none none
view_count integer(int32) false none none
dashboard object false none none
colors object false none none
drawings [DrawingItem] false none none
chart ChartItem true none none
template TemplateItem false none none
type string false none none
width number(double) false none none
sort_order number(double) false none none
policy PolicyItem true none none

RecurlyAddOnTier

{
  "ending_quantity": 0,
  "currencies": [
    {
      "currency": "string",
      "unit_amount": null,
      "unit_amount_decimal": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
ending_quantity integer(int64) false none none
currencies [RecurlyCurrencyAmount] true none none

CreditBalance

{
  "sequence_id": 0,
  "current_balance": 0.1,
  "pending_activity": 0.1,
  "available_balance": 0.1
}

Properties

Name Type Required Restrictions Description
sequence_id integer(int32) true none none
current_balance number(double) true none none
pending_activity number(double) true none none
available_balance number(double) true none none

ChargebeeItemPriceTier

{
  "starting_unit": 0,
  "ending_unit": 0,
  "price": 0
}

Properties

Name Type Required Restrictions Description
starting_unit integer(int32) true none none
ending_unit integer(int32) false none none
price integer(int32) true none none

MoesifPlan

{
  "name": "string",
  "prices": [
    {
      "name": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "provider": "string",
      "price_in_decimal": "string",
      "tiers": [
        {
          "up_to": null,
          "unit_price_in_decimal": "string",
          "flat_price_in_decimal": "string"
        }
      ],
      "period_units": "string",
      "plan_id": "string",
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "tax_behavior": "string",
      "currency": "string",
      "metadata": null,
      "created_at": "2024-04-11T04:01:35.090Z",
      "unit": "string",
      "usage_aggregator": "string",
      "period": 0
    }
  ],
  "provider": "string",
  "description": "string",
  "id": "string",
  "status": "string",
  "product_id": "string",
  "metadata": null,
  "created_at": "2024-04-11T04:01:35.090Z",
  "unit": "string",
  "updated_at": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
name string false none none
prices [MoesifPrice] false none none
provider string false none none
description string false none none
id string false none none
status string false none none
product_id string false none none
metadata .map[string,string] false none none
created_at string(date-time) false none none
unit string false none none
updated_at string(date-time) false none none

ChargebeeBillingParams

{
  "item_plan": {
    "name": "string",
    "item_family_id": "string",
    "description": "string",
    "usage_calculation": "string",
    "external_name": "string",
    "metered": true,
    "id": "string",
    "status": "string",
    "unit": "string",
    "updated_at": 0,
    "archived_at": 0
  },
  "item_price": {
    "name": "string",
    "item_id": "string",
    "description": "string",
    "price": 0,
    "price_in_decimal": "string",
    "external_name": "string",
    "tiers": [
      {
        "starting_unit": 0,
        "ending_unit": 0,
        "price": 0
      }
    ],
    "trial_end_action": "string",
    "trial_period": 0,
    "id": "string",
    "status": "string",
    "pricing_model": "string",
    "created_at": 0,
    "period_unit": "string",
    "updated_at": 0,
    "trial_period_unit": "string",
    "item_type": "string",
    "currency_code": "string",
    "archived_at": 0,
    "free_quantity": 0,
    "period": 0
  },
  "item_prices": [
    {
      "name": "string",
      "item_id": "string",
      "description": "string",
      "price": 0,
      "price_in_decimal": "string",
      "external_name": "string",
      "tiers": [
        {
          "starting_unit": 0,
          "ending_unit": 0,
          "price": 0
        }
      ],
      "trial_end_action": "string",
      "trial_period": 0,
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "created_at": 0,
      "period_unit": "string",
      "updated_at": 0,
      "trial_period_unit": "string",
      "item_type": "string",
      "currency_code": "string",
      "archived_at": 0,
      "free_quantity": 0,
      "period": 0
    }
  ],
  "reporting": {
    "reporting_period": "string"
  }
}

Properties

Name Type Required Restrictions Description
item_plan ChargebeeItemPlan false none none
item_price ChargebeeItemPrice false none none
item_prices [ChargebeeItemPrice] false none none
reporting ProviderReporting false none none

GovernanceRuleCreateItem

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
priority integer(int32) false none none
model string false none none
state integer(int32) true none none
cohorts [object] false none none
variables [GovernanceRulesVariables] false none none
applied_to string false none none
block boolean true none none
response RulesResponseItem false none none
applied_to_unidentified boolean false none none
regex_config [RegexRule] false none none
plans [Plan] false none none
type string true none none

RecurlyPlanAddOn

{
  "name": "string",
  "currencies": [
    {
      "currency": "string",
      "unit_amount": null,
      "unit_amount_decimal": "string"
    }
  ],
  "usage_percentage": null,
  "add_on_type": "string",
  "external_sku": "string",
  "state": "string",
  "tiers": [
    {
      "ending_quantity": 0,
      "currencies": [
        {
          "currency": "string",
          "unit_amount": null,
          "unit_amount_decimal": "string"
        }
      ]
    }
  ],
  "tier_type": "string",
  "code": "string",
  "plan_id": "string",
  "id": "string",
  "percentage_tiers": [
    {
      "tiers": [
        {
          "ending_amount": null,
          "usage_percent": "string"
        }
      ],
      "currency": "string"
    }
  ],
  "usage_type": "string",
  "created_at": "string",
  "usage_calculation_type": "string",
  "updated_at": "string",
  "deleted_at": "string"
}

Properties

Name Type Required Restrictions Description
name string false none none
currencies [RecurlyCurrencyAmount] false none none
usage_percentage double false none none
add_on_type string false none none
external_sku string false none none
state string false none none
tiers [RecurlyAddOnTier] false none none
tier_type string false none none
code string true none none
plan_id string false none none
id string false none none
percentage_tiers [RecurlyAddOnPercentageTiers] false none none
usage_type string false none none
created_at string false none none
usage_calculation_type string false none none
updated_at string false none none
deleted_at string false none none

DrawingItem

{
  "name": "string",
  "direction": "string",
  "id": "string",
  "type": "string",
  "value": 0.1
}

Properties

Name Type Required Restrictions Description
name string true none none
direction string true none none
id string true none none
type string true none none
value number(double) true none none

ChartItem

{
  "original_encoded_view_elements": "string",
  "funnel_query": {},
  "url_query": "string",
  "to": "string",
  "view_elements": {},
  "from": "string",
  "original_encoded_funnel_query": "string",
  "es_query": {},
  "args": "string",
  "original_encoded_query": "string",
  "time_zone": "string",
  "view": "string"
}

Properties

Name Type Required Restrictions Description
original_encoded_view_elements string false none none
funnel_query object false none none
url_query string true none none
to string false none none
view_elements object false none none
from string false none none
original_encoded_funnel_query string false none none
es_query object false none none
args string false none none
original_encoded_query string false none none
time_zone string false none none
view string true none none

RecurlyAddOnPercentageTiers

{
  "tiers": [
    {
      "ending_amount": null,
      "usage_percent": "string"
    }
  ],
  "currency": "string"
}

Properties

Name Type Required Restrictions Description
tiers [RecurlyAddOnPercentageTier] false none none
currency string false none none

CustomReporting

{
  "report_when": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
report_when [string] true none none

BillingReport

{
  "ending_balance": {
    "sequence_id": 0,
    "current_balance": 0.1,
    "pending_activity": 0.1,
    "available_balance": 0.1
  },
  "company_id": "string",
  "success": true,
  "provider": "string",
  "report_version": 0,
  "usage_end_time": "2024-04-11T04:01:35.090Z",
  "usage": {
    "invoice": {
      "period_start": "2024-04-11T04:01:35.090Z",
      "period_end": "2024-04-11T04:01:35.090Z",
      "id": "string"
    },
    "aggregator": "string"
  },
  "_id": "string",
  "meter_usage": 0,
  "last_success_time": "2024-04-11T04:01:35.090Z",
  "beginning_balance": {
    "sequence_id": 0,
    "current_balance": 0.1,
    "pending_activity": 0.1,
    "available_balance": 0.1
  },
  "billing_meter_id": "string",
  "amount": 0.1,
  "usage_start_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "provider_requests": [
    {
      "success": true,
      "status_code": 0,
      "job_id": "string",
      "error_message": "string",
      "error_code": "string",
      "request_time": "2024-04-11T04:01:35.090Z"
    }
  ],
  "currency": "string",
  "report_total_usage": 0,
  "channel_requests": [
    {
      "channel_id": "string",
      "channel_name": "string",
      "provider_requests": [
        {
          "success": true,
          "status_code": 0,
          "job_id": "string",
          "error_message": "string",
          "error_code": "string",
          "request_time": "2024-04-11T04:01:35.090Z"
        }
      ]
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "subscription_id": "string",
  "subscription_period_start": "2024-04-11T04:01:35.090Z",
  "balance_changes": [
    {
      "amount": 0.1
    }
  ],
  "type": "string",
  "updated_at": "2024-04-11T04:01:35.090Z",
  "org_id": "string",
  "subscription_period_end": "2024-04-11T04:01:35.090Z",
  "meter_metric": 0
}

Properties

Name Type Required Restrictions Description
ending_balance CreditBalance false none none
company_id string true none none
success boolean true none none
provider string true none none
report_version integer(int32) false none none
usage_end_time string(date-time) true none none
usage BillingReportUsage false none none
_id string false none none
meter_usage integer(int64) true none none
last_success_time string(date-time) false none none
beginning_balance CreditBalance false none none
billing_meter_id string true none none
amount number(double) false none none
usage_start_time string(date-time) true none none
status string false none none
provider_requests [ProviderRequest] true none none
currency string false none none
report_total_usage integer(int64) true none none
channel_requests [ChannelRequest] false none none
created_at string(date-time) false none none
app_id string true none none
subscription_id string true none none
subscription_period_start string(date-time) false none none
balance_changes [BalanceChange] false none none
type string false none none
updated_at string(date-time) false none none
org_id string true none none
subscription_period_end string(date-time) false none none
meter_metric integer(int64) true none none

ACLItem

{
  "grantee": "string",
  "permission": "string"
}

Properties

Name Type Required Restrictions Description
grantee string true none none
permission string true none none

ZuoraBillingParams

{
  "plan_id": "string",
  "price_id": "string",
  "price_ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
plan_id string false none none
price_id string false none none
price_ids [string] false none none

CohortConfig

{
  "url_query": "string",
  "criteria": "string",
  "cohort_name": "string",
  "to": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

Properties

Name Type Required Restrictions Description
url_query string true none none
criteria string true none none
cohort_name string true none none
to string true none none
from string true none none
cohort_type string true none none
time_zone string true none none

RegexRule

{
  "conditions": [
    {
      "path": "string",
      "value": "string"
    }
  ],
  "sample_rate": 0
}

Properties

Name Type Required Restrictions Description
conditions [RegexCondition] true none none
sample_rate integer(int32) false none none

GovernanceRulesVariables

{
  "name": "string",
  "path": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
path string true none none

ChannelRequest

{
  "channel_id": "string",
  "channel_name": "string",
  "provider_requests": [
    {
      "success": true,
      "status_code": 0,
      "job_id": "string",
      "error_message": "string",
      "error_code": "string",
      "request_time": "2024-04-11T04:01:35.090Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
channel_id string true none none
channel_name string true none none
provider_requests [ProviderRequest] true none none

WorkspaceDocument

{
  "name": "string",
  "is_default": true,
  "view_count": 0,
  "_id": "string",
  "is_template": true,
  "dashboard": {},
  "auth_user_id": "string",
  "colors": {},
  "sequence": [
    {
      "delay": 0,
      "submit_data": {
        "body": {},
        "url": "string",
        "params": [
          {
            "key": null,
            "val": null
          }
        ],
        "verb": "string",
        "headers": [
          {
            "key": null,
            "val": null
          }
        ]
      }
    }
  ],
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "app_id": "string",
  "type": "string",
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  },
  "org_id": "string",
  "migration": {},
  "created": "2024-04-11T04:01:35.090Z",
  "comments": {
    "summary": {
      "count": 0,
      "latest_comment": {
        "auth_user_id": "string",
        "comment_id": "string",
        "mentions": [
          "string"
        ],
        "partner_user_id": "string",
        "message": "string",
        "created_at": "2024-04-11T04:01:35.090Z",
        "updated_at": "2024-04-11T04:01:35.090Z"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
name string false none none
is_default boolean false none none
view_count integer(int32) true none none
_id string false none none
is_template boolean false none none
dashboard object false none none
auth_user_id string true none none
colors object false none none
sequence [SequenceItem] false none none
drawings [DrawingItem] false none none
chart ChartItem false none none
template TemplateItem false none none
app_id string true none none
type string false none none
width number(double) false none none
sort_order number(double) false none none
policy PolicyItem false none none
org_id string true none none
migration object false none none
created string(date-time) true none none
comments Comments false none none

MoesifPriceTier

{
  "up_to": null,
  "unit_price_in_decimal": "string",
  "flat_price_in_decimal": "string"
}

Properties

Name Type Required Restrictions Description
up_to util.either[scala.long,string] true none none
unit_price_in_decimal string false none none
flat_price_in_decimal string false none none

BillingMeterDocument

{
  "name": "string",
  "billing_plan": {
    "provider_slug": "string",
    "friendly_name": "string",
    "params": {
      "usage_rounding_mode": "string",
      "webhook_params": {
        "reporting": {
          "report_when": null
        },
        "channel_ids": [
          "string"
        ],
        "custom_plan": {
          "plan_id": null
        }
      },
      "recurly_params": {
        "plan": {
          "name": null,
          "id": null,
          "code": null
        },
        "add_on": {
          "name": null,
          "currencies": null,
          "usage_percentage": null,
          "add_on_type": null,
          "external_sku": null,
          "state": null,
          "tiers": null,
          "tier_type": null,
          "code": null,
          "plan_id": null,
          "id": null,
          "percentage_tiers": null,
          "usage_type": null,
          "created_at": null,
          "usage_calculation_type": null,
          "updated_at": null,
          "deleted_at": null
        },
        "add_ons": [
          {}
        ]
      },
      "chargebee_params": {
        "item_plan": {
          "name": null,
          "item_family_id": null,
          "description": null,
          "usage_calculation": null,
          "external_name": null,
          "metered": null,
          "id": null,
          "status": null,
          "unit": null,
          "updated_at": null,
          "archived_at": null
        },
        "item_price": {
          "name": null,
          "item_id": null,
          "description": null,
          "price": null,
          "price_in_decimal": null,
          "external_name": null,
          "tiers": null,
          "trial_end_action": null,
          "trial_period": null,
          "id": null,
          "status": null,
          "pricing_model": null,
          "created_at": null,
          "period_unit": null,
          "updated_at": null,
          "trial_period_unit": null,
          "item_type": null,
          "currency_code": null,
          "archived_at": null,
          "free_quantity": null,
          "period": null
        },
        "item_prices": [
          {}
        ],
        "reporting": {
          "reporting_period": null
        }
      },
      "stripe_params": {
        "product": {
          "name": null,
          "description": null,
          "unit_label": null,
          "id": null,
          "usage_type": null
        },
        "price": {
          "tiers_mode": null,
          "transform_quantity": null,
          "price_id": null,
          "tiers": null,
          "recurring": null,
          "unit_amount_decimal": null,
          "price_nickname": null,
          "currency": null,
          "billing_scheme": null,
          "unit_amount": null,
          "created": null,
          "active": null
        },
        "prices": [
          {}
        ],
        "reporting": {
          "reporting_period": null
        }
      },
      "zuora_params": {
        "plan_id": "string",
        "price_id": "string",
        "price_ids": [
          "string"
        ]
      },
      "usage_multiplier": null
    }
  },
  "url_query": "string",
  "_id": "string",
  "slug": "string",
  "status": "string",
  "modified_at": "2024-04-11T04:01:35.090Z",
  "es_query": "string",
  "created_at": "2024-04-11T04:01:35.090Z",
  "zero_balance_behavior": "string",
  "app_id": "string",
  "org_id": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
billing_plan BillingPlan true none none
url_query string true none none
_id string false none none
slug string true none none
status string true none none
modified_at string(date-time) true none none
es_query string true none none
created_at string(date-time) true none none
zero_balance_behavior string false none none
app_id string true none none
org_id string true none none

KeyValuePair

{
  "key": "string",
  "val": "string"
}

Properties

Name Type Required Restrictions Description
key string true none none
val string true none none

ProviderReporting

{
  "reporting_period": "string"
}

Properties

Name Type Required Restrictions Description
reporting_period string false none none

AppResponse

{
  "name": "string",
  "custom_app_id": "string",
  "search_api_base_url": "string",
  "week_starts_on": 0,
  "id": "string",
  "portal_api_base_url": "string",
  "secure_proxy": true,
  "time_zone": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
custom_app_id string false none none
search_api_base_url string false none none
week_starts_on integer(int32) false none none
id string false none none
portal_api_base_url string false none none
secure_proxy boolean false none none
time_zone string false none none

CohortUpdateItem

{
  "channels": null,
  "priority": 0,
  "url_query": "string",
  "criteria": {},
  "sample_rate": 0,
  "notification_rule": {
    "send_on_addition": true,
    "send_on_removal": true,
    "period": "string",
    "fields": [
      "string"
    ]
  },
  "cohort_name": "string",
  "to": "string",
  "week_starts_on": 0,
  "locked_by": "string",
  "from": "string",
  "cohort_type": "string",
  "time_zone": "string"
}

Properties

Name Type Required Restrictions Description
channels array[string] false none none
priority integer(int32) false none none
url_query string false none none
criteria object false none none
sample_rate integer(int32) false none none
notification_rule NotificationRule false none none
cohort_name string false none none
to string false none none
week_starts_on integer(int32) false none none
locked_by string false none none
from string false none none
cohort_type string true none none
time_zone string false none none

EmailTemplateUpdateItem

{
  "name": "string",
  "state": 0,
  "cohorts": [
    {
      "id": "string",
      "type": "string",
      "config": {
        "url_query": "string",
        "criteria": "string",
        "cohort_name": "string",
        "to": "string",
        "from": "string",
        "cohort_type": "string",
        "time_zone": "string"
      }
    }
  ],
  "dynamic_fields": [
    {
      "token": "string",
      "field": "string",
      "aggregator": "avg"
    }
  ],
  "content": {
    "html": "string",
    "chunks": {}
  },
  "template": {
    "subject": "string",
    "editor": "string",
    "design": {},
    "thumbnail_url": "string"
  },
  "period": "string",
  "addresses": {
    "from": "string",
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ]
  }
}

Properties

Name Type Required Restrictions Description
name string false none none
state integer(int32) false none none
cohorts [Cohort] false none none
dynamic_fields [DynamicField] false none none
content TemplateContent false none none
template TemplateConfig false none none
period string false none none
addresses EmailAddresses false none none

RecurlyPlan

{
  "name": "string",
  "id": "string",
  "code": "string"
}

Properties

Name Type Required Restrictions Description
name string false none none
id string false none none
code string true none none

StripeProduct

{
  "name": "string",
  "description": "string",
  "unit_label": "string",
  "id": "string",
  "usage_type": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
description string false none none
unit_label string false none none
id string true none none
usage_type string false none none

BillingParams

{
  "usage_rounding_mode": "string",
  "webhook_params": {
    "reporting": {
      "report_when": [
        "string"
      ]
    },
    "channel_ids": [
      "string"
    ],
    "custom_plan": {
      "plan_id": "string"
    }
  },
  "recurly_params": {
    "plan": {
      "name": "string",
      "id": "string",
      "code": "string"
    },
    "add_on": {
      "name": "string",
      "currencies": [
        {
          "currency": "string",
          "unit_amount": null,
          "unit_amount_decimal": "string"
        }
      ],
      "usage_percentage": null,
      "add_on_type": "string",
      "external_sku": "string",
      "state": "string",
      "tiers": [
        {
          "ending_quantity": 0,
          "currencies": [
            null
          ]
        }
      ],
      "tier_type": "string",
      "code": "string",
      "plan_id": "string",
      "id": "string",
      "percentage_tiers": [
        {
          "tiers": [
            null
          ],
          "currency": "string"
        }
      ],
      "usage_type": "string",
      "created_at": "string",
      "usage_calculation_type": "string",
      "updated_at": "string",
      "deleted_at": "string"
    },
    "add_ons": [
      {
        "name": "string",
        "currencies": [
          {
            "currency": null,
            "unit_amount": null,
            "unit_amount_decimal": null
          }
        ],
        "usage_percentage": null,
        "add_on_type": "string",
        "external_sku": "string",
        "state": "string",
        "tiers": [
          {
            "ending_quantity": null,
            "currencies": null
          }
        ],
        "tier_type": "string",
        "code": "string",
        "plan_id": "string",
        "id": "string",
        "percentage_tiers": [
          {
            "tiers": null,
            "currency": null
          }
        ],
        "usage_type": "string",
        "created_at": "string",
        "usage_calculation_type": "string",
        "updated_at": "string",
        "deleted_at": "string"
      }
    ]
  },
  "chargebee_params": {
    "item_plan": {
      "name": "string",
      "item_family_id": "string",
      "description": "string",
      "usage_calculation": "string",
      "external_name": "string",
      "metered": true,
      "id": "string",
      "status": "string",
      "unit": "string",
      "updated_at": 0,
      "archived_at": 0
    },
    "item_price": {
      "name": "string",
      "item_id": "string",
      "description": "string",
      "price": 0,
      "price_in_decimal": "string",
      "external_name": "string",
      "tiers": [
        {
          "starting_unit": 0,
          "ending_unit": 0,
          "price": 0
        }
      ],
      "trial_end_action": "string",
      "trial_period": 0,
      "id": "string",
      "status": "string",
      "pricing_model": "string",
      "created_at": 0,
      "period_unit": "string",
      "updated_at": 0,
      "trial_period_unit": "string",
      "item_type": "string",
      "currency_code": "string",
      "archived_at": 0,
      "free_quantity": 0,
      "period": 0
    },
    "item_prices": [
      {
        "name": "string",
        "item_id": "string",
        "description": "string",
        "price": 0,
        "price_in_decimal": "string",
        "external_name": "string",
        "tiers": [
          {
            "starting_unit": null,
            "ending_unit": null,
            "price": null
          }
        ],
        "trial_end_action": "string",
        "trial_period": 0,
        "id": "string",
        "status": "string",
        "pricing_model": "string",
        "created_at": 0,
        "period_unit": "string",
        "updated_at": 0,
        "trial_period_unit": "string",
        "item_type": "string",
        "currency_code": "string",
        "archived_at": 0,
        "free_quantity": 0,
        "period": 0
      }
    ],
    "reporting": {
      "reporting_period": "string"
    }
  },
  "stripe_params": {
    "product": {
      "name": "string",
      "description": "string",
      "unit_label": "string",
      "id": "string",
      "usage_type": "string"
    },
    "price": {
      "tiers_mode": "string",
      "transform_quantity": {
        "divide_by": 0,
        "round": "string"
      },
      "price_id": "string",
      "tiers": [
        {
          "flat_amount_decimal": "string",
          "up_to": 0,
          "unit_amount_decimal": "string",
          "flat_amount": 0,
          "unit_amount": 0
        }
      ],
      "recurring": {
        "trial_period_days": 0,
        "interval": "string",
        "usage_type": "string",
        "interval_count": 0,
        "aggregate_usage": "string"
      },
      "unit_amount_decimal": "string",
      "price_nickname": "string",
      "currency": "string",
      "billing_scheme": "string",
      "unit_amount": 0,
      "created": 0,
      "active": true
    },
    "prices": [
      {
        "tiers_mode": "string",
        "transform_quantity": {
          "divide_by": 0,
          "round": "string"
        },
        "price_id": "string",
        "tiers": [
          {
            "flat_amount_decimal": null,
            "up_to": null,
            "unit_amount_decimal": null,
            "flat_amount": null,
            "unit_amount": null
          }
        ],
        "recurring": {
          "trial_period_days": 0,
          "interval": "string",
          "usage_type": "string",
          "interval_count": 0,
          "aggregate_usage": "string"
        },
        "unit_amount_decimal": "string",
        "price_nickname": "string",
        "currency": "string",
        "billing_scheme": "string",
        "unit_amount": 0,
        "created": 0,
        "active": true
      }
    ],
    "reporting": {
      "reporting_period": "string"
    }
  },
  "zuora_params": {
    "plan_id": "string",
    "price_id": "string",
    "price_ids": [
      "string"
    ]
  },
  "usage_multiplier": null
}

Properties

Name Type Required Restrictions Description
usage_rounding_mode string false none none
webhook_params BillingWebhookParams false none none
recurly_params RecurlyBillingParams false none none
chargebee_params ChargebeeBillingParams false none none
stripe_params StripeBillingParams false none none
zuora_params ZuoraBillingParams false none none
usage_multiplier double false none none

RecurlyBillingParams

{
  "plan": {
    "name": "string",
    "id": "string",
    "code": "string"
  },
  "add_on": {
    "name": "string",
    "currencies": [
      {
        "currency": "string",
        "unit_amount": null,
        "unit_amount_decimal": "string"
      }
    ],
    "usage_percentage": null,
    "add_on_type": "string",
    "external_sku": "string",
    "state": "string",
    "tiers": [
      {
        "ending_quantity": 0,
        "currencies": [
          {
            "currency": null,
            "unit_amount": null,
            "unit_amount_decimal": null
          }
        ]
      }
    ],
    "tier_type": "string",
    "code": "string",
    "plan_id": "string",
    "id": "string",
    "percentage_tiers": [
      {
        "tiers": [
          {
            "ending_amount": null,
            "usage_percent": null
          }
        ],
        "currency": "string"
      }
    ],
    "usage_type": "string",
    "created_at": "string",
    "usage_calculation_type": "string",
    "updated_at": "string",
    "deleted_at": "string"
  },
  "add_ons": [
    {
      "name": "string",
      "currencies": [
        {
          "currency": "string",
          "unit_amount": null,
          "unit_amount_decimal": "string"
        }
      ],
      "usage_percentage": null,
      "add_on_type": "string",
      "external_sku": "string",
      "state": "string",
      "tiers": [
        {
          "ending_quantity": 0,
          "currencies": [
            {}
          ]
        }
      ],
      "tier_type": "string",
      "code": "string",
      "plan_id": "string",
      "id": "string",
      "percentage_tiers": [
        {
          "tiers": [
            {}
          ],
          "currency": "string"
        }
      ],
      "usage_type": "string",
      "created_at": "string",
      "usage_calculation_type": "string",
      "updated_at": "string",
      "deleted_at": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
plan RecurlyPlan false none none
add_on RecurlyPlanAddOn false none none
add_ons [RecurlyPlanAddOn] false none none

GovernanceRulesDocument

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "_id": "string",
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "created_at": "2024-04-11T04:01:35.090Z",
  "app_id": "string",
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string",
  "org_id": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
priority integer(int32) false none none
model string false none none
state integer(int32) true none none
cohorts [object] false none none
_id string false none none
variables [GovernanceRulesVariables] false none none
applied_to string false none none
block boolean true none none
response RulesResponseItem false none none
applied_to_unidentified boolean false none none
regex_config [RegexRule] false none none
created_at string(date-time) true none none
app_id string true none none
plans [Plan] false none none
type string true none none
org_id string true none none

BillingPlan

{
  "provider_slug": "string",
  "friendly_name": "string",
  "params": {
    "usage_rounding_mode": "string",
    "webhook_params": {
      "reporting": {
        "report_when": [
          "string"
        ]
      },
      "channel_ids": [
        "string"
      ],
      "custom_plan": {
        "plan_id": "string"
      }
    },
    "recurly_params": {
      "plan": {
        "name": "string",
        "id": "string",
        "code": "string"
      },
      "add_on": {
        "name": "string",
        "currencies": [
          {}
        ],
        "usage_percentage": null,
        "add_on_type": "string",
        "external_sku": "string",
        "state": "string",
        "tiers": [
          {}
        ],
        "tier_type": "string",
        "code": "string",
        "plan_id": "string",
        "id": "string",
        "percentage_tiers": [
          {}
        ],
        "usage_type": "string",
        "created_at": "string",
        "usage_calculation_type": "string",
        "updated_at": "string",
        "deleted_at": "string"
      },
      "add_ons": [
        {
          "name": "string",
          "currencies": [
            null
          ],
          "usage_percentage": null,
          "add_on_type": "string",
          "external_sku": "string",
          "state": "string",
          "tiers": [
            null
          ],
          "tier_type": "string",
          "code": "string",
          "plan_id": "string",
          "id": "string",
          "percentage_tiers": [
            null
          ],
          "usage_type": "string",
          "created_at": "string",
          "usage_calculation_type": "string",
          "updated_at": "string",
          "deleted_at": "string"
        }
      ]
    },
    "chargebee_params": {
      "item_plan": {
        "name": "string",
        "item_family_id": "string",
        "description": "string",
        "usage_calculation": "string",
        "external_name": "string",
        "metered": true,
        "id": "string",
        "status": "string",
        "unit": "string",
        "updated_at": 0,
        "archived_at": 0
      },
      "item_price": {
        "name": "string",
        "item_id": "string",
        "description": "string",
        "price": 0,
        "price_in_decimal": "string",
        "external_name": "string",
        "tiers": [
          {}
        ],
        "trial_end_action": "string",
        "trial_period": 0,
        "id": "string",
        "status": "string",
        "pricing_model": "string",
        "created_at": 0,
        "period_unit": "string",
        "updated_at": 0,
        "trial_period_unit": "string",
        "item_type": "string",
        "currency_code": "string",
        "archived_at": 0,
        "free_quantity": 0,
        "period": 0
      },
      "item_prices": [
        {
          "name": "string",
          "item_id": "string",
          "description": "string",
          "price": 0,
          "price_in_decimal": "string",
          "external_name": "string",
          "tiers": [
            null
          ],
          "trial_end_action": "string",
          "trial_period": 0,
          "id": "string",
          "status": "string",
          "pricing_model": "string",
          "created_at": 0,
          "period_unit": "string",
          "updated_at": 0,
          "trial_period_unit": "string",
          "item_type": "string",
          "currency_code": "string",
          "archived_at": 0,
          "free_quantity": 0,
          "period": 0
        }
      ],
      "reporting": {
        "reporting_period": "string"
      }
    },
    "stripe_params": {
      "product": {
        "name": "string",
        "description": "string",
        "unit_label": "string",
        "id": "string",
        "usage_type": "string"
      },
      "price": {
        "tiers_mode": "string",
        "transform_quantity": {
          "divide_by": null,
          "round": null
        },
        "price_id": "string",
        "tiers": [
          {}
        ],
        "recurring": {
          "trial_period_days": null,
          "interval": null,
          "usage_type": null,
          "interval_count": null,
          "aggregate_usage": null
        },
        "unit_amount_decimal": "string",
        "price_nickname": "string",
        "currency": "string",
        "billing_scheme": "string",
        "unit_amount": 0,
        "created": 0,
        "active": true
      },
      "prices": [
        {
          "tiers_mode": "string",
          "transform_quantity": {},
          "price_id": "string",
          "tiers": [
            null
          ],
          "recurring": {},
          "unit_amount_decimal": "string",
          "price_nickname": "string",
          "currency": "string",
          "billing_scheme": "string",
          "unit_amount": 0,
          "created": 0,
          "active": true
        }
      ],
      "reporting": {
        "reporting_period": "string"
      }
    },
    "zuora_params": {
      "plan_id": "string",
      "price_id": "string",
      "price_ids": [
        "string"
      ]
    },
    "usage_multiplier": null
  }
}

Properties

Name Type Required Restrictions Description
provider_slug string true none none
friendly_name string false none none
params BillingParams false none none

SubmitData

{
  "body": {},
  "url": "string",
  "params": [
    {
      "key": "string",
      "val": "string"
    }
  ],
  "verb": "string",
  "headers": [
    {
      "key": "string",
      "val": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
body object false none none
url string true none none
params [KeyValuePair] false none none
verb string true none none
headers [KeyValuePair] false none none

ProviderRequest

{
  "success": true,
  "status_code": 0,
  "job_id": "string",
  "error_message": "string",
  "error_code": "string",
  "request_time": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
success boolean true none none
status_code integer(int32) true none none
job_id string true none none
error_message string true none none
error_code string true none none
request_time string(date-time) true none none

CommentItem

{
  "message": "string",
  "mentions": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
message string false none none
mentions [string] false none none

NotificationRule

{
  "send_on_addition": true,
  "send_on_removal": true,
  "period": "string",
  "fields": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
send_on_addition boolean true none none
send_on_removal boolean true none none
period string false none none
fields [string] false none none

TemplateItem

{
  "dynamic_fields": [
    "string"
  ],
  "dynamic_time": true
}

Properties

Name Type Required Restrictions Description
dynamic_fields [string] true none none
dynamic_time boolean false none none

Summary

{
  "count": 0,
  "latest_comment": {
    "auth_user_id": "string",
    "comment_id": "string",
    "mentions": [
      "string"
    ],
    "partner_user_id": "string",
    "message": "string",
    "created_at": "2024-04-11T04:01:35.090Z",
    "updated_at": "2024-04-11T04:01:35.090Z"
  }
}

Properties

Name Type Required Restrictions Description
count integer(int32) true none none
latest_comment CreateCommentItem false none none

GovernanceRuleUpdateItem

{
  "name": "string",
  "priority": 0,
  "model": "string",
  "state": 0,
  "cohorts": [
    {}
  ],
  "variables": [
    {
      "name": "string",
      "path": "string"
    }
  ],
  "applied_to": "string",
  "block": true,
  "response": {
    "status": 0,
    "headers": null,
    "body": {},
    "original_encoded_body": "string"
  },
  "applied_to_unidentified": true,
  "regex_config": [
    {
      "conditions": [
        {
          "path": "string",
          "value": "string"
        }
      ],
      "sample_rate": 0
    }
  ],
  "plans": [
    {
      "provider": "string",
      "plan_id": "string",
      "price_ids": [
        "string"
      ]
    }
  ],
  "type": "string"
}

Properties

Name Type Required Restrictions Description
name string false none none
priority integer(int32) false none none
model string false none none
state integer(int32) false none none
cohorts [object] false none none
variables [GovernanceRulesVariables] false none none
applied_to string false none none
block boolean false none none
response RulesResponseItem false none none
applied_to_unidentified boolean false none none
regex_config [RegexRule] false none none
plans [Plan] false none none
type string false none none

WorkspaceUpdateItem

{
  "name": "string",
  "colors": {},
  "drawings": [
    {
      "name": "string",
      "direction": "string",
      "id": "string",
      "type": "string",
      "value": 0.1
    }
  ],
  "chart": {
    "original_encoded_view_elements": "string",
    "funnel_query": {},
    "url_query": "string",
    "to": "string",
    "view_elements": {},
    "from": "string",
    "original_encoded_funnel_query": "string",
    "es_query": {},
    "args": "string",
    "original_encoded_query": "string",
    "time_zone": "string",
    "view": "string"
  },
  "template": {
    "dynamic_fields": [
      "string"
    ],
    "dynamic_time": true
  },
  "width": 0.1,
  "sort_order": 0.1,
  "policy": {
    "acl": [
      {
        "grantee": "string",
        "permission": "string"
      }
    ],
    "resource": {},
    "api_scopes": [
      "string"
    ],
    "original_encoded_resource": "string"
  }
}

Properties

Name Type Required Restrictions Description
name string false none none
colors object false none none
drawings [DrawingItem] false none none
chart ChartItem false none none
template TemplateItem false none none
width number(double) false none none
sort_order number(double) false none none
policy PolicyItem false none none

BillingWebhookParams

{
  "reporting": {
    "report_when": [
      "string"
    ]
  },
  "channel_ids": [
    "string"
  ],
  "custom_plan": {
    "plan_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
reporting CustomReporting false none none
channel_ids [string] true none none
custom_plan CustomReportPlan true none none

searchUsersResponse

{
  "took": 11,
  "timed_out": false,
  "hits": {
    "total": 420,
    "hits": [
      {
        "_id": "123456",
        "_source": {
          "first_name": "[",
          "body": {},
          "name": "[",
          "email": "[",
          "first_seen_time": "[",
          "user_agent": {},
          "geo_ip": {},
          "modified_time": "[",
          "last_name": "[",
          "ip_address": "[",
          "session_token": [
            null
          ],
          "last_seen_time": "[",
          "app_id": "[",
          "org_id": "["
        },
        "sort": [
          1519768519464
        ]
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
took integer false none none
timed_out boolean false none none
hits object false none none
» total integer false none none
» hits [userResponse] false none none

Subscription

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "app_id": "string",
  "subscription_id": "string",
  "version_id": "string",
  "type": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "org_id": "string",
  "created": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
trial_start string(date-time) false none none
company_id string true none none
start_date string(date-time) false none none
collection_method string false none none
provider string false none none
items [SubscriptionItem] false none none
current_period_start string(date-time) false none none
company_external_id string false none none
payment_status string false none none
modified_time string(date-time) false none none
cancel_time string(date-time) false none none
status string true none none
trial_end string(date-time) false none none
external_id string false none none
metadata object false none none
app_id string true none none
subscription_id string true none none
version_id string false none none
type string true none none
current_period_end string(date-time) false none none
org_id string true none none
created string(date-time) false none none

searchEventsResponse

{
  "took": 358,
  "timed_out": false,
  "hits": {
    "total": 947,
    "hits": [
      {
        "_id": "AWF5M-FDTqLFD8l5y2f4",
        "_source": {
          "company_id": "[",
          "duration_ms": "[",
          "request": {},
          "user_id": "[",
          "company": {},
          "response": {},
          "id": "[",
          "event_type": "[",
          "session_token": "[",
          "metadata": {},
          "app_id": "[",
          "org_id": "[",
          "user": {}
        },
        "sort": [
          0
        ]
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
took integer false none none
timed_out boolean false none none
hits object false none none
» total integer false none none
» hits [eventResponse] false none none

searchcompanysResponse

{
  "took": 11,
  "timed_out": false,
  "hits": {
    "total": 420,
    "hits": []
  }
}

Properties

Name Type Required Restrictions Description
took integer false none none
timed_out boolean false none none
hits object false none none
» total integer false none none
» hits [companyResponse] false none none

UserUpdate

{
  "company_id": "string",
  "first_name": "string",
  "name": "string",
  "email": "string",
  "photo_url": "string",
  "user_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "last_name": "string",
  "metadata": {},
  "user_name": "string",
  "phone": "string"
}

Properties

Name Type Required Restrictions Description
company_id string false none none
first_name string false none none
name string false none none
email string false none none
photo_url string false none none
user_id string true none none
modified_time string(date-time) false none none
last_name string false none none
metadata object false none none
user_name string false none none
phone string false none none

SubscriptionItem

{
  "item_price_id": "string",
  "price_id": "string",
  "is_metered": true,
  "plan_id": "string",
  "unit_of_measure": "string",
  "status": "string",
  "subscription_item_id": "string"
}

Properties

Name Type Required Restrictions Description
item_price_id string false none none
price_id string false none none
is_metered boolean false none none
plan_id string true none none
unit_of_measure string false none none
status string false none none
subscription_item_id string false none none

userResponse

{
  "_id": "123456",
  "_source": {
    "first_name": "John",
    "body": {},
    "name": "John Doe",
    "email": "john.doe@gmail.com",
    "first_seen_time": "2023-07-27T21:52:58.0990000Z",
    "user_agent": {
      "name": "Android",
      "os_major": "7",
      "os": "Android 7.0",
      "os_name": "Android",
      "os_minor": "0",
      "major": "7",
      "device": "Samsung SM-G955U",
      "minor": "0"
    },
    "geo_ip": {
      "ip": "107.200.85.196",
      "region_name": "South Carolina",
      "continent_code": "NA",
      "location": {
        "lon": -79.85489654541016,
        "lat": 32.822898864746094
      },
      "latitude": 32.822898864746094,
      "timezone": "America/New_York",
      "longitude": -79.85489654541016,
      "dma_code": 519,
      "postal_code": "29464",
      "region_code": "SC",
      "city_name": "Mt. Pleasant",
      "country_code2": "US",
      "country_code3": "US",
      "country_name": "United States"
    },
    "modified_time": "2023-07-27T21:55:19.464",
    "last_name": "Doe",
    "ip_address": "107.200.85.196",
    "session_token": [
      "e93u2jiry8fij8q09-tfZ9SIK9DERDXUYMF"
    ],
    "last_seen_time": "2023-07-27T21:52:58.0990000Z",
    "app_id": "198:3",
    "org_id": "177:3"
  },
  "sort": [
    1519768519464
  ]
}

Properties

Name Type Required Restrictions Description
_id string false none none
_source object false none none
» first_name string false none none
» body object false none none
» name string false none none
» email string false none none
» first_seen_time string false none none
» user_agent object false none none
»» name string false none none
»» os_major string false none none
»» os string false none none
»» os_name string false none none
»» os_minor string false none none
»» major string false none none
»» device string false none none
»» minor string false none none
» geo_ip object false none none
»» ip string false none none
»» region_name string false none none
»» continent_code string false none none
»» location object false none none
»»» lon double false none none
»»» lat double false none none
»» latitude double false none none
»» timezone string false none none
»» longitude double false none none
»» dma_code integer false none none
»» postal_code string false none none
»» region_code string false none none
»» city_name string false none none
»» country_code2 string false none none
»» country_code3 string false none none
»» country_name string false none none
» modified_time string false none none
» last_name string false none none
» ip_address string false none none
» session_token [string] false none none
» last_seen_time string false none none
» app_id string false none none
» org_id string false none none
sort [integer] false none none

eventResponse

{
  "_id": "AWF5M-FDTqLFD8l5y2f4",
  "_source": {
    "company_id": "67890",
    "duration_ms": 76,
    "request": {
      "body": "json",
      "uri": "https://api.github.com",
      "user_agent": {
        "patch": "1",
        "major": "7",
        "minor": "1",
        "name": "PostmanRuntime"
      },
      "geo_ip": {
        "ip": "73.189.235.253",
        "region_name": "CA",
        "continent_code": "NA",
        "location": [
          "["
        ],
        "latitude": 37.769,
        "timezone": "America/Los_Angeles",
        "area_code": 415,
        "longitude": -122.393,
        "real_region_name": "California",
        "dma_code": 807,
        "postal_code": "94107",
        "city_name": "San Francisco",
        "country_code2": "US",
        "country_code3": "USA",
        "country_name": "United States"
      },
      "ip_address": "73.189.235.253",
      "verb": "GET",
      "route": "/",
      "time": "2023-07-09T06:14:58.550",
      "headers": {}
    },
    "user_id": "123454",
    "company": {},
    "response": {
      "body": {},
      "transfer_encoding": "json",
      "status": 200,
      "time": "2023-07-09T06:14:58.626",
      "headers": {}
    },
    "id": "AWF5M-FDTqLFD8l5y2f4",
    "event_type": "api_call",
    "session_token": "rdfmnw3fu24309efjc534nb421UZ9-]2JDO[ME",
    "metadata": {},
    "app_id": "198:3",
    "org_id": "177:3",
    "user": {}
  },
  "sort": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
_id string false none none
_source object false none none
» company_id string false none none
» duration_ms integer false none none
» request object false none none
»» body object false none none
»» uri string false none none
»» user_agent object false none none
»»» patch string false none none
»»» major string false none none
»»» minor string false none none
»»» name string false none none
»» geo_ip object false none none
»»» ip string false none none
»»» region_name string false none none
»»» continent_code string false none none
»»» location [double] false none none
»»» latitude double false none none
»»» timezone string false none none
»»» area_code integer false none none
»»» longitude double false none none
»»» real_region_name string false none none
»»» dma_code integer false none none
»»» postal_code string false none none
»»» city_name string false none none
»»» country_code2 string false none none
»»» country_code3 string false none none
»»» country_name string false none none
»» ip_address string false none none
»» verb string false none none
»» route string false none none
»» time string false none none
»» headers object false none none
» user_id string false none none
» company object false none none
» response object false none none
»» body object false none none
»» transfer_encoding string false none none
»» status integer false none none
»» time string false none none
»» headers object false none none
» id string false none none
» event_type string false none none
» session_token string false none none
» metadata object false none none
» app_id string false none none
» org_id string false none none
» user object false none none
sort [integer] false none none

AddSubscription

{
  "trial_start": "2024-04-11T04:01:35.090Z",
  "company_id": "string",
  "start_date": "2024-04-11T04:01:35.090Z",
  "collection_method": "string",
  "provider": "string",
  "items": [
    {
      "item_price_id": "string",
      "price_id": "string",
      "is_metered": true,
      "plan_id": "string",
      "unit_of_measure": "string",
      "status": "string",
      "subscription_item_id": "string"
    }
  ],
  "current_period_start": "2024-04-11T04:01:35.090Z",
  "company_external_id": "string",
  "payment_status": "string",
  "cancel_time": "2024-04-11T04:01:35.090Z",
  "status": "string",
  "trial_end": "2024-04-11T04:01:35.090Z",
  "external_id": "string",
  "metadata": {},
  "subscription_id": "string",
  "version_id": "string",
  "current_period_end": "2024-04-11T04:01:35.090Z",
  "created": "2024-04-11T04:01:35.090Z"
}

Properties

Name Type Required Restrictions Description
trial_start string(date-time) false none none
company_id string true none none
start_date string(date-time) false none none
collection_method string false none none
provider string false none none
items [SubscriptionItem] false none none
current_period_start string(date-time) false none none
company_external_id string false none none
payment_status string false none none
cancel_time string(date-time) false none none
status string true none none
trial_end string(date-time) false none none
external_id string false none none
metadata object false none none
subscription_id string true none none
version_id string false none none
current_period_end string(date-time) false none none
created string(date-time) false none none

CompanyUpdate

{
  "company_id": "string",
  "modified_time": "2024-04-11T04:01:35.090Z",
  "session_token": "string",
  "company_domain": "string",
  "metadata": {}
}

Properties

Name Type Required Restrictions Description
company_id string true none none
modified_time string(date-time) false none none
session_token string false none none
company_domain string false none none
metadata object false none none