.NET Core C# / easybill REST API / Fetch projects list
Back to Collection Items
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Chilkat.Http http = new Chilkat.Http();
bool success;
Chilkat.JsonObject queryParams = new Chilkat.JsonObject();
queryParams.UpdateString("limit","<integer>");
queryParams.UpdateString("page","<integer>");
queryParams.UpdateString("customer_id","<string>");
queryParams.UpdateString("status","DONE");
http.SetRequestHeader("Authorization","{{apiKey}}");
http.SetRequestHeader("Accept","application/json");
Chilkat.HttpResponse resp = http.QuickRequestParams("GET","https://api.easybill.de/rest/v1/projects",queryParams);
if (http.LastMethodSuccess == false) {
Debug.WriteLine(http.LastErrorText);
return;
}
Chilkat.StringBuilder sbResponseBody = new Chilkat.StringBuilder();
resp.GetBodySb(sbResponseBody);
Chilkat.JsonObject jResp = new Chilkat.JsonObject();
jResp.LoadSb(sbResponseBody);
jResp.EmitCompact = false;
Debug.WriteLine("Response Body:");
Debug.WriteLine(jResp.Emit());
int respStatusCode = resp.StatusCode;
Debug.WriteLine("Response Status Code = " + Convert.ToString(respStatusCode));
if (respStatusCode >= 400) {
Debug.WriteLine("Response Header:");
Debug.WriteLine(resp.Header);
Debug.WriteLine("Failed.");
return;
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "page": "<integer>",
// "pages": "<integer>",
// "limit": "<integer>",
// "total": "<integer>",
// "items": [
// {
// "name": "<string>",
// "budget_amount": 0,
// "budget_time": 0,
// "customer_id": null,
// "hourly_rate": "<float>",
// "id": "<long>",
// "login_id": "<long>",
// "note": null,
// "status": "OPEN",
// "due_at": null,
// "budget_notify_frequency": "ALWAYS",
// "consumed_time": "<integer>",
// "consumed_amount": "<integer>"
// },
// {
// "name": "<string>",
// "budget_amount": 0,
// "budget_time": 0,
// "customer_id": null,
// "hourly_rate": "<float>",
// "id": "<long>",
// "login_id": "<long>",
// "note": null,
// "status": "OPEN",
// "due_at": null,
// "budget_notify_frequency": "ALWAYS",
// "consumed_time": "<integer>",
// "consumed_amount": "<integer>"
// }
// ]
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
string name;
int budget_amount;
int budget_time;
string customer_id;
string hourly_rate;
string id;
string login_id;
string note;
string status;
string due_at;
string budget_notify_frequency;
string consumed_time;
string consumed_amount;
string page = jResp.StringOf("page");
string pages = jResp.StringOf("pages");
string limit = jResp.StringOf("limit");
string total = jResp.StringOf("total");
int i = 0;
int count_i = jResp.SizeOfArray("items");
while (i < count_i) {
jResp.I = i;
name = jResp.StringOf("items[i].name");
budget_amount = jResp.IntOf("items[i].budget_amount");
budget_time = jResp.IntOf("items[i].budget_time");
customer_id = jResp.StringOf("items[i].customer_id");
hourly_rate = jResp.StringOf("items[i].hourly_rate");
id = jResp.StringOf("items[i].id");
login_id = jResp.StringOf("items[i].login_id");
note = jResp.StringOf("items[i].note");
status = jResp.StringOf("items[i].status");
due_at = jResp.StringOf("items[i].due_at");
budget_notify_frequency = jResp.StringOf("items[i].budget_notify_frequency");
consumed_time = jResp.StringOf("items[i].consumed_time");
consumed_amount = jResp.StringOf("items[i].consumed_amount");
i = i + 1;
}
Curl Command
curl -G -d "limit=%3Cinteger%3E"
-d "page=%3Cinteger%3E"
-d "customer_id=%3Cstring%3E"
-d "status=DONE"
-H "Authorization: {{apiKey}}"
-H "Accept: application/json"
https://api.easybill.de/rest/v1/projects
Postman Collection Item JSON
{
"name": "Fetch projects list",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/projects?limit=<integer>&page=<integer>&customer_id=<string>&status=DONE",
"host": [
"{{baseUrl}}"
],
"path": [
"projects"
],
"query": [
{
"key": "limit",
"value": "<integer>",
"description": "Limited the result. Default is 100. Maximum can be 1000."
},
{
"key": "page",
"value": "<integer>",
"description": "Set current Page. Default is 1."
},
{
"key": "customer_id",
"value": "<string>",
"description": "Filter projects by customer_id. You can add multiple ids separate by comma like id,id,id."
},
{
"key": "status",
"value": "DONE",
"description": "Filter projects by status."
}
]
}
},
"response": [
{
"name": "Successful operation",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "Authorization",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/projects?limit=<integer>&page=<integer>&customer_id=<string>&status=DONE",
"host": [
"{{baseUrl}}"
],
"path": [
"projects"
],
"query": [
{
"key": "limit",
"value": "<integer>",
"description": "Limited the result. Default is 100. Maximum can be 1000."
},
{
"key": "page",
"value": "<integer>",
"description": "Set current Page. Default is 1."
},
{
"key": "customer_id",
"value": "<string>",
"description": "Filter projects by customer_id. You can add multiple ids separate by comma like id,id,id."
},
{
"key": "status",
"value": "DONE",
"description": "Filter projects by status."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"page\": \"<integer>\",\n \"pages\": \"<integer>\",\n \"limit\": \"<integer>\",\n \"total\": \"<integer>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"budget_amount\": 0,\n \"budget_time\": 0,\n \"customer_id\": null,\n \"hourly_rate\": \"<float>\",\n \"id\": \"<long>\",\n \"login_id\": \"<long>\",\n \"note\": null,\n \"status\": \"OPEN\",\n \"due_at\": null,\n \"budget_notify_frequency\": \"ALWAYS\",\n \"consumed_time\": \"<integer>\",\n \"consumed_amount\": \"<integer>\"\n },\n {\n \"name\": \"<string>\",\n \"budget_amount\": 0,\n \"budget_time\": 0,\n \"customer_id\": null,\n \"hourly_rate\": \"<float>\",\n \"id\": \"<long>\",\n \"login_id\": \"<long>\",\n \"note\": null,\n \"status\": \"OPEN\",\n \"due_at\": null,\n \"budget_notify_frequency\": \"ALWAYS\",\n \"consumed_time\": \"<integer>\",\n \"consumed_amount\": \"<integer>\"\n }\n ]\n}"
},
{
"name": "Too Many Requests",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: apikey",
"key": "Authorization",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/projects?limit=<integer>&page=<integer>&customer_id=<string>&status=DONE",
"host": [
"{{baseUrl}}"
],
"path": [
"projects"
],
"query": [
{
"key": "limit",
"value": "<integer>",
"description": "Limited the result. Default is 100. Maximum can be 1000."
},
{
"key": "page",
"value": "<integer>",
"description": "Set current Page. Default is 1."
},
{
"key": "customer_id",
"value": "<string>",
"description": "Filter projects by customer_id. You can add multiple ids separate by comma like id,id,id."
},
{
"key": "status",
"value": "DONE",
"description": "Filter projects by status."
}
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "text",
"header": [
],
"cookie": [
],
"body": ""
}
]
}