Sitemap

Service Models

Discover how Pleasant Password Server will enhance KeePass for business

Have Questions?  Contact Us

Contents

 

Credential (Entry)

API Version 4 (Server Versions 7+)

Endpoints: https://[domain]:[port]/api/v4/rest/credential/{id}

Fields .NET Type Notes
Id * GUID Send an empty Guid 00000000-0000-0000-0000-00000000000 when creating a new Credential.
Name * String  
Password * String Used for changing passwords. Use /api/v4/rest/credential/{id}/password to retrieve a password.
Username ** String  
Url ** String  
Notes ** String  
GroupId * GUID The GUID of the folder this Credential belongs to
Created * DateTimeOffset  
Modified * DateTimeOffset  
Expires ** DateTimeOffset  
CustomUserFields ** Dictionary<string,string>  
CustomApplicationFields ** Dictionary<string,string>

These are fields used by the KeePass Client. It is best to pass these back with the values they come with.

Possible Keys:

IconId
CustomIconId
ForegroundColor
BackgroundColor
OverrideUrl
AutoTypeEnabled
AutoTypeDefaultSequence
AutoType: + target window name

Attachments ** List<Attachment> See Attachment
UsageComment ** string If a comment is required to update the Credential, include it here.
Tags ** List<STag> See Tag
HasModifyEntriesAccess bool Read Only
HasViewEntryContentsAccess bool Read Only
CommentPrompts SCommentPrompt Read Only, See Comment Prompt

 

 * required field for creating and updating that model

** omitting this field will give it a null or default value

 

Example Credential (JSON)

 

{
    Id: "2b45438a-2f4a-4d96-9ba9-058ea54252fb"
    Name: "Credential 0"
    Username: "Credential 0"
    Password: null
    Url: ""
    Notes: ""
    GroupId: "cfb2c08e-e990-43b7-99d1-c8e23e0ae00e"
    Created: "2013-11-18T10:14:27.8218898-07:00"
    Modified: "2015-06-01T13:26:12.336084-06:00"
    Expires: null
    CustomUserFields: {
        CustomField: "CustomFieldValue"
    }
    CustomApplicationFields: {
        BackgroundColor: "#00FF40"
        CustomIconId: "c2284483-e595-4b51-aaa8-5a04eb03e611"
        ForegroundColor: "#408080"
        OverrideUrl: "cmd://{INTERNETEXPLORER} "{URL}""
        AutoTypeDefaultSequence: "{USERNAME}{TAB}{PASSWORD}{ENTER}"
    }
    Attachments: [1]
    0:  {
        CredentialObjectId: "2b45438a-2f4a-4d96-9ba9-058ea54252fb"
        FileName: "sample.txt"
        FileData: "c2FtcGxlIGZpbGU="
    }
    UsageComment: null
    Tags: [2]
    0:  {
        Name: "Tag1"
    }
    1:  {
        Name: "Tag2"
    }
    HasModifyEntriesAccess: true
    HasViewEntryContentsAccess: true
    CommentPrompts: {
        AskForCommentOnViewPassword: false
        AskForCommentOnViewOffline: false
        AskForCommentOnModifyEntries: false
        AskForCommentOnMoveEntries: false
        AskForCommentOnMoveFolders: false
        AskForCommentOnModifyFolders: false
    }
}


API Version 3 (Server Version 6)

Endpoints: https://[domain]:[port]/api/v3/rest/credential/{id}

Fields .NET Type Notes
Id GUID  This will be an Empty Guid when creating a new Credential
Name String  
Password String Used for changing passwords. Use /api/v3/rest/credential/{id}/password to retrieve a password.
Username String  
Url String  
Notes String  
GroupId GUID The GUID of the folder this Credential belongs to
Created DateTimeOffset  
Modified DateTimeOffset  
Expires DateTimeOffset  
CustomUserFields Dictionary<string,byte[]>  
CustomApplicationFields Dictionary<string,byte[]>

These are fields used by the KeePass Client. It is best to pass these back with the values they come with.

Possible Keys:

IconId
CustomIconId
ForegroundColor
BackgroundColor
OverrideUrl
AutoTypeEnabled
AutoTypeDefaultSequence

AutoType: + target window name

Binary:<File Name>

Tag <Number***>

HasModifyEntriesAccess bool Not required for Updates or Inserts
HasViewEntryContentsAccess bool Not required for Updates or Inserts

 

