Skip to content

mindee/mindee-api-dotnet

Repository files navigation

License: MIT GitHub Workflow Status NuGet NuGet

Mindee API Helper Library for .NET

Quickly and easily connect to Mindee's API services using .NET.

Requirements

The following .NET versions are tested and officially supported:

  • Standard 2.0
  • 4.7.2, 4.8 (Windows only)
  • 6.0, 7.0, 8.0 (Linux, macOS x64, Windows)

Quick Start

Here's the TL;DR of getting started.

First, get an API Key

Then, install this library:

dotnet add package Mindee

Define the API Key

The API key is retrieved using IConfiguration.

So you could define it in multiple ways:

  • From an environment variable
Mindee__ApiKey
  • From an appsettings.json file
"Mindee": {
    "ApiKey":  "my-api-key"
},

Instantiate The Client

You can instantiate the client either manually or by using dependency injection.

Dependency Injection

In your Startup.cs or Program.cs file, configure the dependency injection (DI) as follows:

services.AddMindeeClient();

This call will configure the client entry point and the PDF library used internally.

Then, in your controller or service instance, pass as an argument the class MindeeClient.

Manually

Or, you could also simply instantiate a new instance of MindeeClient:

using Mindee;

MindeeClient mindeeClient = new MindeeClient("my-api-key");

Loading a File and Parsing It

Global Documents

using Mindee;
using Mindee.Input;
using Mindee.Product.Invoice;

string apiKey = "my-api-key";
string filePath = "/path/to/the/file.ext";

// Construct a new client
MindeeClient mindeeClient = new MindeeClient(apiKey);

// Load an input source as a path string
// Other input types can be used, as mentioned in the docs
var inputSource = new LocalInputSource(filePath);

// Call the API and parse the input
var response = await mindeeClient
    .ParseAsync<InvoiceV4>(inputSource);

// Print a summary of the predictions
System.Console.WriteLine(response.Document.ToString());

// Print the document-level predictions
// System.Console.WriteLine(response.Document.Inference.Prediction.ToString());

Region-Specific Documents

using Mindee;
using Mindee.Input;
using Mindee.Product.Us.BankCheck;

string apiKey = "my-api-key";
string filePath = "/path/to/the/file.ext";

MindeeClient mindeeClient = new MindeeClient(apiKey);

// Load an input source as a path string
// Other input types can be used, as mentioned in the docs
var inputSource = new LocalInputSource(filePath);

// Call the API and parse the input
var response = await mindeeClient
    .ParseAsync<BankCheckV1>(inputSource);

// Print a summary of the predictions
System.Console.WriteLine(response.Document.ToString());

// Print the document-level predictions
// System.Console.WriteLine(response.Document.Inference.Prediction.ToString());

Custom Document (API Builder)

using Mindee;
using Mindee.Http;
using Mindee.Parsing;

string apiKey = "my-api-key";
string filePath = "/path/to/the/file.ext";

MindeeClient mindeeClient = new MindeeClient(apiKey);

// Load an input source as a path string
// Other input types can be used, as mentioned in the docs
var inputSource = new LocalInputSource(filePath);

// Set the endpoint configuration 
CustomEndpoint myEndpoint = new CustomEndpoint(
    endpointName: "my-endpoint",
    accountName: "my-account"
    // optionally, lock the version
    //, version: "1.1"
);

// Call the API and parse the input
var response = await mindeeClient.ParseAsync(
    inputSource, myEndpoint);

// Print a summary of all the predictions
System.Console.WriteLine(response.Document.ToString());

// Print a summary of the predictions
System.Console.WriteLine(response.Document.ToString());

// Print the document-level predictions
// System.Console.WriteLine(response.Document.Inference.Prediction.ToString());

Further Reading

Complete details on the working of the library are available in the following guides:

You can view the source code on GitHub.

You can also take a look at the Reference Documentation.

License

Copyright © Mindee

Available as open source under the terms of the MIT License.

Questions?

Join our Slack