Skip to content

DireWolfZA/MondayApiClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MondayApiClient Build status

A C# wrapper for the Monday.com API

Current API version is 2024-10 - this can be seen in MondayApiClient.cs


  • Built using netstandard2.0 - compatible with .Net Framework
  • Uses GraphQL.Client for most request functionality, however MondayAPI returns non-GraphQL-standard errors so a special serializer is used (thanks to this comment)
  • I use Husqvik/GraphQlClientGenerator to generate the Schema used to generate requests - install with dotnet tool install --global graphqlclientgenerator.tool and see generate api schema.cmd
  • Thanks to this comment, file uploads are supported by MondayFileUploadRequest.cs - the variable file must be used in the request
  • There are a couple bugs/quirks noticed in the Monday API that are mitigated by this project:
    • Asset columns have nonsense CreatedAt values - e.g. 55686-09-26T02:33:47+00:00 - see AssetActions.cs
    • ActivityLogs CreatedAt is returned as 17-digit value - this is handled in UnixDateTimeConverter.cs
    • On updating columns, some columns require specific different JSON property names to update, that is handled by Utils.convertColumn
    • When retrieving Users with .WithAllScalarFields(), an undocumented encrypt_api_token field is included which causes the entire query to return null data - this field is excluded specifically in UserActions.cs. This field is not mentioned in the API Docs, however GraphQL Schema introspection describes it as "The token of the user for email to board." (???)

This project is meant to be used in two ways:

  • Useful helper methods to accomplish most tasks
  • Reference code to build your own specific methods

Also, models for responses to Monday Webhooks are provided in WebhookResponses