Warning
This API is outdated. Visit Ecrion Engage API 12.0 to access the latest version of the Ecrion API.
Ecrion 11.0 Developer Guide
This documentation describes the Application Programming Interfaces (API v2) for Ecrion Platform version 11.0 (Lillipup) and later.
Introducing Ecrion API 2
Using this API, software programmers are able to produce documents in high volumes and manage customer communications, according to the different Ecrion layers:
Ecrion Develop
- Render documents dynamically, in real-time, using XML or JSON as input data to output formats such as PDF, PDF-A, PDF-508, Word, PPT, TIFF, Excel, HTML4, TEXT.
- Data Integration (SQL, XML, JSON, CSV, etc.).
- Document Assembly Line (with additional inputs such as Word, Excel, PDF, TIFF, JPEG, SVG, Barcodes, Charts, 3-D Objects).
- Use document templates created in Ecrion Design Studio to control layout, styles, colors and other visual aspects.
- Implement security using users and groups (not available in core-only installations).
- Versionable repository and asset management (not available in core-only installations).
Ecrion Converse includes all Ecrion Develop features, plus:
- Control document assembly and automation using workflows.
- Use the online version of the Ecrion Design Studio for improved collaboration.
- Create documents interactively by filling out forms.
- Create print streams for high-volume printers (Postscript, PDF or AFP).
- SMS, Email with CID images, PDF-X, HTML5 (responsive/interactive), JPEG.
- Distribute documents to end-customers via print, email, etc.
- Additional data integration (Salesforce, MS Dynamics).
Ecrion Engage includes all Ecrion Develop and Ecrion Converse features, plus:
- Create Digital Experience Documents (DXD) for mobile devices and desktop computers
- Use interactive drill-down and intelligent analytics features
- Deliver personalized messages and marketing ads
- Track how end-customers are reading their documents
Ecrion provides the following APIs:
Javascriptfor web programmers through the inclusion ofEcrion.EOS.Client.2.0.jsC#for .NET programmers by adding a reference to theEcrion.EOS.Client.2.0.NET.dllassemblyJavafor Java programmers through theEcrion.EOS.Client.2.0.Java.jarpackage
Notes
The communication between these APIs and the Ecrion server is performed through REST endpoints via HTTP or HTTPS.
In the cloud however, only HTTPS access is provided (port 443).
Getting Started
Authentication
Ecrion uses API keys in order to authenticate requests made by clients. To manage API keys, from your Ecrion home page, access the Developer module/API Keys. For core-only installations, open the Management Console, and navigate to Publishing Engine/Engine Settings/HTTP Server Configuration/API Key.
All endpoints require a session token. The token can be obtained using the Authorization service.
Single Sign-On
SSO enables users to access all of their enterprise applications by signing in one time for all services. We provide a Security Assertion Markup Language (SAML)-based SSO API that you can use to integrate into your IdP (Identity Provider).
Read more about Ecrion SSO here.
Template management
Ecrion uses document templates (.epr files created in Ecrion Design Studio) to merge data points with layout and create personalized documents. This process is called document composition. Within Ecrion Platform, templates are managed in a high-performance repository with versioning capabilities. Use the top-left menu to access your workspaces. For core-only installations, templates are managed in the file system and can be found in the Management Console/Workspace, under the Default workspace.
Using Ecrion JavaScript API
Including the library
The Javascript API is referenced through Ecrion.EOS.Client.2.0.js. Use https://eos4.ecrion.com as the server name, however for core-only installations, make sure to use the correct server name and port number provided by your system administrator:
<html>
<head>
<script src="https://eos4.ecrion.com/sdk/v2/javascript/Ecrion.EOS.Client.2.0.js"></script>
</head>
<body>
<script>
// Javascript code that uses the Ecrion API
</script>
</body>
</html>
Using the API
The example below uses JavaScript to convert XML to PDF using a template stored on the Ecrion server. An XML string is sent to the Ecrion server and a PDF is received back:
// Wait for the API to initialize
eosAPI.ready(function(){
// Authenticate using an API key
eosAPI.authorize("API:59e80576-19e5-4808-98c0-cf2c9da055ea")
.catch(function(response){
// Handle any authentication errors here
alert("Authentication failure: " + response.statusText);
})
});
// Wait for authorize() to complete
eosAPI.authorized(function(){
// Render an xml to pdf using a template
eosAPI.DirectRender.Render({
request: {
InputSettings: {
Template: {
Workspace: "Default",
Path: "Retail/Bookstore Invoice/Invoice.epr"
}
},
Input: {
InputFormat: "xml",
Source: '<?xml version="1.0" standalone="yes"?>' +
'<root>' +
'<Invoices>' +
'<Invoice>' +
'<InvoiceProperties>' +
'<number>02116</number>' +
'<date>2016-06-10</date>' +
'</InvoiceProperties>' +
'<CustomerInformation>' +
'<name>Earl Library Co.</name>' +
'<address>1021 South Main Street, Seattle, Washington 92315</address>' +
'<email>sales@earlbook.com</email>' +
'<telephone>(206)321-2345</telephone>' +
'</CustomerInformation>' +
'<Products>' +
'<Product>' +
'<id>1</id>' +
'<name>Rendezvous with Rama by Arthur C. Clarke</name>' +
'<price>15</price>' +
'<quantity>3</quantity>' +
'<total>45</total>' +
'<description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke\'s best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description>' +
'</Product>' +
'</Products>' +
'<Comments>' +
'<comments>Contact us with any questions you may have.</comments>' +
'</Comments>' +
'</Invoice>' +
'</Invoices>' +
'</root>'
},
PdfOutput: {}
}
}, {
responseContentType: 'application/pdf'
})
.then(function(response) {
// PDF rendered and received. You can use response.data to retrieve the PDF bytes,
// however for this sample the previewResponse utility is used
// to quickly preview the response bytes in a new window
eosAPI.Util.previewResponse(response);
})
.catch(function(response){
// Handle any render errors here
alert("Render error: " + response.obj.Message);
});
});
Notes
obj property contains the deserialized response. data property contains the response bytes if it's binary. status property contains the HTTP status code. .ready or .authorized wrappers..authorizeWithToken utility instead of authorize.eosAPI.sessionToken.Using Ecrion .NET API
Downloading the API
In .NET you need to include a reference to Ecrion.EOS.Client.dll. To download the API, from your Ecrion home page, access Developer module/Software.
For core-only installations, use the SDK download page, which by default is located at https://localhost:50101/sdk or http://localhost:50100/sdk.
Using the API
In the zip file there is a README.txt file that explains how to use the API.
You might need to use the https://eos4.ecrion.com as the eosUrl. For core-only installations, you need to make sure to use the correct server name and port number provided by your system administrator:
The code sample below uses Ecrion API to convert XML to PDF using a template stored on the Ecrion server. An XML string is sent to the Ecrion server and a PDF is received back and downloaded locally.
string eosUrl = "https://eos4.ecrion.com";
string apiKey = "API:59e80576-19e5-4808-98c0-cf2c9da055ea";
string downloadFolder = "C:/Downloads/";
string fileName = "eos-sample1-xml2pdf.pdf";
try
{
AuthorizationService authSvc = new AuthorizationService(eosUrl);
string sessionToken = authSvc.GetToken(apiKey).AccessToken;
Console.WriteLine("Your token is: {0}", sessionToken);
// Render XML -> PDF
// Create a new Render API
DirectRenderService renderSvc = new DirectRenderService(eosUrl);
// Create a new render request
RenderRequestEntity request = new RenderRequestEntity()
{
InputSettings = new InputSettings()
{
Template = new Template()
{
Workspace = "Default",
Path = "Retail/Bookstore Invoice/Invoice.epr"
}
},
Input = new Input()
{
InputFormat = "xml",
Source = "<?xml version=\"1.0\" standalone=\"yes\"?>" +
"<root>" +
"<Invoices>" +
"<Invoice>" +
"<InvoiceProperties>" +
"<number>02116</number>" +
"<date>2016-06-10</date>" +
"</InvoiceProperties>" +
"<CustomerInformation>" +
"<name>Earl Library Co.</name>" +
"<address>1021 South Main Street, Seattle, Washington 92315</address>" +
"<email>sales@earlbook.com</email>" +
"<telephone>(206)321-2345</telephone>" +
"</CustomerInformation>" +
"<Products>" +
"<Product>" +
"<id>1</id>" +
"<name>Rendezvous with Rama by Arthur C. Clarke</name>" +
"<price>15</price>" +
"<quantity>3</quantity>" +
"<total>45</total>" +
"<description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke's best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description>" +
"</Product>" +
"</Products>" +
"<Comments>" +
"<comments>Contact us with any questions you may have.</comments>" +
"</Comments>" +
"</Invoice>" +
"</Invoices>" +
"</root>"
},
PdfOutput = new PdfOutput()
};
// Send the request
Stream response = renderSvc.Render(sessionToken, request);
Console.WriteLine("XML -> PDF rendered ok");
// Download the PDF locally
if (!Directory.Exists(downloadFolder))
Directory.CreateDirectory(downloadFolder);
using (System.IO.Stream newFile = System.IO.File.OpenWrite(downloadFolder + fileName))
{
response.CopyTo(newFile);
}
Console.WriteLine("Downloaded response file to folder: {0}", downloadFolder + fileName);
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
Using Ecrion Java API
Downloading the API
In Java you need to include a reference to Ecrion.EOS.Client.2.0.Java.jar. To download the API, from your Ecrion home page, access the Developer module/Software.
For core-only installations, use the SDK download page, which is by default located at https://localhost:50101/sdk or http://localhost:50100/sdk.
Using the API
In the zip file there is a README.txt file that explains how to use the API.
You might need to use the https://eos4.ecrion.com as the eosUrl. For core-only installations, you need to make sure to use the correct server name and port number provided by your system administrator:
The code snippet below uses Ecrion API to convert XML to PDF using a template stored on the Ecrion server. An XML string is sent to the Ecrion server and a PDF is received back:
String eosUrl = "https://eos4.ecrion.com";
String apiKey = "API:59e80576-19e5-4808-98c0-cf2c9da055ea";
String downloadFolder = "C:/Downloads/";
String fileName = "eos-sample1-xml2pdf.pdf";
AuthorizationService authSvc = new AuthorizationService(eosUrl);
String sessionToken = authSvc.getToken(apiKey).getAccessToken();
System.out.format("Your token is: %s%n", sessionToken);
// Create a new render request
RenderRequestEntity renderRequest = new RenderRequestEntity();
InputSettings inputSettings = new InputSettings();
Template template = new Template();
template.setWorkspace("Default");
template.setPath("Retail/Bookstore Invoice/Invoice.epr");
inputSettings.setTemplate(template);
renderRequest.setInputSettings(inputSettings);
Input input = new Input();
input.setInputFormat("xml");
input.setSource("<?xml version=\"1.0\" standalone=\"yes\"?>" +
"<root>" +
"<Invoices>" +
"<Invoice>" +
"<InvoiceProperties>" +
"<number>02116</number>" +
"<date>2016-06-10</date>" +
"</InvoiceProperties>" +
"<CustomerInformation>" +
"<name>Earl Library Co.</name>" +
"<address>1021 South Main Street, Seattle, Washington 92315</address>" +
"<email>sales@earlbook.com</email>" +
"<telephone>(206)321-2345</telephone>" +
"</CustomerInformation>" +
"<Products>" +
"<Product>" +
"<id>1</id>" +
"<name>Rendezvous with Rama by Arthur C. Clarke</name>" +
"<price>15</price>" +
"<quantity>3</quantity>" +
"<total>45</total>" +
"<description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke's best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description>" +
"</Product>" +
"</Products>" +
"<Comments>" +
"<comments>Contact us with any questions you may have.</comments>" +
"</Comments>" +
"</Invoice>" +
"</Invoices>" +
"</root>");
renderRequest.setInput(input);
renderRequest.setPdfOutput(new PdfOutput());
DirectRenderService renderSvc = new DirectRenderService(eosUrl);
// Send the Request
java.io.InputStream response = renderSvc.render(sessionToken, renderRequest);
// Download the PDF locally
FileOutputStream outputFile = new FileOutputStream(downloadFolder + fileName);
byte[] buffer = new byte[1024];
int bytesRead = -1;
java.io.BufferedInputStream bufferedReader = new java.io.BufferedInputStream(response);
while ((bytesRead = bufferedReader.read(buffer, 0, 1024)) != -1)
outputFile.write(buffer, 0, bytesRead);
response.close();
outputFile.close();
System.out.format("File %s downloaded ok%n", downloadFolder + fileName);
Java SDK Notes
The API Reference documents entities and methods using a simplified model. You will need to use setters and getters when woking with the entities, just like it's used in the above example.
General Notes
Error handling
Each API method can throw error and attempts to return appropriate HTTP status codes. Additional info is included in the body of the response, JSON-formatted.
Example:
//400 BadRequest
{
"Message": "Required parameter 'Path' not found."
}
| Code | Text | Description |
|---|---|---|
| 200 | OK | Success! |
| 201 | Created | Resource created. Usually, the response body represents the newly created resource. |
| 204 | No Content | Request processed. Response is intentionally blank e.g. DELETE operations. |
| 400 | Bad Request | The request was invalid or cannot be otherwise served. An accompanying error message will explain further. |
| 401 | Unauthorized | Missing or incorrect credentials. |
| 403 | Forbidden | The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This is usually because of the current authenticated user not having permission to manage the resource. |
| 404 | Not Found | The URI requested is invalid or the resource requested, such as a user, does not exist. |
| 410 | Gone | This resource is gone. Used to indicate that an API endpoint has been turned off. |
| 415 | Unsupported Media Type | The payload is in a format not supported by this method on the target resource. The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly. |
| 500 | Internal Server Error | Something is broken. Additional explanation is included in the response body. |
Dates and durations
All dates in the API are strings in the ISO 8601 DateTime format:
"2017-01-26T11:29:35Z"
All durations in the API are string in the ISO 8601 Duration format:
"PT1.52S"
API Reference
This Enteprise API reference is organized by services and resource type. Each service groups similar resources together and has one or more methods that changes these resources (create, read, update, delete, etc.). All HTTP routes are relative to Enterprise Website base URI, e.g. api/v2/token refers to https://eos4.ecrion.com/api/v2/token.
Authorization
Authorization.GetTokenAuthorization.DeleteTokenAuthorization.GetTokenWindowsAuthorization.GetTokenSSOSAML Assertion Consumer
GetToken
Generates a session token. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/token
To generate a session token, call this method and supply the user credentials (case sensitive). The preferred way of authenticating is to use an API key. For more information about API keys, see Authentication.
The response contains a session token that needs to be passed via Authorization header using Basic <sessionTokenInbase64> format in order to authorize a generic endpoint.
If you're using our Javascript, .NET or Java client API this process is simplified (examples below).
Parameters
Authorization- User credentials (Required):<apiKey>or<username>:<password>or<environment>#<username>:<password>If the user is added in multiple environments, the environment name is required; if not specified an error will be thrown.
Returns TokenEntity
AccessToken- Session token ofstringtype
The session token has temporary purposes. Don't forget to delete it after you finish using the API by using DeleteToken endpoint.
Examples
Javascript
If you're running Javascript inside a browser, you should avoid typing the credentials in plain text because the .js sources are available to the client.
Instead, it is preferred to store the API Key on your server and do the authentication in a secure backend, passing only a sessionToken to the client, using authorizeWithToken utility.
eosAPI.ready(function(){
var sessionToken = obtainTokenFromMyBackend();
eosAPI.authorizeWithToken(sessionToken);
//all subsequent eosAPI calls will use the sessionToken
})
However, if you're using Javascript in a server-side environment or the credentials are provided by the client user, the authorize utility method is available.
Internally, it calls Authorization.GetToken and uses the returned session token for all subsequent calls through the eosAPI global instance:
var apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
eosAPI.authorize(apiKey)
.catch(function(response){
// Handle any authentication errors here
alert("Authentication failure: " + err.statusText);
});
eosAPI.authorized(function(){
//all eosAPI calls will use the sessionToken obtained based on the apiKey
});
The authorize method supports passing two arguments, i.e. eosAPI.authorize(username, password) if you want to use a username/password combination.
If credentials are used on multiple environments, the environment name is required, i.e. eosAPI.authorize(username, password, environment).
.NET
string apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
string sessionToken = authSvc.GetToken(apiKey).AccessToken;
Alternatively, it's possible to use a username/password combination to authenticate: authSvc.GetToken(username + ":" + password)
If credentials are used on multiple environments, the environment name is required to authenticate: authSvc.GetToken(environment + "#" + username + ":" + password)
Java
String apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
String sessionToken = authSvc.getToken(apiKey);
Alternatively, it's possible to use a username/password combination to authenticate: authSvc.getToken(username + ":" + password)
If credentials are used on multiple environments, the environment name is required to authenticate: authSvc.GetToken(environment + "#" + username + ":" + password)
HTTP
curl -u "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a:" "https://eos4.ecrion.com/api/v2/token"
Alternatively, it's possible to use a username/password combination to authenticate. Replace -u apiKey: with -u username:password
If credentials are used on multiple environments, the environment name is required to authenticate. Replace -u apiKey: with -u environment#username:password
__
DeleteToken
Delete a specific session token. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.4 or later
DELETE api/v2/token
Parameters
accessToken- TheTokenEntity.AccessTokenof typestringto delete on the server.
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Authorization.DeleteToken({
accessToken: "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80"
})
.then(function(response) {
var status = response.status;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
authSvc.DeleteToken(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
authSvc.deleteToken(token);
HTTP
curl -X DELETE "https://eos4.ecrion.com/api/v2/token?accessToken=TOKEN:c87ca566-2587-4480-8a7a-27531f04af80"
__
GetTokenWindows
Generates a session token using Windows Authentication. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/token/windows
To generate an Ecrion access token, call this method and supply the environment name.
Parameters
environment- The environment name
Returns
This method applies for core-only installations if Enterprise login with Active Directory is enabled.
If AD user store synchronization is enabled, an Ecrion user will automatically be created if the current AD user does not have an Ecrion user synced yet. If synchronization is disabled and an Ecrion user does not exist the authentication will fail.
This method is available only in .NET SDK.
Examples
.NET
string environment = "testEnvironment";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
string sessionToken = authSvc.GetTokenWindows(environment).AccessToken;
__
GetTokenSSO
Generates a session token based on a SAML assertion or WS Federation Message Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/token/sso
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Message.environment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
__
SAML Assertion Consumer
Consumes a SAML Assertion Response. Also known as Assertion Consumer Service (ACS) Ecrion Develop Ecrion Converse Ecrion Engage
POST /Security/ConsumeSAMLToken
When configuring IdPs, use an absolute path, pointing to the right domain and port of the Ecrion Enterprise Website. This endpoint does not have a SDK method associated.
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Messageenvironment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
- Redirects the authenticated user to the Enterprise homepage.
Examples
Salesforce as IdP
This fills the ACS URL field in the Salesforce configuration:
http://eos4.ecrion.com/Security/ConsumeSAMLToken
{!docs/11.0/Direct Data.md!}
DirectRender
Render
Render input into a variety of output formats including PDF, Word, etc. Ecrion Develop Ecrion Converse Ecrion Engage
POST api/v2/render
Parameters
-
requestof typeRenderRequestEntityInput- You can specify either aSourceor a combination of anWorkspaceandPath. RequiredInputFormat- Format of the source document- Allowed Values:
pdf,xslfo,svg,xml,wordml,docx,html,eps,dal,das,xfd,excel,json
- Allowed Values:
Source- String representing the source document. Use BASE64 encoding if the source document is binary.Workspace- The workspace namePath- The file path
InputSettingsReferenceResolver- Specifies the reference resolver behavior. The reference resolver is a separate pre-processing step which solves dynamic fields which are layout-dependent, e.g. page numbers, indexes. It can be set to run before starting to produce pages, in parallel with producing pages, or not at all (in which case some fields may not appear in the document). By default, it will use parallel if available (based on your license) or serial if not.- Allowed Values:
parallel,serial,disabled - Default:
parallel
- Allowed Values:
FontErrors- Specifies what to do when a font is not found. By default, it will use the default font, but it can also be set to throw an error.ImageErrors- Specifies what to do when an image is not found or cannot be processed. By default, it will use a stock image, but it can also be set to throw an error or ignore the missing element and not render any placeholder.- Allowed Values:
usestock,throw,ignore - Default:
usestock
- Allowed Values:
TemplateWorkspace- The workspace namePath- The file pathLanguageId- Language idXSLTEngine- The XSL Transformation EngineMSXML- A very fast XSL 1.0 engine; support for Javascript.DotNet20- An XSL Engine used to create compiled XSLT Templates.Saxon- An XSL Engine best for low memory consumption; support for XSL 1.0 and XSL 2.0. No support for Java
TemplateParameters- A key-value mapping that sets template parameters.Name- Template parameter nameValue- Template parameter value
HtmlInput- HTML input settingsEncoding- Specifies the character encoding of the input HTML document- Allowed Values:
utf8,win1252
- Allowed Values:
PageWidth- Specifies the page width as a length value or automatic.- Default:
auto
- Default:
PageHeight- Specifies the page height as a length value or automatic.- Default:
auto
- Default:
PageMarginTop- Specifies the page top margin as a length value.- Default:
1in
- Default:
PageMarginLeft- Specifies the page left margin as a length value.- Default:
1in
- Default:
PageMarginRight- Specifies the page right margin as a length value.- Default:
1in
- Default:
PageMarginBottom- Specifies the page bottom margin as a length value.- Default:
1in
- Default:
PageHeaderMargin- Specifies the page header margin as a length value.- Default:
0.5in
- Default:
PageFooterMargin- Specifies the page footer margin as a length value.- Default:
0.5in
- Default:
ShowPageNumber- Specifies whether to render page numbers in the output.ShowTitle- Specifies whether to render page title in the output.
PdfOutput- Default output if none specified. Available inEcrion DevelopEcrion ConverseEcrion EngagePrefixFontSubset- Specifies whether to add prefixes to the names of subsetted fonts in the internal structure of the output PDF.EmbedTTF- Specifies whether to embed TrueType fonts.HideToolbar- Specifies whether to hide the PDF viewer menubar.HideMenubar- Specifies whether to hide the PDF viewer menubar.HideWindowUI- Specifies whether to hide the PDF viewer window UI.FitWindow- Specifies whether the output PDF should fit the window when opened.CenterWindow- Specifies whether the output PDF should center in the window when opened.DisplayDocTitle- Specifies whether to display the title of the output PDF.Conformance- Specifies the level of PDF conformance.- Allowed Values:
none,pdfx,pdfa-1a,pdfa-1a-accesible,pdfa-1b,pdf508
- Allowed Values:
Version- Specifies the PDF version.- Allowed Values:
pdf16,pdf14,pdf15,pdf17 - Default:
pdf16
- Allowed Values:
AllowPrinting- If owner-password is set, this can be set to allow printing.AllowModifyContents- If owner-password is set, this can be set to allow editing.AllowCopy- If owner-password is set, this can be set to allow copying.AllowModifyAnnotations- If owner-password is set, this can be set to allow manipulating annotations.AllowFillIn- If owner-password is set, this can be set to allow filling in forms.AllowScreenReaders- If owner-password is set, this can be set to allow screen readers.AllowAssembly- If owner-password is set, this can be set to allow document assembly.AllowDegradedPrinting- If owner-password is set, this can be set to allow degraded printing.ImageCompression- Specifies the type of image compression.- Allowed Values:
jpeg,flat - Default:
jpeg
- Allowed Values:
OwnerPassword- Set an owner password to a string value. This presents the user with a prompt to enter the password when attempting to edit the document. It is used in conjunction with the encryption-strength field and the allow-* fields to encrypt the document bytes and enable granular permissions on the document (although the password can be read from the document to decrypt the contents).UserPassword- Set a user password to a string value. This presents the user with a prompt to enter the password when opening the document. It is used in conjunction with the encryption-strength field to encrypt the document bytes.EncryptionsStrength- If a password is set, specifies the strength with which to encrypt the document.- Allowed Values:
48,128 - Default:
48
- Allowed Values:
AfpOutputEcrion DevelopEcrion ConverseEcrion EngageCodePage- Specify the AFP code page.- Allowed Values:
notset,custom,t1000808,t1000892,t1001250,t1001252,t1v10500 - Default:
notset
- Allowed Values:
ImageCompression- Specify the image compression mode.- Allowed Values:
jpeg,g4mmr,ibm-mmr,none - Default:
jpeg
- Allowed Values:
ConvertToGrayscale- Specifies whether to convert the document to grayscale.UseNativeRasterFonts- Specifies whether to use native raster fonts.UseNativeOutlineFonts- Specifies whether to use native outline fonts.ConvertToAfpRasterFonts- Specifies whether to convert all fonts into native AFP raster fonts.ConvertToAfpOutineFonts- Specifies whether to convert all fonts into native AFP outline fonts.AutoRotateLandscapePages- Specifies whether to automatically rotate landscape pages.WriteSentinels- Specifies whether to write sentinels.
-
HtmlOutputEcrion DevelopEcrion ConverseEcrion EngageHideStaticContent- Skip rendering of static content elements (headers, footers, etc.) in HTML output.GenerateHtmlDocument- Specifies whether to wrap the generated HTML content to form a full HTML document, i.e. html, head, and body tags.UseFixedBodyWidth- Specifies whether to use a fixed width to approximate a paginated document layout or a fluid layout based on the window size.RenderedImagesOutputFolder- Specifies the output folder for the rendered images.InteractiveWidgets- Specifies whether to render BI widgets as interactive or static.RenderedImagesBaseUrl- Specifies where to look for images and other resources linked with relative paths. All relative paths will be resolved relative to this URL. While not required, it is recommended for consistency. Defaults to the current directory.
Notes
HTML output in Ecrion Develop can be used to generate content for web browsers (Firefox, Safari, Chrome, Edge, etc.) However, it is not suitable to be sent via email.
-
TxtOutputEcrion DevelopEcrion ConverseEcrion EngageEncoding- Specifies the output file encoding.- Allowed Values:
utf-8,utf-16,ascii - Default:
ascii
- Allowed Values:
FormFeed- Specifies whether to separate pages using the form feed character.IgnoreCssBoxAttributes- Specifies whether to ignore CSS box attributes or perform layout on the document, spacing out the text vertically and horizontally in order to approximate the original layout.TrimPages- Specifies whether to trim whitespace off pages.LineHeight- Specifies the value in points to assume as the output's line height.- Default:
1.4
- Default:
FontSize- Specifies the value in points to assume as the output's font size.- Default:
9
- Default:
FontFamily- Specifies the font family to assume will be used in the output.- Default:
Courier New
- Default:
PrnOutputEcrion DevelopEcrion ConverseEcrion EngagePrinterName- Specifies the printer name.OutputPrintFile- Specifies the name of the output print file name.PrintJobName- Specifies the name of the printer job.InputTray- Specifies the input tray from which the printer selects the paper source.OutputTray- Specifies the printer output tray.PrintingMode- Specifies the printing mode.autolets the printer decide.- Allowed Values:
auto,simplex,duplex - Default:
auto
- Allowed Values:
ColorMode- Specifies the color mode.autolets the printer decide.- Allowed Values:
auto,color,monochrome - Default:
auto
- Allowed Values:
ManualTray- Specifies whether the input tray is a manually operated tray.CopyCount- Specifies how many copies to print.- Default:
1
- Default:
PsOutputEcrion DevelopEcrion ConverseEcrion EngageWordmlOutputEcrion DevelopEcrion ConverseEcrion EngagePPTXOutputEcrion DevelopEcrion ConverseEcrion EngageEpubOutputEcrion DevelopEcrion ConverseEcrion EngageIocaOutputEcrion DevelopEcrion ConverseEcrion EngageXPSOutputEcrion DevelopEcrion ConverseEcrion EngageDicomOutputEcrion DevelopEcrion ConverseEcrion EngageSMSOutputEcrion DevelopEcrion ConverseEcrion EngageTiffOutputEcrion DevelopEcrion ConverseEcrion EngageEncoderCompressionType- Specifies the encoder compression type.- Allowed Values:
ca_none,ca_ccitt3,ca_ccitt4,ca_lzw,ca_rleAvailable in Ecrion Converse and Ecrion Engage - Allowed Values:
ccitt3,ccitt4,lzw,rleAvailable in Ecrion Develop - Default:
ca_none
- Allowed Values:
Zoom- Specifies the zoom level as a percentage.- Default:
100
- Default:
Resolution- Specifies the default resolution (DPI). The value 0 means automatic.- Default:
0
- Default:
ScaleWidth- Specifies the image width size in pixels.- Default:
-1
- Default:
ScaleHeight- Specifies the image height size in pixels.- Default:
-1
- Default:
TransparentBackground- Specifies whether or not to use a transparent background.
PngOutputEcrion DevelopEcrion ConverseEcrion EngageEncoderCompressionType- Specifies the encoder compression type.- Allowed Values:
ca_none,ca_ccitt3,ca_ccitt4,ca_lzw,ca_rleAvailable in Ecrion Converse and Ecrion Engage - Allowed Values:
ccitt3,ccitt4,lzw,rleAvailable in Ecrion Develop - Default:
ca_none
- Allowed Values:
Zoom- Specifies the zoom level as a percentage.- Default:
100
- Default:
Resolution- Specifies the default resolution (DPI). The value 0 means automatic.- Default:
0
- Default:
ScaleWidth- Specifies the image width size in pixels.- Default:
-1
- Default:
ScaleHeight- Specifies the image height size in pixels.- Default:
-1
- Default:
TransparentBackground- Specifies whether or not to use a transparent background.
JpgOutputEcrion DevelopEcrion ConverseEcrion EngageEncoderCompressionType- Specifies the encoder compression type.- Allowed Values:
ca_none,ca_ccitt3,ca_ccitt4,ca_lzw,ca_rleAvailable in Ecrion Converse and Ecrion Engage - Allowed Values:
ccitt3,ccitt4,lzw,rleAvailable in Ecrion Develop - Default:
ca_none
- Allowed Values:
Zoom- Specifies the zoom level as a percentage.- Default:
100
- Default:
Resolution- Specifies the default resolution (DPI). The value 0 means automatic.- Default:
0
- Default:
ScaleWidth- Specifies the image width size in pixels.- Default:
-1
- Default:
ScaleHeight- Specifies the image height size in pixels.- Default:
-1
- Default:
TransparentBackground- Specifies whether or not to use a transparent background.
GifOutputEcrion DevelopEcrion ConverseEcrion EngageEncoderCompressionType- Specifies the encoder compression type.- Allowed Values:
ca_none,ca_ccitt3,ca_ccitt4,ca_lzw,ca_rleAvailable in Ecrion Converse and Ecrion Engage - Allowed Values:
ccitt3,ccitt4,lzw,rleAvailable in Ecrion Develop - Default:
ca_none
- Allowed Values:
Zoom- Specifies the zoom level as a percentage.- Default:
100
- Default:
Resolution- Specifies the default resolution (DPI). The value 0 means automatic.- Default:
0
- Default:
ScaleWidth- Specifies the image width size in pixels.- Default:
-1
- Default:
ScaleHeight- Specifies the image height size in pixels.- Default:
-1
- Default:
TransparentBackground- Specifies whether or not to use a transparent background.
Returns
binary data- the output document, in a format determined by the request output settings.
Examples
Javascript
eosAPI.DirectRender.Render({
request: {
InputSettings: {
Template: {
Workspace: "Default",
Path: "Retail/Bookstore Invoice/Invoice.epr"
}
},
Input: {
InputFormat: "xml",
Source: "<?xml version=\"1.0\" standalone=\"yes\"?><root><Invoices><Invoice><InvoiceProperties><number>02116</number><date>2016-06-10</date></InvoiceProperties><CustomerInformation><name>Earl Library Co.</name><address>1021 South Main Street, Seattle, Washington 92315</address><email>sales@earlbook.com</email><telephone>(206)321-2345</telephone></CustomerInformation><Products><Product><id>1</id><name>Rendezvous with Rama by Arthur C. Clarke</name><price>15</price><quantity>3</quantity><total>45</total><description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke's best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description></Product></Products><Comments><comments>Contact us with any questions you may have.</comments></Comments></Invoice></Invoices></root>"
},
TxtOutput: {}
}
})
.then(function(response) {
var content = response.data;
})
.NET
DirectRenderService renderSvc = new DirectRenderService("https://eos4.ecrion.com/");
// Create a new request
RenderRequestEntity request = new RenderRequestEntity();
request.InputSettings = new InputSettings();
request.InputSettings.Template = new Template();
request.InputSettings.Template.Workspace = "Default";
request.InputSettings.Template.Path = "Retail/Bookstore Invoice/Invoice.epr";
request.Input = new Input();
request.Input.InputFormat = "xml";
request.Input.Source = "<?xml version=\"1.0\" standalone=\"yes\"?><root><Invoices><Invoice><InvoiceProperties><number>02116</number><date>2016-06-10</date></InvoiceProperties><CustomerInformation><name>Earl Library Co.</name><address>1021 South Main Street, Seattle, Washington 92315</address><email>sales@earlbook.com</email><telephone>(206)321-2345</telephone></CustomerInformation><Products><Product><id>1</id><name>Rendezvous with Rama by Arthur C. Clarke</name><price>15</price><quantity>3</quantity><total>45</total><description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke's best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description></Product></Products><Comments><comments>Contact us with any questions you may have.</comments></Comments></Invoice></Invoices></root>";
request.TxtOutput = new TxtOutput();
// Send the request
Stream content = renderSvc.Render(sessionToken, request);
Java
DirectRenderService renderSvc = new DirectRenderService("https://eos4.ecrion.com/");
// Create a new request
RenderRequestEntity request = new RenderRequestEntity();
InputSettings inputSettings = new InputSettings();
Template template = new Template();
template.setWorkspace("Default");
template.setPath("Retail/Bookstore Invoice/Invoice.epr");
inputSettings.setTemplate(template);
request.setInputSettings(inputSettings);
Input input = new Input();
input.setInputFormat("xml");
input.setSource("<?xml version=\"1.0\" standalone=\"yes\"?><root><Invoices><Invoice><InvoiceProperties><number>02116</number><date>2016-06-10</date></InvoiceProperties><CustomerInformation><name>Earl Library Co.</name><address>1021 South Main Street, Seattle, Washington 92315</address><email>sales@earlbook.com</email><telephone>(206)321-2345</telephone></CustomerInformation><Products><Product><id>1</id><name>Rendezvous with Rama by Arthur C. Clarke</name><price>15</price><quantity>3</quantity><total>45</total><description>An all-time science fiction classic, Rendezvous with Rama is also one of Clarke's best novels--it won the Campbell, Hugo, Jupiter, and Nebula Awards.</description></Product></Products><Comments><comments>Contact us with any questions you may have.</comments></Comments></Invoice></Invoices></root>");
request.setInput(input);
request.setTxtOutput(new TxtOutput());
// Send the request
java.io.InputStream response = renderSvc.render(sessionToken, request);
HTTP
curl -H "Content-Type: application/json" -X POST -u "TOKEN:7a6961b5-5be4-4318-b82e-4631659efa38" -d "{ 'Input' : { 'Source' : '<?xml version=\"1.0\" standalone=\"yes\"?><root></root>' }, 'InputSettings' : { 'Template' : { 'Workspace' : 'Default', 'Path' : 'Retail/Bookstore Invoice/Invoice.epr' } }, 'TxtOutput' : {}}" "https://eos4.ecrion.com/api/v2/render"
Repository
Ecrion stores all assets involved in document production (images, templates, stylesheets, etc.) in a file repository. The Ecrion core-only installation provides a basic level of functionality, while the complete installation comes with a high performance repository capable of sustaining 1000s of read/write operations per second, versioning and dependency tracking.
Methods:
Repository.DownloadFileRepository.UploadFileRepository.GetFilesRepository.UpdateFileRepository.DeleteFileRepository.GetFileVersionsRepository.RestoreFileVersionRepository.ExportFolderRepository.ImportFolderRepository.CreateFolderRepository.GetFoldersRepository.UpdateFolderRepository.DeleteFolderRepository.GetTagsRepository.RemoveTagRepository.AddTag
Entities:
DownloadFile
Download a file from Ecrion repository. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/files/content
Parameters
workspace- Workspace name Requiredpath- File path Required
Returns
binary data- File bytes
Examples
Javascript
eosAPI.Repository.DownloadFile({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4"
})
.then(function(response) {
var content = response.data;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
Stream content = repo.DownloadFile(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.io.InputStream content = repo.downloadFile(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
HTTP
curl -u "TOKEN:7a6961b5-5be4-4318-b82e-4631659efa38" "https://eos4.ecrion.com/api/v2/files/content?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
UploadFile
Upload a file to Ecrion repository. Ecrion Develop Ecrion Converse Ecrion Engage
POST api/v2/files/content
Parameters
workspace- Workspace name. Requiredpath- File path. Requiredfile- File bytes. Required
Returns
Examples
Javascript
eosAPI.Repository.UploadFile({
workspace: "Default",
path: "Retail/Bookstore Invoice/Sample.xml",
file: new File(['<?xml version=\"1.0\" standalone=\"yes\"?><root></root>'], "Sample.xml", {type: "text/xml"})
})
.then(function(response) {
var file = response.obj;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
using (FileStream fsSource = new FileStream(@"C:\Sample.xml", FileMode.Open, FileAccess.Read))
{
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FileEntity fileResponse = repo.UploadFile(token, "Default", "Retail/Bookstore Invoice/Sample.xml", fsSource);
}
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.io.InputStream fsSource = new FileInputStream("C:\\Sample.xml");
repo.uploadFile(token, "Default", "Retail/Bookstore Invoice/Sample.xml", fsSource);
HTTP
curl -X POST -F "file=@C:\Sample.xml" -u "TOKEN:7a6961b5-5be4-4318-b82e-4631659efa38" "https://eos4.ecrion.com/api/v2/files/content?workspace=Default&path=Retail/Bookstore%20Invoice/Sample.xml"
__
GetFiles
Returns a list of files from the Ecrion repository. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/files
Parameters
workspace- Workspace name. Requiredpath- Path to the folder containing the files or a file path1. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
tags - Default:
null
- Allowed Values:
tagName- Name of the tag to search for. If tag is specified2 the endpoint will perform an in depth search of specified folder path.- Default:
null
- Default:
tagValue- Value of the tag to search for. If tag is specified2 the endpoint will perform an in depth search of specified folder path.- Default:
null
- Default:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
1. If the path is a file the result will contain a list of one file metadata from the specified file path.
2. To search files after a tag you need to specify both tagName and tagValue.
Returns FileEntity[]
Path- Path to the fileWorkspace- The workspace name in which the file is locatedAuthor- The name of the author of the current versionCreatedDate- The date when the current version was created (see Date Format)Type- A friendly file type name (e.g."PDF File")Bytes- The file size in bytesSize- A human-readable description of the file sizeTags- List ofTagEntityfile tags IF asked for. Otherwise it'snullName- Name of the tagValue- Value of the tag
Version- The 1-based version index
Examples
Javascript
// List all files in Bookstore Invoice folder
eosAPI.Repository.GetFiles({
workspace: "Default",
path: "Retail/Bookstore Invoice"
})
.then(function(response) {
var files = response.obj;
})
.NET
// List all files in Bookstore Invoice folder
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<FileEntity> files = repo.GetFiles(token, "Default", "Retail/Bookstore Invoice");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.util.List<FileEntity> files = repo.getFiles(token, "Default", "Retail/Bookstore Invoice", null, 0, 10, null, null);
HTTP
curl -u "TOKEN:7a6961b5-5be4-4318-b82e-4631659efa38" "https://eos4.ecrion.com/api/v2/files?workspace=Default&path=Retail/Bookstore%20Invoice"
__
UpdateFile
Rename, copy or move a file Ecrion Develop Ecrion Converse Ecrion Engage
PUT /api/v2/files
Parameters
workspace- Workspace name. Requiredpath- Path to the file on which to perform the action. RequiredfileOperation- of typeFileOperationEntity. RequiredPath- The new file path. RequiredAction- The action to perform on file. Can berename,copyormove. RequiredOverwrite- Specifies how to resolve the conflict if the new file path exists- Allowed values:
true,false - Default:
false
- Allowed values:
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.UpdateFile({
workspace: "Default",
path: "/Design/Invoice/Invoice.epr",
fileOperation:{
path: "/Design/Invoice/Invoice2.epr",
action: "copy"
}
})
.then(function(response) {
var status = response.status;
});
.NET
//duplicate Invoice.epr as Invoice2.epr
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.UpdateFile(token, "Default", "Retail/Bookstore Invoice/Invoice.epr",
new FileOperationEntity()
{
Path = "Retail/Bookstore Invoice/Invoice2.epr",
Action = "copy"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FileOperationEntity op = new FileOperationEntity();
op.setPath("Retail/Bookstore Invoice/Invoice2.epr");
op.setAction("copy");
op.setOverwrite(true);
repo.updateFile(token, "Default", "Retail/Bookstore Invoice/Invoice.epr", op);
HTTP
curl -H "Content-Type: application/json" -X PUT -d "{ 'Path':'Retail/Bookstore Invoice/Invoice2.epr', Action:'copy' }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files?workspace=Default&path=Retail/Bookstore%20Invoice/Invoice.epr"
__
DeleteFile
Delete a file from Ecrion repository Ecrion Develop Ecrion Converse Ecrion Engage
DELETE /api/v2/files
Parameters
workspace- Workspace name Requiredpath- The path of the file to be deleted Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.DeleteFile({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4",
})
.then(function(response) {
var status = response.status;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.DeleteFile(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.deleteFile(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
GetFileVersions
Return a list of file versions from specified file path and workspace. Ecrion Develop Ecrion Converse Ecrion Engage(not available in core-only installations)
GET /api/v2/files/versions
Parameters
workspace- Workspace name. Requiredpath- EOS file path. Required
Returns
Examples
Javascript
eosAPI.Repository.GetFileVersions({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4"
})
.then(function(response) {
var versions = response.obj;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<FileEntity> versions = repo.GetFileVersions(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<FileEntity> versions = repo.getFileVersions(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/versions?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
RestoreFileVersion
Restore a file version Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations).
POST /api/v2/files/versions
Parameters
workspace- Workspace name. Requiredpath- EOS file path. Requiredrequest- RequiredVersion- The 1-based version index to restore.
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.RestoreFileVersion({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4",
request: {
version: 1
}
})
.then(function(response) {
var status = response.status;
});
.NET
// Restore Main.wk4 file to version 1
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
RestoreVersionRequestEntity versToRestore = new RestoreVersionRequestEntity();
versToRestore.Version = 1;
repo.RestoreFileVersion(token, "Default", "Retail/Bookstore Invoice/Main.wk4", versToRestore);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
RestoreVersionRequestEntity versToRestore = new RestoreVersionRequestEntity();
versToRestore.setVersion(1);
repo.restoreFileVersion(token, "Default", "Retail/Bookstore Invoice/Main.wk4", versToRestore);
HTTP
curl -H "Content-Type: application/json" -X POST -d "{ 'Version':1 }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/versions?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
ExportFolder
Download a zip file of a folder from Ecrion repository. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/folders/content
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns
binary data- the zip file
Examples
Javascript
eosAPI.Repository.ExportFolder({
workspace: "Default",
path: "Retail/Bookstore Invoice"
})
.then(function(response) {
// zip is a blob
var zip = response.data;
});
.NET
// Export Bookstore Invoice folder
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
Stream zip = repo.ExportFolder(token, "Default", "Retail/Bookstore Invoice");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.io.InputStream zip = repo.exportFolder(token, "Default", "Retail/Bookstore Invoice");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/folders/content?workspace=Default&path=Retail/Bookstore%20Invoice"
__
ImportFolder
Decompress an archive and uploads its content to Ecrion repository. Ecrion Develop Ecrion Converse Ecrion Engage
POST api/v2/folders/content
Parameters
workspace- Workspace name. Requiredpath- Folder path. RequiredimportTags- Import the tags folder Requiredfile- Zip file bytes. Required
Returns
Examples
Javascript
//Upload generated .zip file
eosAPI.Repository.ImportFolder({
workspace: "Default",
path: "Retail/Bookstore Invoice",
file: new File([/*content*/ ], "myFolder.zip")
})
.then(function(response) {
var folder = response.obj;
})
.NET
// Import 'myFolder' to Bookstore Invoice folder
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
using (FileStream fsSource = new FileStream(@"C:\myFolder.zip", FileMode.Open, FileAccess.Read))
{
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FolderEntity folder = repo.ImportFolder(token, "Default", "Retail/Bookstore Invoice", false, fsSource);
}
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.io.InputStream fsSource = new FileInputStream("C:\\myFolder.zip");
repo.importFolder(token, "Default", "Retail/Bookstore Invoice", false, fsSource);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -F filedata=@"C:\myFolder.zip" "http://eos4.ecrion.com/api/v2/folders/content?workspace=Default&path=Retail/Bookstore%20Invoice"
__
CreateFolder
Create new folder Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns FolderEntity
Path- Path to the folderWorkspace- Workspace name in which the folder is locatedCreatedDate- Date when the folder was created (see Date Format)FilesCount- Total number of files inside the folder (non recursive)FoldersCount- Total number of folders inside the folder (non recursive)
Examples
Javascript
eosAPI.Repository.CreateFolder({
workspace: "Default",
path: "NewFolder"
})
.then(function(response) {
var folder = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FolderEntity folder = repo.CreateFolder(token, "Default", "NewFolder");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FolderEntity folder = repo.createFolder(token, "Default", "NewFolder");
HTTP
curl -X POST -d "{'path' : 'NewFolder'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/folders?workspace=Default&path=NewFolder"
__
GetFolders
Returns a list of folders in the specified parent path and workspace. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Requiredstart- Start indexcount- Number of results
Returns
FolderEntity[]- A list ofFolderEntity
Examples
Javascript
// List all folders from a workspace
eosAPI.Repository.GetFolders({
workspace: "Default",
path: "Retail/Bookstore Invoice"
})
.then(function(response) {
var folders = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<FolderEntity> folders = repo.GetFolders(token, "Default", "Retail/Bookstore Invoice");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
java.util.List<FolderEntity> folders = repo.getFolders(token, "Default", "Retail/Bookstore Invoice", 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/folders?workspace=Default&path=Retail/Bookstore%20Invoice"
__
UpdateFolder
Rename, copy or move folder Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
PUT /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. RequiredfolderOperation- The operation to be performed on the folder, of typeFolderOperationEntity. RequiredPath- The new folder path. RequiredAction- The action to perform on folder. Can be rename, copy, move. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.UpdateFolder({
workspace: "Default",
path: "Retail/Bookstore Invoice",
folderOperation: {
Path: "Retail/Bookstore Invoice2",
Action: "copy"
}
})
.then(function(response) {
var status = response.status;
})
.NET
//duplicate Bookstore Invoice as Bookstore Invoice2
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.UpdateFolder(token, "Default", "Retail/Bookstore Invoice",
new FileOperationEntity()
{
Path = "Retail/Bookstore Invoice2",
Action = "copy"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
FolderOperationEntity op = new FolderOperationEntity();
op.setPath("Retail/Bookstore Invoice2");
op.setAction("copy");
repo.updateFolder(token, "Default", "Retail/Bookstore Invoice", op);
HTTP
curl -X PUT -H "Content-Type: application/json" -d "{ 'Path':'Retail/Bookstore Invoice2', 'Action':'copy' }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/folders?workspace=Default&path=Retail/Bookstore%20Invoice"
__
DeleteFolder
Delete folder Ecrion Develop Ecrion Converse Ecrion Engage
DELETE /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.DeleteFolder({
workspace: "Default",
path: "Retail/Bookstore Invoice"
})
.then(function(response) {
var status = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.DeleteFolder(token, "Default", "Retail/Bookstore Invoice");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
repo.deleteFolder(token, "Default", "Retail/Bookstore Invoice");
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/folders?workspace=Default&path=Retail/Bookstore%20Invoice"
__
GetTags
Get tags associated with a repository item. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations).
GET /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Required
Returns
TagEntity[]- The list of tagsName- Name of the tagValue- Value of the tag
Examples
Javascript
eosAPI.Repository.GetTags({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4"
})
.then(function(response) {
var tags = response.obj;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<TagEntity> tags = repo.GetTags(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
List<TagEntity> tags = repo.getTags(token, "Default", "Retail/Bookstore Invoice/Main.wk4");
HTTP
curl -X GET -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
AddTag
Add a tag to the list of repository item tags. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
POST /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Requiredtag- The tag of typeTagEntityto be added. RequiredName- Name of the tag. RequiredValue- Value of the tag. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.AddTag({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4",
tag:{
Name: "Priority",
Value: "High"
}
})
.then(function(response) {
var status = response.status;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
TagEntity tag = new TagEntity();
tag.Name = "Priority";
tag.Value = "High";
repo.AddTag(token, "Default", "Retail/Bookstore Invoice/Main.wk4", tag);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
TagEntity tag = new TagEntity();
tag.setName("Priority");
tag.setValue("High");
repo.addTag(token, "Default", "Retail/Bookstore Invoice/Main.wk4", tag);
HTTP
curl -H "Content-Type: application/json" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -X POST -d "{'Name':'Priority', 'Value':'High'}" "http://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
__
RemoveTag
Removes a tag from the list of repository item tags. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
DELETE /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Requiredtag- The tag of typeTagEntityto be removed. RequiredName- Name of the tag. RequiredValue- Value of the tag. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.RemoveTag({
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4",
tag:{
Name: "Priority",
Value: "High"
}
})
.then(function(response) {
var status = response.status;
});
.NET
// Remove the tag associated with Main.wk4 file which have the specified name and value
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
TagEntity tag = new TagEntity();
tag.Name = "Priority";
tag.Value = "High";
repo.RemoveTag(token, workspace.Name, "Retail/Bookstore Invoice/Main.wk4", tag);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
RepositoryService repo = new RepositoryService("https://eos4.ecrion.com/");
TagEntity tag = new TagEntity();
tag.setName("Priority");
tag.setValue("High");
repo.removeTag(token, "Default", "Retail/Bookstore Invoice/Main.wk4", tag);
HTTP
curl -H "Content-Type: application/json" -X DELETE -d {"Name":"Priority", "Value":"High"} -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Main.wk4"
Jobs
Methods:
Jobs.GetJobsJobs.LookupJobs.CreateJobJobs.RunJobJobs.GetJobJobs.DeleteJobJobs.GetJobInputJobs.DeleteJobInputJobs.DownloadJobInputJobs.UploadJobInputJobs.GetJobOutputJobs.DownloadJobOutputJobs.GetJobLogsJobs.CreateJobLogJobs.UnshareJobJobs.GetJobShareJobs.ShareJob
Entities:
GetJobs
Returns a list of jobs from the specified workspace. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs
Parameters
type- Communication type- Allowed values:
Interactive,Batch,OnDemand
- Allowed values:
communication- Communication nameworkspace- Workspace namestatus- Job status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
author- The user's username which created the job.start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
You must provide at least one of these filters: Type, Communication or Workspace. Passing in multiple filters will not get a combined result.
Returns
JobEntity[]- A list ofJobEntity
Examples
Javascript
// Get latest 10 jobs from Default workspace
eosAPI.Jobs.GetJobs({
workspace: "Default",
count: 10
})
.then(function(response) {
var jobs = response.obj;
})
.NET
// Get jobs from Default workspace
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<JobEntity> myJobs = jobSvc.GetJobs(token, null, null, "Default", null, null, 0, 10);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<JobEntity> myJobs = jobSvc.getJobs(token, null, null, "Default", null, null, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/jobs?workspace=Default"
__
Lookup
Returns a list of jobs. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.6 or later
POST /api/v2/jobs/lookup
Parameters
request- Lookup jobs request parameters, of typeLookupJobsRequest. RequiredType- Communication type- Allowed values:
Interactive,Batch,OnDemand
- Allowed values:
Communication- Communication nameWorkspace- Workspace nameStatus- Job status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
Author- The user's username which created the job.Tags- Job tags, a list ofTagEntity.Start- Start index- Default:
0
- Default:
Count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
You must provide at least one of these filters: Type, Communication or Workspace. Passing in multiple filters will not get a combined result.
Returns
JobEntity[]- A list ofJobEntity
Examples
Javascript
// Get latest 10 jobs from Default workspace
eosAPI.Jobs.Lookup({
request:{
workspace: "Default",
Tags: [
{Name: "MyTagName1", Value: "MyTagValue1"},
{Name: "MyTagName2", Value: "MyTagValue2"}
],
count: 10
}
})
.then(function(response) {
var jobs = response.obj;
})
.NET
// Get jobs from Default workspace which have the specified tags
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<TagEntity> myTags = new List<TagEntity> {
new TagEntity() { Name = "MyTagName1", Value = "MyTagValue1" },
new TagEntity() { Name = "MyTagName2", Value = "MyTagValue2" }
};
List<JobEntity> jobs = jobSvc.Lookup(token, new LookupJobsRequest()
{
Workspace = "Default",
Tags = myTags
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
TagEntity tag1 = new TagEntity();
tag1.setName("MyTagName1");
tag1.setValue("MyTagValue1");
List<TagEntity> tagsList = new ArrayList<TagEntity>();
tagsList.add(tag1);
LookupJobsRequest lookupOp = new LookupJobsRequest();
lookupOp.setWorkspace(settings.workspace);
lookupOp.setTags(tagsList);
List<JobEntity> myJobs = jobSvc.lookup(token, lookupOp);
HTTP
curl -H "Content-Type: application/json" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" -X POST -d "{ 'workspace' : 'Default' }" "https://eos4.ecrion.com/api/v2/jobs/lookup"
__
CreateJob
Creates a new job in "WaitingForInput" state and returns it. Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/jobs
Parameters
job- Information about the new job, of typeJobRequestEntity. RequiredWorkflow- The workflow (.wk4 file) to create a job from. Either aWorkflowor aCommunicationis required.Workspace- The workspace name in which the workflow is located.Path- Workflow path.
Communication- The communication name to create job from. Either aWorkflowor aCommunicationis required.Parameters- A list ofJobParameter.Name- Parameter name.Value- Parameter value.
Tags- A list ofTagEntity. version 9.1.6 or later
Returns JobEntity
Id- Job idName- Job friendly nameAuthor- The user's username that started the jobStartDate- Date when job started (see Date Format).EndDate- Date when job ended (see Date Format).Duration- Duration of the job (see Duration Format).Progress- An integer between0and100indicating the progress percentage. A value of-1is returned if something went wrong while determining the progress.Status- Job current status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
Workflow- File path of the workflow that was used to generate the job.Workspace- Job's workspace. Same as workflow's workspace.Communication- Communication nameType- Communication typeManualOutcome- Last manual step outcome executed in the workflow, e.g.Approved,RejectedCurrentStep- The current job step being executed, of typeJobStepEntity. If the job status isFinishedOKthis isnull.Id- Job step idName- Job step friendly nameType- The type of the job step. Possible values are:GetData,Render,Email,SMS,Print,Custom,WebRequest,If,ReviewDocument,ReviewSnapshot,Issue,Task,Merge,Tag,Archive,Decompress,CreateSnapshot,DeleteSnapshot,PublishSnapshot,Group,Append,RunWorkflow,CreateCommunication,CreateInteractiveDocument,Maintenance,ElectronicSignature,Overlay,CopyToFTP,CopyToEOSFolder,CopyToFolder,CopyToSharepoint,CopyToAmazonS3,PostToSocialMediaetc.TaskId- If this is a manual step (e.g.ReviewDocument,ReviewSnapshot,Issue,Task) it contains the id of the newly created task.
Examples
Javascript
eosAPI.Jobs.CreateJob({
job:{
workflow: {
workspace: "Default",
path: "Retail/Bookstore Invoice/Main.wk4"
}
}
})
.then(function(response) {
var jobEntity = response.obj;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobRequestEntity jobReq = new JobRequestEntity();
jobReq.Workflow = new WorkflowFileEntity()
{
Workspace = "Default",
Path = "Retail/Bookstore Invoice/Main.wk4"
};
JobEntity newJob = jobSvc.CreateJob(token, jobReq);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobRequestEntity jobReq = new JobRequestEntity();
WorkflowFileEntity workflowOp = new WorkflowFileEntity();
workflowOp.setWorkspace("Default");
workflowOp.setPath("Retail/Bookstore Invoice/Main.wk4");
jobReq.setWorkflow(workflowOp);
JobEntity newJob = jobSvc.createJob(token, jobReq);
HTTP
curl -H "Content-Type: application/json" -X POST -d "{ 'Workflow': { 'Workspace':'Default', 'Path':'Retail/Bookstore Invoice/Main.wk4'} }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/jobs"
__
RunJob
Runs a job. The job will transition from "WaitingForInput" state. Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/jobs/{id}/run
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredsync- Iftrue, the api will not return until the job is finished
Returns
JobEntity- The updated job, inProcessingstate.
Examples
Javascript
eosAPI.Jobs.RunJob({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var job = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobEntity runJob = jobSvc.RunJob(token, jobId, "Default", true);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobEntity runJob = jobSvc.runJob(token, jobId, "Default", true);
HTTP
curl -X POST -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" -d "{workspace: 'Default'}" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/run?workspace=Default"
__
GetJob
Finds a job by id. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
Examples
Javascript
eosAPI.Jobs.GetJob({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var job = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobEntity myJob = jobSvc.GetJob(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
JobEntity myJob = jobSvc.getJob(token, jobId, "Default");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b?workspace=Default"
__
DeleteJob
Deletes a job by id. Ecrion Develop Ecrion Converse Ecrion Engage
DELETE /api/v2/jobs/{id}
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.DeleteJob({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.DeleteJob(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.deleteJob(token, jobId, "Default");
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b?workspace=Default"
__
GetJobInput
Gets job's input file. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}/input
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
Examples
Javascript
eosAPI.Jobs.GetJobInput({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var file = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
FileEntity jobInputFile = jobSvc.GetJobInput(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
FileEntity jobInputFile = jobSvc.getJobInput(token, jobId, "Default");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/input?workspace=Default"
__
DeleteJobInput
Deletes job's input file. Ecrion Develop Ecrion Converse Ecrion Engage
DELETE /api/v2/jobs/{id}/input
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.DeleteJobInput({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.DeleteJobInput(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.deleteJobInput(token, jobId, "Default");
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/input?workspace=Default"
__
DownloadJobInput
Downloads the job's input file. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}/input/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
binary data- File bytes
Examples
Javascript
eosAPI.Jobs.DownloadJobInput({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var content = response.data;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
Stream content = jobSvc.DownloadJobInput(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
java.io.InputStream content = jobSvc.downloadJobInput(token, jobId, "Default");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/input/content?workspace=Default"
__
UploadJobInput
Uploads the job's input file bytes. Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/jobs/{id}/input/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredfile- File bytes. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.UploadJobInput({
id:"1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default",
file: new File(['<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root></root>'], "JobInput.xml")
})
.then(function(response) {
var status = response.status;
});
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
using (FileStream fsSource = new FileStream(@"C:\JobInput.xml", FileMode.Open, FileAccess.Read))
{
JobsService jobs = new JobsService("https://eos4.ecrion.com/");
jobs.UploadJobInput(token, jobId, "Default", fsSource);
}
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
java.io.InputStream initialStream = new FileInputStream("C:\\JobInput.xml");
jobSvc.uploadJobInput(token, jobId, "Default", initialStream);
HTTP
curl -X POST -F "file=@C:\JobInput.xml" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/input/content?workspace=Default"
__
GetJobOutput
Gets job outputs. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}/output
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
FileEntity[]- A list ofFileEntity
Examples
Javascript
eosAPI.Jobs.GetJobOutput({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var files = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<FileEntity> jobOutputs = jobSvc.GetJobOutput(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<FileEntity> jobOutputs = jobSvc.getJobOutput(token, jobId, "Default");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/output?workspace=Default"
__
DownloadJobOutput
Downloads a file zip file that archive a folder EOS repository. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}/output/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. RequiredincludeInputs- Allowed values
true- The zip will contain all folders.false- The zip will include only the outputs in a flat folder.
- Default:
true
- Allowed values
Returns
binary data- the zip file
Examples
Javascript
eosAPI.Jobs.DownloadJobOutput({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var files = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
Stream zipFile = jobSvc.DownloadJobOutput(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
java.io.InputStream zipFile = jobSvc.downloadJobOutput(token, jobId, "Default", true);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/output/content?workspace=Default"
__
GetJobLogs
Gets the log messages of a job. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.3 or later
GET /api/v2/jobs/{id}/logs
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredstart- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
LogMessageEntity[]- A list ofLogMessageEntity
Examples
Javascript
eosAPI.Jobs.GetJobLogs({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var logMsgs = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<LogMessageEntity> logs = jobSvc.GetJobLogs(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
List<LogMessageEntity> logs = jobSvc.getJobLogs(token, jobId, "Default", 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/logs?workspace=Default"
__
CreateJobLog
Logs a message for a specific job. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.3 or later
POST /api/v2/jobs/{id}/logs
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. RequiredstepId- A job step id to associate the log message with.logMessage- The log message, of typeLogMessageRequestEntity. RequiredSeverity- The severity of the message. Required- Allowed Values:
DiagnosticTrace,Error,Information,None,Warning.
- Allowed Values:
Content- The log message content. Required
Returns
201 (Created)- HTTP status code
Examples
Javascript
eosAPI.Jobs.CreateJobLog({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default",
logMessage: {
Severity: "Information",
Content: "This message should go to the job log"
}
})
.then(function(response) {
var httpCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.CreateJobLog(token, jobId, "Default", new LogMessageRequestEntity()
{
Severity = "Information",
Content = "This message should go to the job log",
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
LogMessageRequestEntity log = new LogMessageRequestEntity();
log.setSeverity("Information");
log.setContent("This message should go to the job log");
jobSvc.createJobLog(token, jobId, "Default", log, null);
HTTP
curl -X POST -H "Content-Type: application/json" -d "{Severity: 'Information', Content: 'This message should go to the job log'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/jobs/1c5102d4-55fc-4a22-9136-18627cb7f88b/logs?workspace=Default"
__
JobStatus
WaitingForInput- job is created and it waits for an input (set by Jobs.CreateJob)Starting– a created job is queued for execution (set by Jobs.RunJob async)Processing– a job is executing (set by the job service when it actually starts the execution)WaitingForTask– a job which is executing is waiting for a task to transitionFinishedOK, FinishedWithErrors– a job finished executing (set by Jobs.RunJob sync)Aborted– a job was stopped explicitly by the user or by the service shut down
__
UnshareJob
Removes the share for a job with portal/anonymous users. Ecrion Develop Ecrion Converse Ecrion Engage
DELETE /api/v2/jobs/{id}/share
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredrequest- Remove access to shared jobs.Public- Remove the access of the shared folder. Iftrue, the job will no longer be shared.PortalUsers- Provide a list of Contacts ID. IfNULL, no user will be able to view the job.
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.UnshareJob({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default",
request: {
Public: "true",
PortalUsers: "C011"
}
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.UnshareJob(token, jobId, "Default", new DeleteFileShareRequest()
{
Public = "true",
PortalUsers = "C011"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
DeleteFileShareRequest job = new DeleteFileShareRequest();
job.setPublic("true");
job.setPortalUsers("C011");
jobSvc.UnshareJob(token, jobId, "Default", "true", "C011");
HTTP
curl -H "Content-Type: application/json" -X DELETE -d "{ 'Public':'true', 'PortalUsers': ['C011', 'C012'] }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "http://eos4.ecrion.com/api/v2/jobs/7dfc3494-6c6e-42dd-ade5-e8d29093015a/share?workspace=Default"
-
GetJobShare
Gets share information from a job. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/jobs/{id}/share
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns FileShareResponse
PublicUrl- Url for anonymous accessPublicId- An unique identifier for the shared resourcePortalUrl- Url for portal usersPortalUsers- List of Contacts ID.
Examples
Javascript
eosAPI.Jobs.GetJobShare({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default"
})
.then(function(response) {
var FileShareResponse = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
FileEntity jobInputFile = jobSvc.GetJobShare(token, jobId, "Default");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
FileEntity jobInputFile = jobSvc.getJobShare(token, jobId, "Default");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "http://eos4.ecrion.com/api/v2/jobs/7dfc3494-6c6e-42dd-ade5-e8d29093015a/share?workspace=Default"
-
ShareJob
Share a folder with portal/anonymous users Ecrion Develop Ecrion Converse Ecrion Engage
POST api/v2/jobs/{id}/share
Parameters
id- Job's id. **Requiredworkspace- Job's workspace name. Requiredrequest- Provide permission for a specific job.Public- Make the job public to other users. Add it only for anonymous usersPortalUsers- Provides a list of Contacts ID. IfNULL, the job will be shared with all users.PublicId- Optional GUIDTitle- Title of the Portal.Category- Category from Portal Website- Allowed Values -
Documents,Forms,Analytics.
- Allowed Values -
Returns
Javascript
eosAPI.Jobs.ShareJob({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default",
request: {
Public: "true",
PortalUsers: "C011"
}
})
.then(function(response) {
var FileShareResponse = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
jobSvc.ShareJob(token, jobId, "Default", new FileShareRequest()
{
Public = "true";
PortalUsers = "C011"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
JobsService jobSvc = new JobsService("https://eos4.ecrion.com/");
FileShareEntity file = new FileShareEntity();
file.setPublic("true");
file.setPortalUsers("C011");
jobSvc.ShareJob(token, jobId, "Default", "true", "c011");
HTTP
curl -H "Content-Type: application/json" -X POST -d "{ 'Public':'true', 'PortalUsers': ['C011', 'C012'] }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "http://eos4.ecrion.com/api/v2/jobs/7dfc3494-6c6e-42dd-ade5-e8d29093015a/share?workspace=Default"
-
Resources
Methods:
Entities:
GetJobResourceToken
Returns the resource token associated with job. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.9 or later
GET /api/v2/resources/jobs
Parameters
id- Job idworkspace- Workspace name
Returns ResourceTokenEntity
AccessToken- Resource token ofstringtype
Use case
The returned AccessToken limits the access to the scope of the specified job. You can pass this limited resource token exactly as you would do with normal tokens. This can be useful in the particular cases of embedding DocumentEditor in external systems.
Examples
Javascript
eosAPI.Resources.GetJobResourceToken({
id: "1c5102d4-55fc-4a22-9136-18627cb7f88b",
workspace: "Default",
})
.then(function(response) {
var AccessToken = response.data;
})
.NET
string apitoken = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
string jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
ResourcesService resSvc = new ResourcesService("https://eos4.ecrion.com/");
string resourceToken = resSvc.GetJobResourceToken(apitoken, jobId, "Default").AccessToken;
Java
String apitoken = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
String jobId = "1c5102d4-55fc-4a22-9136-18627cb7f88b";
ResourcesService resSvc = new ResourcesService("https://eos4.ecrion.com/");
String resourceToken = resSvc.getJobResourceToken(apitoken, jobId, "Default").getAccessToken();
HTTP
curl -u "TOKEN:83b02efa-9253-413e-896b-d1011e5127fc" "https://eos4.ecrion.com/api/v2/resources/jobs?id=ba1f749d-0dd8-4f1f-9466-01a49204e87b&workspace=Default"
Distribution
EOS distributes the produced documents on various channels. Using this API you can inspect the email or print communication with your customers.
Distribution.GetEmailTicketsDistribution.GetEmailTicketDistribution.ResendEmailTicketDistribution.GetPrintTicketsDistribution.GetPrintTicketDistribution.ResendPrintTicketDistribution.GetTicketLogs
GetEmailTickets
Returns the list of tickets in email queues, optionally filtered by a queue name, ticket status, job status or job id. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/tickets/email
Parameters
queue- The queue name. If specified, the results will be filtered after the queue.- Default:
null
- Default:
status- The ticket status. If specified, the results will be filtered after the ticket status. You can specify multiple values using commas. Case insensitive.- Allowed Values:
Waiting,Processing,Failed,Sent,Suspended,Bounced,Delivered,Complained,Rejected,Read,Clicked,Opt-Out,Suspended - Default:
null
- Allowed Values:
job- The job id. If specified, the results will be filtered after the job.- Default:
null
- Default:
jobStatus- The job status. If specified, the results will be filtered after the job status. Case insensitive.- Allowed Values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted - Default:
null
- Allowed Values:
fields- A comma separated list of additional fields to be included.- Allowed Values:
content,tags,logs - Default:
null
- Allowed Values:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
EmailTicketEntity[]- A list ofEmailTicketEntity
Examples
Javascript
eosAPI.Distribution.GetEmailTickets()
.then(function(response) {
var emailTickets = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<EmailTicketEntity> emailTickets = distribution.GetEmailTickets(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<EmailTicketEntity> emailTickets = distribution.getEmailTickets(token, null, null, null, null, null, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/tickets/email"
__
GetEmailTicket
Returns an email ticket by its id. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/tickets/email/{id}
Parameters
id- The id of the email ticket. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
content,tags,logs - Default:
null
- Allowed Values:
Returns EmailTicketEntity
Id- A unique id to identify this ticketFrom- The sender email address.To- Recipient email address.Cc- Cc recipient email address.Bcc- Bcc recipient email address.Subject- Email subject.Attachments- List ofEmailAttachmentEntityName- The name of the attachment.Workspace- The workspace name in which the document is located in EOS repository.Path- The path to the document in EOS repository.
AttachmentsAsLinks- If this is true, the body uses links to the files instead of attaching them.Content- Email content, of typeEmailContentEntityIF asked forBody- The HTML email message body or the plain text email message body.IsHTML- Specifies if the email body is html or not.
Priority- The delivery priority- Allowed Values:
Now,High,Low, andNormal.
- Allowed Values:
Status- The status of the ticket- Allowed Values:
Failed,Processing,Delivered.
- Allowed Values:
StartDate- The date when the ticket was created (see Date Format).EndDate- The date when the ticket finished distributing (see Date Format).QueueName- The name of the queue this ticket is part of.JobId- The id of the job this ticket was generated from.Tags- List ofTicketTagEntityIF asked for. Otherwise it'snullName- Name of the tag.Value- Value of the tag.
Logs- List ofLogMessageEntityIF asked for. Otherwise it'snull
Examples
Javascript
eosAPI.Distribution.GetEmailTicket({
id: 1
})
.then(function(response) {
var emailTicket = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
EmailTicketEntity emailTicket = distribution.GetEmailTicket(token, 1);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
EmailTicketEntity emailTickets = distribution.getEmailTicket(token, 1, null);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/tickets/email/1"
__
ResendEmailTicket
Resends failed/bounced/complained/rejected/suspended email ticket with new to, cc, bcc or subject. Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/tickets/email/{id}/resend
Parameters
id- The id of the email ticket. Requiredrequest- Information about how to resend the ticket, of typeResendEmailTicketEntity. RequiredTo- The new recipient email address if specifiedCc- The new cc recipient email address if specifiedBcc- The new bcc recipient email address if specifiedSubject- The new email subject if specified
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Distribution.ResendEmailTicket({
id: 123,
request: {
"To": "newaddress@mailserver.com"
}
})
.then(function(response) {
var httpCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
distribution.ResendEmailTicket(token, 123, new ResendEmailTicketEntity()
{
To = "newaddress@mailserver.com"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
ResendEmailTicketEntity emailTicketEntity = new ResendEmailTicketEntity();
emailTicketEntity.setTo("newaddress@mailserver.com");
distribution.resendEmailTicket(token, 123, emailTicketEntity);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -H "Content-Type: application/json" -X POST -d "{'To': 'newaddress@mailserver.com'}" "http://eos4.ecrion.com/api/v2/tickets/email/123/resend"
__
GetPrintTickets
Returns the list of tickets in print queues, optionally filtered by a queue name, ticket status, job status or job id. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/tickets/print
Parameters
queue- The queue name. If specified, the results will be filtered after the queue.- Default:
null
- Default:
status- The ticket status. If specified, the results will be filtered after the ticket status. You can specify multiple values using commas. Case insensitive.- Allowed Values:
Waiting,Processing,Failed,Sent,Suspended - Default:
null
- Allowed Values:
job- The job id. If specified, the results will be filtered after the job.- Default:
null
- Default:
jobStatus- The job status. If specified, the results will be filtered after the job status. Case insensitive.- Allowed Values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted - Default:
null
- Allowed Values:
fields- A comma separated list of additional fields to be included.- Allowed Values:
tags,logs - Default:
null
- Allowed Values:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
PrintTicketEntity[]- A list ofPrintTicketEntity
Examples
Javascript
eosAPI.Distribution.GetPrintTickets()
.then(function(response) {
var emailTickets = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<PrintTicketEntity> emailTickets = distribution.GetPrintTickets(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<PrintTicketEntity> emailTickets = distribution.getPrintTickets(token, null, null, null, null, null, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/tickets/print"
__
GetPrintTicket
Returns a print ticket by its id. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/tickets/print/{id}
Parameters
id- A unique id to identify this ticket. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
tags,logs - Default:
null
- Allowed Values:
Returns PrintTicketEntity
Id- A unique id to identify this ticket.Workspace- The workspace name in which the document is located in EOS repository.Path- The path to the document in EOS repository.PrinterName- The printer's name.InputTray- The input tray of the printer.ManualTray- If true, it uses the manual tray.PrinterMode- The printer mode * Allowed Values:Auto,SimplexorDuplex.Copies- The number of copies.ColorMode- Specify whether printing is in color or in monochrome mode.- Allowed Values:
Auto,ColororMonochrome.
- Allowed Values:
Orientation- Specify whether documents are printed in portrait or landscape mode- Allowed Values:
Auto,PortraitorLandscape.
- Allowed Values:
Priority- The delivery priority- Allowed Values:
Now,High,Low, andNormal.
- Allowed Values:
Status- The status of the ticket- Allowed Values:
Failed,Processing,Delivered.
- Allowed Values:
StartDate- The date when the ticket was created (see Date Format).EndDate- The date when the ticket finished distributing (see Date Format).QueueName- The name of the queue this ticket is part of.JobId- The id of the job this ticket was generated from.Tags- List ofTicketTagEntityIF asked for. Otherwise it'snullName- Name of the tag.Value- Value of the tag.
Logs- List ofLogMessageEntityIF asked for. Otherwise it'snull
Examples
Javascript
eosAPI.Distribution.GetPrintTicket({
id: 234
})
.then(function(response) {
var emailTicket = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
PrintTicketEntity emailTicket = distribution.GetPrintTicket(token, 234);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
PrintTicketEntity emailTicket = distribution.getPrintTicket(token, 234, null);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/tickets/print/234"
__
ResendPrintTicket
Resends failed/suspended print ticket with new printer name. Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/tickets/print/{id}/resend
Parameters
id- The id of the print ticket. Requiredrequest- Information about how to resend the ticket, of typeResendPrintTicketEntity. RequiredPrinterName- The new printer name if specified
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Distribution.ResendPrintTicket({
id: 234,
request: {
"PrinterName": "SV_PRNTR2"
}
})
.then(function(response) {
var httpCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
distribution.ResendPrintTicket(token, 234, new ResendPrintTicketEntity()
{
PrinterName = "SV_PRNTR2"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
ResendPrintTicketEntity printTicket = new ResendPrintTicketEntity();
printTicket.setPrinterName("SV_PRNTR2");
distribution.resendPrintTicket(token, 234, printTicket);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -H "Content-Type: application/json" -X POST -d "{'PrinterName': 'SV_PRNTR2'}" "http://eos4.ecrion.com/api/v2/tickets/print/234/resend"
__
GetTicketLogs
Returns the list of logs in the email or print ticket. Ecrion Develop Ecrion Converse Ecrion Engage
GET /api/v2/tickets/{id}/logs
Parameters
id- The ticket it. Requiredstart- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns LogMessageEntity[]
Severity- The severity of the message.- Allowed Values:
DiagnosticTrace,Error,Information,None,Warning.
- Allowed Values:
Content- The log message content.CreatedDate- The date when the message was logged (see Date Format).
Examples
Javascript
eosAPI.Distribution.GetTicketLogs({
id: 1
})
.then(function(response) {
var logs = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<LogMessageEntity> ticketLogs = distribution.GetTicketLogs(token, 1);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
DistributionService distribution = new DistributionService("https://eos4.ecrion.com/");
List<LogMessageEntity> ticketLogs = distribution.getTicketLogs(token, 1, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "https://eos4.ecrion.com/api/v2/tickets/234/logs"
Security
EOS has the ability to give multiple users access to the system. Permissions are methods to protect users from each other. The system uses groups as a way to organize users, primarily as a security measure.
Methods:
Security.GetUsersSecurity.CreateUserSecurity.GetUserSecurity.UpdateUserSecurity.DeleteUserSecurity.GetGroupsSecurity.CreateGroupSecurity.GetGroupSecurity.UpdateGroupSecurity.DeleteGroupSecurity.GetPortalUsersSecurity.CreatePortalUserSecurity.GetPortalUserSecurity.DeletePortalUser
Entities:
UserRequestEntityUserEntityGroupRequestEntityGroupEntityPermissionsEntityPortalUserRequestEntityPortalUserEntity
GetUsers
Returns the list of users from the current environment. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
GET api/v2/users
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
UserEntity[]- A list ofUserEntity
Examples
Javascript
// List all users in the current environment
eosAPI.Security.GetUsers()
.then(function(response) {
var users = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<UserEntity> users = security.GetUsers(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<UserEntity> users = security.getUsers(token, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users"
__
CreateUser
Creates a new user in the current environment. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
POST api/v2/users
Note: The authenticated user must have permission to manage the environment.
Parameters
userof typeUserRequestEntity. RequiredUserName- The username of the user. This needs to be unique and it is used to log in. If not specified, the email will be used as username.Email- The user's email address. RequiredPassword- The user's password. If this is null the server will auto generate a password.FirstName- The user's first name.LastName- The user's last name.Job- Describes user's job title or position.Phone- The user's phone number.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
GroupsIds- A list of ids of the groups for the user to join. If the current authenticated user can't manage the environment this field is ignored.Permissions- Permissions explicitly granted to the user (see Permissions). If the current authenticated user can't manage the environment this field is ignored.Disabled- Iftrue, the user can't log in the environment.- Allowed values:
true,false. - Default:
false.
- Allowed values:
Returns UserEntity
Id- The id of the user account. This id is unique.UserName- The username of the user. This is unique and it is used to log in.FullName- The user's full name. This is determined based on first and last name.FirstName- The user's first name.LastName- The user's last name.Email- The user's email address.Job- Describes user's job title or position.Phone- The user's phone number.LastLogInDate- The date when the user last logged in (see Date Format) or0001-01-01T00:00:00+00:00if the user never logged in.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
Permissions- Permissions explicitly granted to the user (see Permissions).Disabled- If true, the user can't log in the environment.Groups- The groups the user is member of. List ofUserGroupEntityId- The id of the group. This id is unique.Name- Name of the group.
Examples
Javascript
eosAPI.Security.CreateUser({
user: {
Email: "test@test.com"
}
})
.then(function(response) {
var user = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserEntity newUser = security.CreateUser(token, new UserRequestEntity()
{
Email = "test@test.com"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserRequestEntity userRequest = new UserRequestEntity();
userRequest.setEmail("test@test.com");
UserEntity newUser = security.createUser(token, userRequest);
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'Email': 'user@company.com'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users"
__
GetUser
Returns a users by its id from the current environment. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
GET api/v2/users/{id}
Parameters
id- The id of the user account. Required
Returns
Examples
Javascript
// Get the user with id=123 from the current environment
eosAPI.Security.GetUser({
id: 123
})
.then(function(response) {
var user = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserEntity user = security.GetUser(token, 123);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserEntity user = security.getUser(token, 123);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/123"
__
UpdateUser
Updates a user with the provided information. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
PUT api/v2/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Requireduser- The user information to be updated, of typeUserRequestEntity. RequiredUserName- The username of the user. This needs to be unique and it is used to log in. If not specified, the email will be used as username.Email- The user's email address.Password- The user's password. If this is null the server will auto generate a password.FirstName- The user's first name.LastName- The user's last name.Job- Describes user's job title or position.Phone- The user's phone number.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
GroupsIds- A list of ids of the groups for the user to join. If the current authenticated user can't manage the environment this field is ignored.Permissions- Permissions explicitly granted to the user (see Permissions). If the current authenticated user can't manage the environment this field is ignored.Disabled- Iftrue, the user can't log in the environment.- Allowed values:
true,false. - Default:
false.
- Allowed values:
Returns
UserEntity- The updated user
Examples
Javascript
// Change user's password
eosAPI.Security.UpdateUser({
id: 75,
user: {
Password: "n3wp@$$w0rd"
}
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserEntity user = security.UpdateUser(token, 75, new UserRequestEntity()
{
Disabled = true
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
UserRequestEntity userRequest = new UserRequestEntity();
userRequest.setDisabled(true);
UserEntity user = security.updateUser(token, 75, userRequest);
HTTP
curl -H "Content-Type: application/json" -X PUT -d "{LastName:'My new name'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/2"
__
DeleteUser
Deletes a user by id. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
DELETE api/v2/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the user with id=75
eosAPI.Security.DeleteUser({
id: 75
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.DeleteUser(token, 75);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.deleteUser(token, 75);
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/1"
__
GetGroups
Returns the list of groups in the current environment. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
GET api/v2/groups
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
fields- A comma separated list of additional fields to be included.- Allowed values:
users - Default:
null
- Allowed values:
Returns
GroupEntity[]- A list ofGroupEntity
Examples
Javascript
// List all groups in the current environment
eosAPI.Security.GetGroups()
.then(function(response) {
var groups = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<GroupEntity> groups = security.GetGroups(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<GroupEntity> groups = security.getGroups(token, 0, 10, null);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups"
__
CreateGroup
Creates a new group in the current environment. If provided, the permissions and users will be attached to the group. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
POST api/v2/groups
Note: The authenticated user must have permission to manage the environment.
Parameters
groupof typeGroupRequestEntity. RequiredName- Name of the group. RequiredPermissions- Permissions granted to the group. Users part of this group with no explicit permissions defined will inherit these permissions. If the current authenticated user can't manage the environment this field is ignored. (see Permissions)UsersIds- The users ids which are part of the group. This field is ignored if it'snull.
Returns GroupEntity
Id- The id of the group. This id is unique.Name- The Name of the groupPermissions- Describes the group's permissions (see Permissions).UsersIds- The users ids which are part of the groupUsers- List ofUserEntitywhich are part of this group IF asked for. Otherwise it'snull.
Examples
Javascript
eosAPI.Security.CreateGroup({
group: {
Name: "Sales",
UserIds: [1, 2, 3, 4, 5]
}
})
.then(function(response) {
var group = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupEntity group = security.CreateGroup(token, new GroupRequestEntity()
{
Name = "Sales"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupRequestEntity groupRequest = new GroupRequestEntity();
groupRequest.setName("Sales");
GroupEntity group = security.createGroup(token, groupRequest);
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'Name':'Sales', 'Users':[1, 2, 3, 4, 5]}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80" "http://eos4.ecrion.com/api/v2/groups"
__
GetGroup
Returns a group by its id from the current environment. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
GET api/v2/groups/{id}
Parameters
id- The id of the group. Requiredfields- A comma separated list of additional fields to be included.- Allowed values:
users - Default:
null
- Allowed values:
Returns
Examples
Javascript
// Get the group with id=23 from the current environment
eosAPI.Security.GetGroup({
id: 23,
fields: "users"
})
.then(function(response) {
var group = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupEntity group = security.GetGroup(token, 23, "users");
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupEntity group = security.getGroup(token, 23, "users");
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/23"
__
UpdateGroup
Updates a group with the provided information. Can be used to rename the group, change group permissions and add/remove users. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
PUT api/v2/groups/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Requiredgroup- The group information to be updated, of typeGroupRequestEntity. RequiredName- Name of the group.Permissions- Permissions granted to the group. Users part of this group with no explicit permissions defined will inherit these permissions. If the current authenticated user can't manage the environment this field is ignored. (see Permissions)UsersIds- The users ids which are part of the group. This field is ignored if it'snull.
Returns
GroupEntity- The updated group
Examples
Javascript
// Change user's password
eosAPI.Security.UpdateGroup({
id: 75,
group: {
name: "US Sales"
}
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupEntity group = security.UpdateGroup(token, 75, new GroupRequestEntity()
{
Name = "US Sales"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
GroupRequestEntity groupRequest = new GroupRequestEntity();
groupRequest.setName("US Sales");
GroupEntity group = security.updateGroup(token, 75, groupRequest);
HTTP
curl -H "Content-Type: application/json" -X PUT -d "{name: 'US Sales'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/75"
__
DeleteGroup
Deletes a group by id. Ecrion Develop Ecrion Converse Ecrion Engage (not available in core-only installations)
DELETE api/v2/groups/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The group's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the group with id=2
eosAPI.Security.DeleteGroup({
id: 2
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.DeleteGroup(token, 2);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.deleteGroup(token, 2);
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/2"
__
Permissions
Permissions can be granted to users and groups on both environment and workspace level.
PermissionsEntity- Permissions explicitly granted to the user or the group. If the user is also part of a group, both group permissions and explicit user permission are considered when authorizing.EnvironmentPermissions- Describes the user's or group's permissions in the environment, of typeEnvironmentPermissionsEntity.ManagePortal- Allowed values
true- The user or group can manage the Portal Website. This includes changing how the Portal looks and managing Portal users.false- The permission flag is not set
- Allowed values
ManageEnvironment- Allowed values
true- The user or group can manage the current environment. This will override all other permissions totrue, including workspace permissions.false- The permission flag is not set
- Allowed values
WorkspacePermissions[]- Describes the user's or group's permissions in the workspaces, of typeWorkspacePermissionsEntity[]Workspace- The current workspace name for which the permissions are enumeratedAccessWorkspace- Allowed values
true- The user can access the current workspace.false- The permission flag is not set
- Allowed values
ManageWorkspace- Allowed values
true- The user can manage the current workspace. This also implies access to the workspace.false- The permission flag is not set.
- Allowed values
__
GetPortalUsers
Returns the list of portal users from the current environment. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.8 or later
GET api/v2/portal/users
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
PortalUserEntity[]- A list ofPortalUserEntity
Examples
Javascript
// List all portal users in the current environment
eosAPI.Security.GetPortalUsers()
.then(function(response) {
var portalUsers = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<PortalUserEntity> users = security.GetPortalUsers(token);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
List<PortalUserEntity> users = security.getPortalUsers(token, 0, 10);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users"
__
CreatePortalUser
Creates a new portal user in the current environment. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.8 or later
POST api/v2/portal/users
Note: The authenticated user must have permission to manage the environment.
Parameters
userof typePortalUserRequestEntity. RequiredUserName- The username of the portal user. This needs to be unique and it is used to log in. RequiredPassword- The user's password. RequiredContactSynchronizationId- Unique identifier of this contact in an external system used for synchronization purposes. For example, if EOS is synchronized with Salesforce, this field would be the contact or lead id.ContactProperties- Additional properties to set on the contact that is automatically created and associated with the portal user.
Returns PortalUserEntity
Id- The id of the portal user account. This id is unique.UserName- The username of the portal user. This is used to log in.Email- The email of the portal user. This is computed based on the associated contact.DisplayName- The display name of the portal user. This is computed based on the associated contact.Contact- The contact associated with the portal user, of typeContactEntityId- The id of the contact. This id is unique.SynchronizationId- Unique identifier of this contact in an external system used for synchronization purposes. For example, if EOS is synchronized with Salesforce, this field would be the contact or lead id.Properties- The properties of the contact.
Examples
Javascript
eosAPI.Security.CreatePortalUser({
user: {
UserName: "portal.username",
Password: "p0rt@l.p@$$w0rd"
}
})
.then(function(response) {
var portalUser = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
PortalUserEntity newUser = security.CreatePortalUser(token, new PortalUserRequestEntity()
{
UserName = "portal.username",
Password = "p0rt@l.p@$$w0rd"
});
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
PortalUserRequestEntity portalUser = new PortalUserRequestEntity();
portalUser.setUserName("portal.username");
portalUser.setPassword("p0rt@l.p@$$w0rd");
PortalUserEntity newUser = security.createPortalUser(token, portalUser);
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'UserName': 'portal.username', 'Password': 'p0rt@l.p@ssw0rd'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users"
__
GetPortalUser
Returns a portal users by its id from the current environment. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.8 or later
GET api/v2/portal/users/{id}
Parameters
id- The id of the portal user account. Required
Returns
Examples
Javascript
// Get the portal user with id=123 from the current environment
eosAPI.Security.GetPortalUser({
id: 123
})
.then(function(response) {
var portalUser = response.obj;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
PortalUserEntity user = security.GetPortalUser(token, 123);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
PortalUserEntity user = security.getPortalUser(token, 123);
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users/123"
__
DeletePortalUser
Deletes a portal user by id. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.8 or later
DELETE api/v2/portal/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The portal user's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the portal user with id=12
eosAPI.Security.DeletePortalUser({
id: 12
})
.then(function(response) {
var statusCode = response.status;
})
.NET
string token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.DeletePortalUser(token, 12);
Java
String token = "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80";
SecurityService security = new SecurityService("https://eos4.ecrion.com/");
security.deletePortalUser(token, 12);
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users/12"
Portal API Reference
Available starting with version 9.1.3
This Portal API reference is organized by services and resource type. Each service groups similar resources together and has one or more methods that changes these resources. All HTTP routes are relative to Portal Website base URI, e.g. api/v2/token refers to https://eos4portal.ecrion.com/api/v2/token.
Authorization
GetToken
Generates a session token. Ecrion Develop Ecrion Converse Ecrion Engage
GET api/v2/token
To generate a session token, call this method and supply the user credentials (case sensitive) and environment name.
The response contains a session token that needs to be passed via Authorization header using Basic <sessionTokenInbase64> format in order to authorize a generic endpoint.
If you're using our Javascript, .NET or Java client API this process is simplified.
Parameters
Authorization- User credentials (<portalusername>:<password>). Requiredenvironment- Environment name. Required
Returns TokenEntity
AccessToken- Session token ofstringtype
The session token has temporary purposes. Don't forget to delete it after you finish using the API by using DeleteToken endpoint.
Examples
Javascript
If you're running Javascript inside a browser, you should avoid typing the credentials in plain text because the .js sources are available to the client.
Instead, it is preferred to store the credentials on your server and do the authentication in a secure backend, passing only a sessionToken to the client, using authorizeWithToken utility.
eosAPI.ready(function(){
var sessionToken = obtainTokenFromMyBackend();
eosAPI.authorizeWithToken(sessionToken);
//all subsequent eosAPI calls will use the sessionToken
})
However, if you're using Javascript in a server-side environment or the credentials are provided by the client user, the authorize utility method is available.
Internally, it calls Authorization.GetToken and uses the returned session token for all subsequent calls through the eosAPI global instance:
eosAPI.authorize("portaluser", "portalpassword", "testEnvironment")
.catch(function(response){
// Handle any authentication errors here
alert("Authentication failure: " + err.statusText);
});
eosAPI.authorized(function(){
//all eosAPI calls will use the sessionToken obtained based on the credentials
});
The authorize method supports passing either three arguments, i.e. eosAPI.authorize(username, password, environment), or only one, following the format: eosAPI.authorize("environment#username:password").
.NET
string credentials = "portaluser:portalpassword";
AuthorizationService authSvc = new AuthorizationService("https://eos4portal.ecrion.com/");
string sessionToken = authSvc.GetToken(credentials, "testEnvironment").AccessToken;
HTTP
curl -u "portaluser:portalpassword" "https://eos4portal.ecrion.com/api/v2/token?environment=testEnvironment"
__
DeleteToken
Delete a specific session token. Ecrion Develop Ecrion Converse Ecrion Engage version 9.1.4 or later
DELETE api/v2/token
Parameters
accessToken- TheTokenEntity.AccessTokenof typestringto delete on the server.
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Authorization.DeleteToken({
accessToken: "PORTAL:c87ca566-2587-4480-8a7a-27531f04af80"
})
.then(function(response) {
var status = response.status;
});
.NET
AuthorizationService authSvc = new AuthorizationService("https://eos4portal.ecrion.com/");
string sessionToken = authSvc.GetToken(credentials).AccessToken;
authSvc.DeleteToken(sessionToken);
HTTP
curl -X DELETE "https://eos4portal.ecrion.com/api/v2/token?accessToken=PORTAL:c87ca566-2587-4480-8a7a-27531f04af80"
__
GetTokenSSO
Generates a session token based on a SAML assertion or WS Federation Message Ecrion Develop Ecrion Converse Ecrion Engage
POST /api/v2/token/sso
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Message.environment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
__
SAML Assertion Consumer
Consumes a SAML Assertion Response. Also known as Assertion Consumer Service (ACS) Ecrion Develop Ecrion Converse Ecrion Engage
POST /Security/ConsumeSAMLToken
When configuring IdPs, use an absolute path, pointing to the right domain and port of the EOS Portal Website. This endpoint does not have a SDK method associated.
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Messageenvironment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
- Redirects the authenticated user to the Portal homepage.
Examples
Salesforce as IdP
This fills the ACS URL field in the Salesforce configuration:
http://eos4portal.ecrion.com/Security/ConsumeSAMLToken
Communications
RunCommunication
Runs a communication job. Ecrion Develop Ecrion Converse Ecrion Engage
POST api/v2/communications
Parameters
communicationName- Communication name; must be shared with the user. Requiredfile- File bytes. Required
Returns
binary data- The communication job output
The endpoint will wait for the job to finish and return any rendered files. If the job output consists of more than one file, a ZIP archive will be returned.
Examples
Javascript
eosAPI.Communications.RunCommunication({
communicationName: "Telephone Invoice",
file: new File(['<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root></root>'], "JobInput.xml", {type: "text/xml"})
})
.then(function(response) {
var content = response.data;
});
.NET
CommunicationsService commSvc = new CommunicationsService("https://eos4portal.ecrion.com/");
Stream output = commSvc.RunCommunication(sessionToken, "Request Quote");
HTTP
curl -X POST -H "Content-Type: multipart/form-data" -F "file=@C:\JobInput.xml" -u "PORTAL:964916ca-7c20-4203-b976-ce4adda50ddd" "https://eos4portal.ecrion.com/api/v2/communications?communicationName=Request%20Quote"
Single Sign-On (SSO)
This section describes the SAML instance where Ecrion is the service provider (SP) and uses 3rd party identity providers (IdP).
Set up
This set up applies to both Enterprise and Portal Websites.
To set up Ecrion service provider SAML with 3rd party IdPs, step through the following process:
- Access the Enterprise Website. Login as a enterprise user and go to the Admin Settings and access the Single Sign On tile.
- Select Setup Enterprise SSO or Setup Portal SSO based on which website you want to enable SSO for.
- Select SAML 2.0 as SSO Type.
- Enter the IdP Login URL to setup IdP (identity provider). Use HTTPS. The Login Url is used when a user attempts to login. Ecrion triggers a redirect to the URL and expects a POST request with the SAML Assertion Response on the SAML Assertion Consumer endpoint,
/Security/ConsumeSAMLToken. In response, the Ecrion service provider produces an Ecrion access token for the assertion subject and redirects the now authenticated user to Ecrion homepage. - Provide the X.509 public key certificate in PEM format from the IdP. This establishes a trust relationship between the SP and the IdP. During runtime EOS uses the certificate to validate that the digital signature originated from the IdP.
- Optionally, you can provide a Logout URL.
Portal
Ecrion uses the information asserted in the SAML Assertion to identify the portal user. Additionally, Ecrion can keep certain parameters up to date, for e.g. updating the last name of the portal user in Ecrion service provider by reading the SAML Assertion last name attribute received from the IdP.
To enable this behavior, you can map parameters to be linked with certain Ecrion portal user fields when you setup SSO.
Creating Ecrion Portal Users on the fly
If the SAML assertion subject is not associated with any Ecrion portal user then the Ecrion service provider will create a portal user.
Using SSO API
In some scenarios you might not want to use the URL redirection behavior provided by the SAML Assertion Consumer endpoint.
For e.g., if you want to use SSO in a backend to backend system to obtain a session token in order to produce documents for a certain user.
In this case, use Authorization.GetTokenSSO endpoint and pass the SAML Assertion to get an Ecrion enterprise/portal session token which can be used throughout the Enterprise/Portal API.