# API The API system is intended for use with Desktop and Mobile clients. It must be accessed using one of the following domains as the Host header: * localhost.alpha.daplie.me * localhost.admin.daplie.me * alpha.localhost.daplie.me * admin.localhost.daplie.me * localhost.daplie.invalid All requests require an OAuth3 token in the request headers. ## Config ### Get All Settings * **URL** `/api/goldilocks@daplie.com/config` * **Method** `GET` * **Reponse**: The JSON representation of the current config. See the [README.md](/README.md) for the structure of the config. ### Get Group Setting * **URL** `/api/goldilocks@daplie.com/config/:group` * **Method** `GET` * **Reponse**: The sub-object of the config relevant to the group specified in the url (ie http, tls, tcp, etc.) ### Get Group Module List * **URL** `/api/goldilocks@daplie.com/config/:group/modules` * **Method** `GET` * **Reponse**: The list of modules relevant to the group specified in the url (ie http, tls, tcp, etc.) ### Get Specific Module * **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId` * **Method** `GET` * **Reponse**: The module with the specified module ID. ### Get Domain Group * **URL** `/api/goldilocks@daplie.com/config/domains/:domId` * **Method** `GET` * **Reponse**: The domains specification with the specified domains ID. ### Get Domain Group Modules * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules` * **Method** `GET` * **Reponse**: An object containing all of the relevant modules for the group of domains. ### Get Domain Group Module Category * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group` * **Method** `GET` * **Reponse**: A list of the specific category of modules for the group of domains. ### Get Specific Domain Group Module * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId` * **Method** `GET` * **Reponse**: The module with the specified module ID. ### Change Settings * **URL** `/api/goldilocks@daplie.com/config` * **URL** `/api/goldilocks@daplie.com/config/:group` * **Method** `POST` * **Body**: The changes to be applied on top of the current config. See the [README.md](/README.md) for the settings. If modules or domains are specified they are added to the current list. * **Reponse**: The current config. If the group is specified in the URL it will only be the config relevant to that group. ### Add Module * **URL** `/api/goldilocks@daplie.com/config/:group/modules` * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group` * **Method** `POST` * **Body**: The module to be added. Can also be provided an array of modules to add multiple modules in the same request. * **Reponse**: The current list of modules. ### Add Domain Group * **URL** `/api/goldilocks@daplie.com/config/domains` * **Method** `POST` * **Body**: The domains names and modules for the new domain group(s). * **Reponse**: The current list of domain groups. ### Edit Module * **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId` * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId` * **Method** `PUT` * **Body**: The new parameters for the module. * **Reponse**: The editted module. ### Edit Domain Group * **URL** `/api/goldilocks@daplie.com/config/domains/:domId` * **Method** `PUT` * **Body**: The new domains names for the domains group. The module list cannot be editted through this route. * **Reponse**: The editted domain group. ### Remove Module * **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId` * **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId` * **Method** `DELETE` * **Reponse**: The list of modules. ### Remove Domain Group * **URL** `/api/goldilocks@daplie.com/config/domains/:domId` * **Method** `DELETE` * **Reponse**: The list of domain groups. ## Socks5 Proxy ### Check Status * **URL** `/api/goldilocks@daplie.com/socks5` * **Method** `GET` * **Response**: The returned object will have up to two values inside * `running`: boolean value to indicate if the proxy is currently active * `port`: if the proxy is running this is the port it's running on ### Start Proxy * **URL** `/api/goldilocks@daplie.com/socks5` * **Method** `POST` * **Response**: Same response as for the `GET` request ### Stop Proxy * **URL** `/api/goldilocks@daplie.com/socks5` * **Method** `DELETE` * **Response**: Same response as for the `GET` request