* required field for creating and updating that model

** omitting this field will give it a null or default value

*** Tags are numbered sequentially starting from 1

 

 


 

CredentialGroup (Folder)

API Version 4 (Server Version 7+)

Endpoints: https://[domain]:[port]/api/v4/rest/credentialgroup/{id}

Fields .NET Type Notes
Id * GUID This will be an Empty Guid when creating a new CredentialGroup
Name * String  
ParentId * GUID The GUID of the folder this CredentialGroup belongs to
Notes ** String  
Created ** DateTimeOffset  
Modified ** DateTimeOffset  
Expires ** DateTimeOffset  
CustomUserFields ** Dictionary<string,string>  
CustomApplicationFields ** Dictionary<string,string>

These are fields used by the KeePass Client. It is best to pass these back with the values they come with.

Possible Keys:

IconId
CustomIconId
ForegroundColor
BackgroundColor
OverrideUrl
AutoTypeEnabled
AutoTypeDefaultSequence
AutoType: + target window name

Attachments ** List<Attachment> See Attachment
Children List<CredentialGroup> Read Only
Credentials List<Credential> Read Only, See Credential
Tags ** List<Tag> See Tag
UsageComment ** string If a comment is required to update the CredentialGroup, include it here.
HasModifyEntriesAccess bool Read Only
HasViewEntryContentsAccess bool Read Only
CommentPrompts SCommentPrompt Read Only, See Comment Prompt

 

* required field for creating and updating that model

** omitting this field will give it a null or default value

Example CredentialGroup (JSON)

 

{
    Id: "d3fd71bc-cadf-46e0-8a00-2b2cd49f0077"
    Name: "My Folder"
    ParentId: "c311b49a-255d-48b1-b9b5-a4ac00e23028"
    Notes: null
    Created: "2015-06-04T17:52:28.2500607-06:00"
    Modified: "2015-06-04T17:52:28.2500607-06:00"
    Expires: null
    CustomUserFields: {}
    CustomApplicationFields: {}
    Attachments: [0]
    Children: [0]
    Credentials: [0]
    Tags: [0]
    UsageComment: null
    HasModifyEntriesAccess: true
    HasViewEntryContentsAccess: true
    CommentPrompts: {
        AskForCommentOnViewPassword: false
        AskForCommentOnViewOffline: false
        AskForCommentOnModifyEntries: false
        AskForCommentOnMoveEntries: false
        AskForCommentOnMoveFolders: false
        AskForCommentOnModifyFolders: false
    }
}

 

API Version 3 (Server Version 6)

Endpoints: https://[domain]:[port]/api/v3/rest/credentialgroup/{id}

Fields .NET Type Notes
Id * GUID This will be an Empty Guid when creating a new CredentialGroup
Name * String  
ParentId * GUID The GUID of the folder this CredentialGroup belongs to
Notes ** String  
Created ** DateTimeOffset  
Modified ** DateTimeOffset  
Expires ** DateTimeOffset  
CustomUserFields ** Dictionary<string,string>  
CustomApplicationFields ** Dictionary<string,string>

These are fields used by the KeePass Client. It is best to pass these back with the values they come with.

Possible Keys:

IconId
CustomIconId
ForegroundColor
BackgroundColor
OverrideUrl
AutoTypeEnabled
AutoTypeDefaultSequence
AutoType: + target window name

Children List<CredentialGroup> Read Only
Credentials List<Credential> Read Only, See Credential
HasModifyEntriesAccess bool Read Only
HasViewEntryContentsAccess bool Read Only

 

* required field for creating and updating that model

** omitting this field will give it a null or default value

 


 

CommentPrompt

No specific endpoints, this object is used by Credential and Credential Group to mark if usage comments are required in certain situations. The field name refers to the action that is being performed while the value should be true if a usage comment is required to perform that action.

These objects are not required for Updates or Inserts of Credentials and Credential Groups.

Fields .NET Type Notes
AskForCommentOnViewPassword bool  
AskForCommentOnViewOffline bool  
AskForCommentOnModifyEntries bool  
AskForCommentOnMoveEntries bool  
AskForCommentOnMoveFolders bool  
AskForCommentOnModifyFolders bool  

 

Example CommentPrompt (JSON)

