> For the complete documentation index, see [llms.txt](https://legisratio.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legisratio.gitbook.io/docs/graphql-api/usage-examples.md).

# Usage Examples

{% hint style="info" %}
Replace YOUR\_ACCESS\_TOKEN with your actual Bearer token in all examples.
{% endhint %}

## Hybrid Search (Vector + Full-Text)

{% tabs %}
{% tab title="Javascript" %}

```javascript
// Search for laws/articles using natural language
const hybridSearch = async () => {
  const query = `
    query HybridSearch($searchString: String!, $k: Int) {
      HybridSearch(searchString: $searchString, k: $k) {
        idArt
        lawtitle
        title
        text
        topics
        rankValue
      }
    }
  `;

  const variables = {
    searchString: "accesso agli atti in materia ambientale",
    k: 5
  };

  const response = await fetch('https://api.legisratio.com/graphql', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query,
      variables
    })
  });
  
  const data = await response.json();
  console.log('Search results:', data.data.HybridSearch);
};

hybridSearch();
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# Search for laws/articles using natural language
def hybrid_search():
    query = """
    query HybridSearch($searchString: String!, $k: Int) {
        HybridSearch(searchString: $searchString, k: $k) {
            idArt
            lawtitle
            title
            text
            topics
            rankValue
        }
    }
    """
    
    variables = {
        "searchString": "accesso agli atti in materia ambientale",
        "k": 5
    }
    
    response = requests.post(
        'https://api.legisratio.com/graphql',
        headers={
            'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
            'Content-Type': 'application/json',
        },
        json={
            'query': query,
            'variables': variables
        }
    )
    
    data = response.json()
    print('Search results:', data['data']['HybridSearch'])

hybrid_search()
```

{% endtab %}

{% tab title="cURL" %}

```bash
# Hybrid search example
curl -X POST \
  https://api.legisratio.com/graphql \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query HybridSearch($searchString: String!, $k: Int) { HybridSearch(searchString: $searchString, k: $k) { idArt lawtitle title text topics rankValue } }",
    "variables": {
      "searchString": "accesso agli atti in materia ambientale",
      "k": 5
    }
  }'
```

{% endtab %}
{% endtabs %}

***

## Get Law Content

{% tabs %}
{% tab title="Javascript" %}

```javascript
// Retrieve all articles of a specific law using lawUnits
const getLawUnits = async (lawId) => {
  const query = `
    query LawUnits($lawId: String!) {
      lawUnits(lawId: $lawId) {
        idArt
        title
        text
        topics
        _Words
        _GulpeaseIndex
      }
    }
  `;

  const variables = {
    lawId: "1990|241"
  };

  const response = await fetch('https://api.legisratio.com/graphql', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query,
      variables
    })
  });
  
  const data = await response.json();
  console.log('Law units:', data.data.lawUnits);
};

getLawUnits("1990|241");
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# Retrieve all articles of a specific law
def get_law_units(law_id):
    query = """
    query LawUnits($lawId: String!) {
        lawUnits(lawId: $lawId) {
            idArt
            title
            text
            topics
            _Words
            _GulpeaseIndex
        }
    }
    """
    
    variables = {
        "lawId": law_id
    }
    
    response = requests.post(
        'https://api.legisratio.com/graphql',
        headers={
            'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
            'Content-Type': 'application/json',
        },
        json={
            'query': query,
            'variables': variables
        }
    )
    
    data = response.json()
    print('Law units:', data['data']['lawUnits'])

get_law_units("1990|241")
```

{% endtab %}

{% tab title="cURL" %}

```bash
# Get all articles/units of a law
curl -X POST \
  https://api.legisratio.com/graphql \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query LawUnits($lawId: String!) { lawUnits(lawId: $lawId) { idArt title text topics _Words _GulpeaseIndex } }",
    "variables": {
      "lawId": "1990|241"
    }
  }'
```

{% endtab %}
{% endtabs %}

***

## Get Law Metrics

{% tabs %}
{% tab title="Python" %}

```python
import requests

# Get analytics metrics for a specific law
def get_law_metrics():
    query = """
    query GetLawMetrics($filter: LawMetricsFilter) {
        getLawMetrics(filter: $filter) {
            N
            _Words
            _WordsNoStopWords
            _Gerunds
            _ModalVerbs
            _Pronouns
            _Adjectives
            _CommonWords
            _AverageWordsLength
            _Sentences
            _AverageSentenceLength
            _GulpeaseIndex
            _FleschReadingEase
        }
    }
    """
    
    variables = {
        "filter": {
            "idLaw_in": "1990|241",
            "getDistribution": False
        }
    }
    
    response = requests.post(
        'https://api.legisratio.com/graphql',
        headers={
            'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
            'Content-Type': 'application/json',
        },
        json={
            'query': query,
            'variables': variables
        }
    )
    
    data = response.json()
    print('Law metrics:', data['data']['getLawMetrics'])

get_law_metrics()
```

{% endtab %}
{% endtabs %}
