# Before getting started

## Technical Requirements

One Record API encompasses a series of operations accessible through a standardized web protocol. These operations are callable by applications to request or send information. Applications transmit specific request data, and the API promptly responds with data in a predefined standard format.

{% hint style="info" %}
Key concepts of REST web services:

* **RESTful services**: Representational State Transfer (REST) architecture used to design Hypertext Transfer Protocol (HTTP) based Application Programming Interface (API) based on HTTP methods like GET, POST...
* **JSON data**: JavaScript Object Notation (JSON), a format of data interchange used by One Record API.
* **Web Services**: service provided by a machine over the internet.
  {% endhint %}

## About One Record API

One Record API follows the principles of REST (Representational State Transfer), using HTTP methods such as POST, GET, PUT, PATCH, and DELETE to facilitate CRUD (Create, Read, Update, Delete) operations. This design enables a standardized approach to interact with web services. Each HTTP method corresponds to a specific action:

* `POST` for creating new resources,
* `GET` for retrieving existing resources,
* `PUT` for updating entire or partial resources,
* `DELETE` for removing resources.

By following these RESTful principles, One Record API ensures that interactions with the system are consistent and predictable.

## Authentication requirements

{% hint style="info" %}
For interacting with One Record API, applications require a unique `clientId` and `clientSecret`. Such keys can be obtained by contacting ***<web@technema.fr>***.

One Record API uses the [OAuth 2.0 Authorization Framework](https://datatracker.ietf.org/doc/html/rfc6749) to authenticate and authorize applications connecting to it. [Authentication](https://docs.one-record.fr/one-record/security/authentication) and [Authorization](https://docs.one-record.fr/one-record/security/authorization) gives practical usage examples.
{% endhint %}
