# How to write data in Influxdb using c#

**URL:** <https://community.influxdata.com/t/how-to-write-data-in-influxdb-using-c/19028>\
**Category:** Telegraf\
**Tags:** client-libraries, c-sharp\
**Created:** [March 22, 2021, 2:17pm UTC](https://community.influxdata.com/t/how-to-write-data-in-influxdb-using-c/19028 "2021-03-22T14:17:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![S\_Y](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/s_y/32/6911_2.png) [@S\_Y](https://community.influxdata.com/u/S_Y)\
**Post date:** [March 22, 2021, 2:17pm UTC](https://community.influxdata.com/t/how-to-write-data-in-influxdb-using-c/19028/1 "2021-03-22T14:17:42Z")

</div>

0

I want to send data to Influxdb rest API v2. However, I get a 400 error and cannot send data. Because unity is being used, the corresponding influxDB.client library conflicts with assembly and cannot be used. How do I send data to influxDb 2.0 and write it?

this is my code

```auto
const string url = "http://localhost:8086/api/v2/write org=DT_navigator&bucket=test_bk&precision=s";

     async System.Threading.Tasks.Task WriteDataAsync()
    {
      var json = JsonConvert.SerializeObject("mem,host=host1 used_percent=23");
      var data = new StringContent(json, Encoding.UTF8, "application/json");

    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Add("Authorization", "Token " + token);

    var response = await client.PostAsync(url, data);

    string result = response.Content.ReadAsStringAsync().Result;
    Debug.Log(result);
}

```

and error message {“code”:“invalid”,“message”:“unable to parse ‘“mem,host=host1 used\_percent=23”’: invalid number”}

---

<div class="post-metadata">

**Author:** ![mhall119](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/mhall119/32/3898_2.png) [@mhall119](https://community.influxdata.com/u/mhall119)\
**Post date:** [March 22, 2021, 2:23pm UTC](https://community.influxdata.com/t/how-to-write-data-in-influxdb-using-c/19028/2 "2021-03-22T14:23:53Z")

</div>

Since it looks like your data is already in Influx Line Protocol, you shouldn’t need to convert it to JSON before sending it to the [write API](https://docs.influxdata.com/influxdb/v2.0/write-data/developer-tools/api/)

---

<div class="post-metadata">

**Author:** ![raginigupta6](https://avatars.discourse-cdn.com/v4/letter/r/858c86/32.png) [@raginigupta6](https://community.influxdata.com/u/raginigupta6)\
**Post date:** [July 20, 2021, 9:11pm UTC](https://community.influxdata.com/t/how-to-write-data-in-influxdb-using-c/19028/3 "2021-07-20T21:11:34Z")

</div>

Hi there,

I am trying to do a similar thing. I am trying to send data remotely from C# code to influx DB 2.0. The health status on connection gives success but the data is not getting inserted into influxDB when I check on localhost:8086

Here is my code:

usingIoTHubTrigger=Microsoft.Azure.WebJobs.EventHubTriggerAttribute;

usingMicrosoft.Azure.WebJobs;

usingMicrosoft.Azure.WebJobs.Host;

usingMicrosoft.Azure.EventHubs;

usingSystem.Text;

usingSystem.Net.Http;

usingMicrosoft.Extensions.Logging;

usingSystem;

usingSystem.Text.Json;

usingSystem.Collections.Generic;

usingNewtonsoft.Json;

usingInfluxDB.Client;

usingInfluxDB.Client.Api.Domain;

usingInfluxDB.Client.Core;

usingInfluxDB.Client.Writes;

usingSystem.Threading.Tasks;

namespaceWatlow.Function

{​​​​​​​​

publicclassObject{​​​​​​​​

publicstringserial\_number{​​​​​​​​get;set;}​​​​​​​​

publicfloatuniversal\_input\_1\_mod\_5{​​​​​​​​get;set;}​​​​​​​​

publicfloatuniversal\_input\_2\_mod\_5{​​​​​​​​get;set;}​​​​​​​​

publicfloatuniversal\_input\_3\_mod\_5{​​​​​​​​get;set;}​​​​​​​​

publicfloatuniversal\_input\_4\_mod\_5{​​​​​​​​get;set;}​​​​​​​​

publicstringdisplay\_units{​​​​​​​​get;set;}​​​​​​​​

publicDateTimets{​​​​​​​​get;set;}​​​​​​​​

}​​​​​​​​

publicstaticclassIotHubDataProcessing

{​​​​​​​​

privatestaticHttpClientclient=newHttpClient();

[FunctionName(“IotHubDataProcessing”)]

publicstaticvoidRun([IoTHubTrigger(“messages/events”,Connection=“ConnectionString”)]EventDatamessage,ILoggerlog)

{​​​​​​​​

log.LogInformation($“C# IoT Hub trigger function processed a message: {​​​​​​​​Encoding.UTF8.GetString(message.Body.Array)}​​​​​​​​”);

Objectobj=JsonConvert.DeserializeObject(Encoding.UTF8.GetString(message.Body.Array));

WriteInflux(obj);

}​​​​​​​​

publicstaticasyncvoidWriteInflux(Objectobj)

{​​​​​​​​

conststringtoken=“pcSpeRibWx0Xak–KpLI23kk52LZDbPcRjKKpmtPqZ8l47\_mlUMsrgG69XeSmchQ\_apOWwmgh8CpN1QQ2oQTuQ==”;

conststringbucket=“timeseriesDB”;

conststringorg=“xxxx”;

conststringpassword=“xxxxx”;

varclient=InfluxDBClientFactory.Create(“[http://20.83.176.xxx:8086](http://20.83.176.xxx:8086)”,“xxxx”,password.ToCharArray());

varhealth=awaitclient.HealthAsync();

if(health.Status.ToString()==“Pass”){​​​​​​​​

Console.WriteLine(“Connection success.”);

}​​​​​​​​

else{​​​​​​​​

Console.WriteLine($“{​​​​​​​​health.Status}​​​​​​​​”);

Console.WriteLine($“Connection failure: {​​​​​​​​health.Message}​​​​​​​​!”);

}​​​​​​​​

varpoint=PointData

.Measurement(“temperature”)

.Tag(“serialNumber”,obj.serial\_number)

.Field(“tc1”,obj.universal\_input\_1\_mod\_5)

.Field(“tc2”,obj.universal\_input\_2\_mod\_5)

.Field(“tc3”,obj.universal\_input\_3\_mod\_5)

.Field(“tc4”,obj.universal\_input\_4\_mod\_5)

.Timestamp(DateTime.UtcNow,WritePrecision.Ns);

using(varwriteApi=client.GetWriteApi())

{​​​​​​​​

writeApi.WritePoint(bucket,org,point);

}​​​​​​​​

}​​​​​​​​

}​​​​​​​​

}​​​​​​​​

​
