> For the complete documentation index, see [llms.txt](https://senar.gitbook.io/frameit-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://senar.gitbook.io/frameit-help/frameit-aide-en-ligne/documentation-de-lapi-frameit.md).

# Documentation de l'API FrameIT

FrameIT transforme n'importe quelle image en un objet 3D pour l'afficher en Réalité augmentée sur mobile. FrameIT intègre une variété de styles et de couleurs de cadres, offrant à l'utilisateur la possibilité de s'assurer que non seulement la taille et le style d'une oeuvre, mais aussi celui de son encadrement, s'harmonisent avec son intérieur.&#x20;

<figure><img src="https://content.gitbook.com/content/dussU9FpPSynepuYrc9A/blobs/42CCyPtWO2As7YSZ2VD5/senar-frame-it-pic.jpg" alt="" width="563"><figcaption></figcaption></figure>

### DÉMO API <a href="#d_mo_api" id="d_mo_api"></a>

Visualisez deux applications pratiques sur notre page de démonstration.

* **Boutique en ligne**
* **Galerie d'Art**

Vous pouvez [accéder à ces démos ici.](https://www.frameit.ar/demos)

### PARAMÈTRES DE l'API FrameIT

Pour obtenir votre clé API, veuillez nous contacter.

**URL de base de l'API** **:**  <https://www.frameit.ar/api/frameit>

**Endpoint : /**

**Description :** Ajoute un cadre à une image donnée.

**Méthode HTTP :** POST

**Paramètres de la requête :** &#x20;

| **PARAMÈTRE**   | **DESCRIPTION**                                                                 | **VALEURS (peuvent être étendues, à la demande)**                                                                           |
| --------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **File**        | <p>Fichier image à traiter</p><p><em>Formats supportés: JPG, PNG, BMP</em></p>  | `File`                                                                                                                      |
| **ImageUrl**    | <p>URL de l'image à traiter</p><p><em>Formats supportés: JPG, PNG, BMP</em></p> | `ImageUrl`                                                                                                                  |
| **Unit**        | Unité utilisé pour les dimensions                                               | `cm` (centimètres), `in` (inches)                                                                                           |
| **ImageWidth**  | Largeur souhaitée hors cadre, en AR                                             | <p><em>Tout nombre positif</em></p><p><em>(séparateur décimal : point)</em></p>                                             |
| **ImageHeight** | <p>Hauteur souhaitée hors cadre, en AR</p><p>(Optionnelle)</p>                  | <p><em>Tout nombre positif</em></p><p><em>(séparateur décimal : point)</em></p>                                             |
| **MatWidth**    | <p>Largeur du passe-partout</p><p>(Optionnelle)</p>                             | <p><code>0</code>: ignoré (sans passe-partout)</p><p><em>Tout nombre positif</em> <em>(séparateur décimal : point)</em></p> |
| **SupportType** | Type de support                                                                 | `Canvas`, `Dibond`, `Photo`, `Plexiglass`, `Poster` , `Transparent` \*                                                      |
| **FrameType**   | Type de cadre                                                                   | `None`, `Thin_Wood`, `Large_Wood`, `Thin_Floater`, `Floater`, `Aluminum` \*                                                 |
| **FrameColor**  | Couleur du cadre (Optionnelle)                                                  | `Black`, `White`, `Natural_Oak`, `Gold`, `Silver`, `Copper` \*                                                              |

\* *Types de support : Toile, Dibond (plaque aluminium), Photo, Plexiglass, Affiche, Transparent*

*Types de cadre : Aucun, Bois fin, Bois large, Caisse américaine profils fins,* *Caisse américaine profils épais,* *Aluminium*

*Couleurs de cadre : Noir, Blanc, Chêne naturel, Or, Argent, Cuivre*

#### **Associations disponibles (type & couleur de cadre)**

* **Thin\_Wood** : disponible avec `Black`, `White`, `Natural_Oak`
* **Large\_Wood** : disponible avec `Gold`
* **Thin\_Floater** : disponible avec `Black`, `White`, `Natural_Oak`
* **Floater** : disponible avec `Black`, `White`, `Natural_Oak`
* **Aluminum** : disponible avec `Black`, `White`, `Gold`, `Silver`, `Copper`\
  NB : soyez vigilant sur l'orthographe du mot "Aluminum" (un seul "i" en anglais).

### **EXEMPLE DE REQUÊTE**

<table data-header-hidden><thead><tr><th width="287.6171875"></th><th></th></tr></thead><tbody><tr><td><strong>REQUÊTE</strong></td><td><strong>RÉPONSE</strong></td></tr><tr><td><p><strong>POST</strong> https://www.frameit.ar/api/frameit</p><p><strong>Content-Type:</strong> multipart/form-data</p><p><strong>Authorization:</strong> Basic api: votre-clé-API</p><p><strong>File</strong>: [fichier image]</p><p><strong>Unit</strong>: <code>cm</code></p><p><strong>SupportType:</strong> <code>Photo</code></p><p><strong>ImageWidth</strong>: <code>60.7</code></p><p><strong>MatWidth</strong>: <code>5</code></p><p><strong>FrameType:</strong> <code>Thin_Wood</code></p><p><strong>FrameColor:</strong> <code>Natural_Oak</code></p></td><td><p>{</p><p>    "PublicLink": "https://public-link",</p><p>    "QrCodeImage": "https://qrcode-image"</p><p>}</p></td></tr></tbody></table>

#### **Exemple de code en Javascript**

```javascript
// Function to make the API request
async function uploadImage() {
    // API endpoint
    const url = 'https://www.frameit.ar/api/frameit';    // Prepare the form data
    const formData = new FormData();    // Replace this with the URL of the image you want to use
    const imageUrl = '';
    formData.append('ImageUrl', imageUrl);    // Append other parameters to the form data
    formData.append('Unit', 'in');
    formData.append('ImageWidth', '24.5');
    formData.append('MatWidth', '2');
    formData.append('SupportType', 'Photo');
    formData.append('FrameType', 'Thin_Wood');
    formData.append('FrameColor', 'Natural_Oak');    // Set up the request headers
    const headers = new Headers(); 
    headers.append('Authorization', 'Basic ' + btoa('api:your-API-key'));    // Make the request
    try {
    const response = await fetch(url, {
        method: 'POST',
        headers: headers,
        body: formData
    });    if (!response.ok) {
    throw new Error(HTTP error! status: ${response.status});
    }    // Get the response JSON
    const data = await response.json();
    console.log(data);
  } catch (error) {
   console.error('Error:', error);
  }
}// Call the function (e.g., on a button click)
uploadImage();
```

#### **Exemple de code en Python**&#x20;

```python
import requests
from requests.auth import HTTPBasicAuth
import base64# API endpoint
url = 'https://www.frameit.ar/api/frameit'# Your API key
api_key = 'Your-API-Key'def get_frameit_response():
    # Image file path
    file_path = 'images/sample1.jpg'
    files = {'file': open(file_path, 'rb')}    # Data payload
     data = {
        'Unit': 'in',
        'ImageWidth': 24.5,
        'MatWidth': 2,
        'SupportType': 'Photo',
        'FrameType': 'Thin_Wood',
        'FrameColor': 'Natural_Oak'
    }    # Basic authentication
    auth = HTTPBasicAuth('api', api_key)    # Make the POST request
    response = requests.post(url, files=files, data=data, auth=auth)    # Print the response
    print(response.json())
    return response.json()get_frameit_response()
```

#### **Codes de réponse HTTP**

* **200 OK :** la requête a réussi et la réponse contient les données demandées.
* **400 Bad Request :** la requête est mal formulée ou contient des paramètres incorrects.
* **500 Internal Server Error :** une erreur s'est produite côté serveur.