{
   
        AskForCommentOnViewPassword: true
        AskForCommentOnViewOffline: false
        AskForCommentOnModifyEntries: true
        AskForCommentOnMoveEntries: false
        AskForCommentOnMoveFolders: false
        AskForCommentOnModifyFolders: false

 

}

 

 


 

Tag

Used by Credential and Credential Group to hold Tags

Fields .NET Type Notes
Name string  

 

Example Tag (JSON)

{
    Name: "Example Tag"
}

 

 


 

Attachment

Used by Credential and Credential Group to hold file attachments.

Fields .NET Type Notes
CredentialObjectId GUID The ID of the Credential or Folder that this attachment belongs to
FileName string  
FileData byte[] Represented as a Base64 string when converted to JSON or XML

 

Example Attachment (JSON)

{
    CredentialObjectId: "f2e640fa-72aa-49e3-b7ff-5376311fe8f6"
    FileName: "sample.txt"
    FileData: "c2FtcGxl"
}

 

 


 

AboutServer

Endpoints: https://[domain]:[port]/api/{version}/rest/about

Fields .NET Type Notes
ServerVersion string The version of Pleasant Password Server currently installed
NetVersion string See MSDN
OsVersion string See MSDN
PortSettings string The port number Pleasant Password Server is currently running on
DnsInformation string  
Ping string Not currently not implemented (as of version 7.0.10.0)

 

Example AboutServer (JSON)

{
    "ServerVersion":"7.0.10.0",
    "NetVersion":"4.0.30319.34014",
    "OsVersion":"Microsoft Windows NT 6.2.9200.0",
    "PortSettings":"10001",
    "DnsInformation":   "Adapter: Realtek PCIe GBE Family Controller
                        Suffix:
                        Enabled: False
                        Dynamically Configured: True
                        IpAddresses: 192.168.0.1",
    "Ping" : null
}

 

 


 

PasswordStrength

Endpoints: https://[domain]:[port]/api/{version}/rest/passwordstrength

POST requests ONLY. Request body should contain a JSON or XML object with a single field 'Password' with the password that is to be mesaured. For example:

{
    Password : "123abc"
}

 

Fields .NET Type Notes
NumericalStrength decimal We currently use zxcvbn to measure password strength
DescriptiveStrength string

Numerical strength of < 32 = weak

Between 32-63 = medium

64 or above = strong

 

Example PasswordStrength (JSON)

{
    "NumericalStrength":5.0,
    "DescriptiveStrength":"weak"
}

 

 


 

SearchResults

Endpoints: https://[domain]:[port]/api/{version}/rest/search

POST requests ONLY. Request body should contain a JSON or XML object with a single field 'Search' with the string that is to be searched for. For example:

{
    Search : "find this"
}

 

Fields .NET Type Notes
Credentials List<CredentialSearchResult> See CredentialSearchResult
Groups List<CredentialGroupSearchResult>

See CredentialGroupSearchResult

 

CredentialSearchResult

One of the two types returned in a SearchResults object.

Fields .NET Type Notes
Id GUID  
Name string

 

Username string  
Url string  
Notes string  
GroupId GUID The GUID of the folder this Credential belongs to
Path string  

 

CredentialGroupSearchResult

The other type returned in a SearchResults object.

Fields .NET Type Notes
Id GUID  
Name string

 

FulPath string  

 

Example Search Objects (JSON)

