SIRENE certificate
Comprehensive capture and extraction of SIRENE certificates.
Verification of SIRENE certificates is an essential process for compliance with business registration and regulatory requirements. It allows you to confirm the accuracy and validity of a company's SIRENE certificate, ensuring it meets the necessary legal and administrative standards. This validation is crucial for business operations, regulatory adherence, and maintaining the integrity of official records, thereby establishing trust in a company's legal standing.
Introduction
Datakeen's OCR service automatically extracts information from SIRENE certificates.
- Information is captured as structured data and can be extracted as a .json file through our API.
Extracted information |
---|
- Address - APE code - Date - Entity type - SIREN - SIRET |
Setting up the API
The synchronous API model extracts data from SIRENE certificates in real time.
API token is required
In order to perform any call, you will need an API token that can be retrieved thanks your API credentials. To learn about authentification, please refer to this page
curl --request POST \
--url https://api.datakeen.co/api/v1/reco/sirene \
--header 'accept: application/json' \
--header 'content-type: application/json'
npm install api --save
const sdk = require('api')('@datakeen/v1.4.0#ax268r1ilnd0liqe');
sdk.postRecoSirene()
.then(({ data }) => console.log(data))
.catch(err => console.error(err));
require 'uri'
require 'net/http'
url = URI("https://api.datakeen.co/api/v1/reco/sirene")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
response = http.request(request)
puts response.read_body
composer require guzzlehttp/guzzle
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.datakeen.co/api/v1/reco/sirene', [
'headers' => [
'accept' => 'application/json',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
python -m pip install requests
import requests
url = "https://api.datakeen.co/api/v1/reco/sirene"
headers = {
"accept": "application/json",
"content-type": "application/json"
}
response = requests.post(url, headers=headers)
print(response.text)
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.datakeen.co/api/v1/reco/sirene");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);
dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://api.datakeen.co/api/v1/reco/sirene");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.datakeen.co/api/v1/reco/sirene");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/post "https://api.datakeen.co/api/v1/reco/sirene" {:content-type :json
:accept :json})
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.datakeen.co/api/v1/reco/sirene"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("accept", "application/json")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
POST /api/v1/reco/sirene HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: api.datakeen.co
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.datakeen.co/api/v1/reco/sirene")
.post(null)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
const options = {
method: 'POST',
headers: {accept: 'application/json', 'content-type': 'application/json'}
};
fetch('https://api.datakeen.co/api/v1/reco/sirene', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.datakeen.co/api/v1/reco/sirene")
.post(null)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.build()
val response = client.newCall(request).execute()
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"accept": @"application/json",
@"content-type": @"application/json" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.datakeen.co/api/v1/reco/sirene"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "https://api.datakeen.co/api/v1/reco/sirene" in
let headers = Header.add_list (Header.init ()) [
("accept", "application/json");
("content-type", "application/json");
] in
Client.call ~headers `POST uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
$headers=@{}
$headers.Add("accept", "application/json")
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.datakeen.co/api/v1/reco/sirene' -Method POST -Headers $headers
library(httr)
url <- "https://api.datakeen.co/api/v1/reco/sirene"
response <- VERB("POST", url, content_type("application/json"), accept("application/json"))
content(response, "text")
import Foundation
let headers = [
"accept": "application/json",
"content-type": "application/json"
]
let request = NSMutableURLRequest(url: NSURL(string: "https://api.datakeen.co/api/v1/reco/sirene")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
Sending multiple documents
Scans, pictures and documents should be sent one by one. If you want to send multiple scans at the same time, please refer to the multi-docs API.
API Response
An instance of the usual response is displayed in the following JSON. You will find the complete information, including extraction and checks. More detailed examples of each extracted field are given below.
{
"extractedInformation": {
"address": {
"confidence": 1.0,
"value": "LE MAS BONIN 01240 DOMPIERRE-SUR-VEYLE"
},
"apeCode": {
"confidence": 1.0,
"value": "56.21Z"
},
"date": {
"confidence": 0.75,
"value": "04/03/2022"
},
"entityType": {
"confidence": 1.0,
"value": "Entrepreneur individuel"
},
"siren": {
"confidence": 1.0,
"value": "453216269"
},
"siret": {
"confidence": 1.0,
"value": "45321626900028"
}
},
"message": "",
"status": 200
}
Extracted information format
For each field, the confidence value indicates the degree of certainty of the extraction with regard to the data on the SIRENE certificate.
Address
The address (key) on the certificate is returned as a string (value).
address | Value |
---|---|
value | string |
confidence | number |
"address": {
"confidence": 1.0,
"value": "LE MAS BONIN 01240 DOMPIERRE-SUR-VEYLE"
}
APE Code
The apeCode (key) on the certificate is returned as a string (value).
apeCode | Value |
---|---|
value | string |
confidence | number |
"apeCode": {
"confidence": 1.0,
"value": "56.21Z"
}
Date
The date (key) on the certificate is returned as a string (value).
date | Value |
---|---|
value | string |
confidence | number |
"date": {
"confidence": 0.75,
"value": "04/03/2022"
}
Entity type
The entityType (key) on the certificate is returned as a string (value).
entityType | Value |
---|---|
value | string |
confidence | number |
"entityType": {
"confidence": 1.0,
"value": "Entrepreneur individuel"
}
SIREN
The siren (key) on the certificate is returned as a string (value).
siren | Value |
---|---|
value | string |
confidence | number |
"siren": {
"confidence": 1.0,
"value": "453216269"
}
SIRET
The siret (key) on the certificate is returned as a string (value).
siret | Value |
---|---|
value | string |
confidence | number |
"siret": {
"confidence": 1.0,
"value": "45321626900028"
}
Additional information
Loaded scans must pass prerequisites
To provide a qualitative service and a comprehensive data capture, every picture, scan, or document sent to our API must comply with determined prerequisites which can be found on this page
API limitations
- Maximum size : 5 MB
- Maximum number of calls per minute : 10 calls
Updated 12 months ago
Ready to process SIRENE certificates ? See our API Reference for detailed information