{
    "Credentials": [
        {
            "Id":"79bc70d9-dfa8-430b-9f0c-0247b42bc6ce",
            "Name":"find me",
            "Username":"",
            "Url":""",
            "Notes":"",
            "GroupId":"34e863ca-4578-4704-96bf-a49500b3e2c5",
            "Path":"Root/find me"
        },
        {
            "Id":"abe79d97-d135-44a1-a554-31b55d586b24",
            "Name":"find me 2",
            "Username":"",
            "Url":"",
            "Notes":"",
            "GroupId":"34e863ca-4578-4704-96bf-a49500b3e2c5",
            "Path":"Root/find me 2"
        }],
    "Groups": [
        {
            "Id":"3df4bab8-9d86-4101-82bf-6fee12052d79",
            "Name":"find me folder",
            "FullPath":"Root/find me folder/"
        }]
}

 

 


 

ClientConfig

Endpoint: https://[domain]:[port]/api/{version}/rest/configuration/{client}

Fields .NET Type Notes
Name string  
ConfigXml string  *The configuration file in plain text

 

Example ClientConfig (JSON)

{
    Name: "SampleConfig.config.xml"
    ConfigXml: "<Configuration xmlns:xsd="https://www.w3.org/2001/XMLSchema"     xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
    <Meta> <TemplateGroupId /> <PreferUserConfiguration>true</PreferUserConfiguration>     <OmitItemsWithDefaultValues>true</OmitItemsWithDefaultValues>
    </Meta> <Application> <TemplateGroupId /> <LastUsedFile> <Path>Pleasant Password     Server</Path> <CredProtMode>Obf</CredProtMode> <CredSaveMode>NoSave
    </CredSaveMode> </LastUsedFile> <MostRecentlyUsed> <MaxItemCount>12</MaxItemCount>     <Items /> </MostRecentlyUsed> <WorkingDirectories /> <Start>
    <CheckForUpdate>false</CheckForUpdate> </Start> <FileOpening /> <FileClosing />     <TriggerSystem> <Triggers /> </TriggerSystem> </Application>
    <Logging /> <MainWindow> <SplitterHorizontalFrac>0.828915656</SplitterHorizontalFrac>     <CloseButtonMinimizesWindow>true</CloseButtonMinimizesWindow>
    <MinimizeToTray>true</MinimizeToTray> <ToolBar /> <EntryView />     <EntryListColumnDisplayOrder>0 1 2 3 4</EntryListColumnDisplayOrder> </MainWindow>
    <UI> <BannerStyle>WinVistaBlack</BannerStyle> <TrayIcon /> <Hiding /> <StandardFont>     <Family>Microsoft Sans Serif</Family> <Size>8.25</Size>
    <GraphicsUnit>Point</GraphicsUnit> <Style>Regular</Style>     <OverrideUIDefault>false</OverrideUIDefault> </StandardFont> <PasswordFont>     <Family>Courier
    New</Family> <Size>8.25</Size> <GraphicsUnit>Point</GraphicsUnit>     <Style>Regular</Style> <OverrideUIDefault>false</OverrideUIDefault> </PasswordFont>
    <DataEditorFont> <Family>Microsoft Sans Serif</Family> <Size>8.25</Size>     <GraphicsUnit>Point</GraphicsUnit> <Style>Regular</Style> <OverrideUIDefault>
    false</OverrideUIDefault> </DataEditorFont> <UIFlags>0</UIFlags>     <KeyCreationFlags>0</KeyCreationFlags> <KeyPromptFlags>0</KeyPromptFlags> </UI>
    <Security> <WorkspaceLocking> <LockAfterTime>900</LockAfterTime>     <LockAfterGlobalTime>240</LockAfterGlobalTime> </WorkspaceLocking> <Policy />     <MasterPassword>
    <MinimumLength>0</MinimumLength> <MinimumQuality>0</MinimumQuality> </MasterPassword>     <ClipboardClearAfterSeconds>-1</ClipboardClearAfterSeconds>
    </Security> <Native /> <PasswordGenerator> <AutoGeneratedPasswordsProfile>     <GeneratorType>CharSet</GeneratorType> <Length>20</Length> <CharSetRanges>
    ULD_______</CharSetRanges> </AutoGeneratedPasswordsProfile> <LastUsedProfile>     <Name>    (Custom)</Name> <GeneratorType>CharSet</GeneratorType> <Length>16
    </Length> <CharSetRanges>ULD_______</CharSetRanges> </LastUsedProfile> <UserProfiles     /> </PasswordGenerator> <Defaults> <OptionsTabIndex>0</OptionsTabIndex>
    <SearchParameters> <ComparisonMode>InvariantCultureIgnoreCase</ComparisonMode>     </SearchParameters> <KeySources /> </Defaults> <Integration>
    <HotKeyGlobalAutoType>393281</HotKeyGlobalAutoType>     <HotKeySelectedAutoType>0</HotKeySelectedAutoType>     HotKeyShowWindow>393291</HotKeyShowWindow>
    <HotKeyEntryMenu>0</HotKeyEntryMenu> <UrlSchemeOverrides>     <BuiltInOverridesEnabled>1</BuiltInOverridesEnabled> <CustomOverrides />     </UrlSchemeOverrides>
    <ProxyType>System</ProxyType> </Integration> </Configuration>"
}