> ## Documentation Index
> Fetch the complete documentation index at: https://www.octoparse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Aggiorna impostazioni

> Cambia scope di visibilità, switch di manutenzione e source locale di un’app. Pienamente reversibile in qualsiasi momento.

**`PATCH`** `https://api-datahub.octoparse.com/v1/data-apps/{app_id}/settings`

Autenticazione: API key obbligatoria (`Authorization: Bearer <API Key>`). Solo autore dell’app; gli altri ricevono `404`.

Stato operativo reversibile a livello di app, indipendente dal ciclo di vita: regolabile in qualsiasi momento:

* `scope`: `public` visibile nel market / `private` solo l'autore / `shared` grant list (gestisci la lista tramite gli endpoint di grant).
* `accepting_runs`: interruttore di manutenzione. `false` significa in manutenzione; i nuovi run di altri utenti vengono rifiutati (`403 app-not-accepting-runs`, `message` contiene `pause_message`). I run esistenti, i dati acquistati e la visibilità nel market non vengono influenzati; gli autotest dell'autore non hanno restrizioni. Riporta a `true` dopo il ripristino dell'upstream: non serve alcuna modifica del ciclo di vita.
* `source_locale`: lingua del testo del manifest (per esempio `zh-CN` / `en-US`). Se non impostato, si usa il valore predefinito del deployment. Le traduzioni in altre lingue si sovrappongono a questa sorgente. Se la nuova locale sorgente ha già una traduzione, la risposta include l'avviso `translation-shadowed-by-source` e la traduzione non viene eliminata automaticamente.

Anche app con zero Release possono essere aggiornate.

## Richiesta

### Parametri di percorso

<ParamField path="app_id" type="string" required>
  Riferimento app.
</ParamField>

### Body della richiesta

<ParamField body="scope" type="enum">
  Ambito di visibilità: `public` / `private` / `shared`.

  Valori consentiti: `public` / `private` / `shared`.
</ParamField>

<ParamField body="accepting_runs" type="boolean">
  Se accettare nuove run da altri.
</ParamField>

<ParamField body="pause_message" type="string">
  Messaggio mostrato ai caller in manutenzione.
</ParamField>

<ParamField body="source_locale" type="string">
  Codice source locale del manifest.
</ParamField>

### Esempio di richiesta

```bash theme={null}
curl -X PATCH \
  -H "Authorization: Bearer $OCTOPARSE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"accepting_runs": false, "pause_message": "Upstream API under maintenance; expected back at 18:00"}' \
  "https://api-datahub.octoparse.com/v1/data-apps/carol/reviews-query/settings"
```

## Risposta

### 200 successo

```json theme={null}
{
  "data": {
    "scope": "private",
    "accepting_runs": true,
    "pause_message": null,
    "source_locale": "zh-CN",
    "warnings": []
  }
}
```

Il payload è wrappato in `data`. Campi:

<ResponseField name="scope" type="string" required>
  Scope di visibilità corrente.
</ResponseField>

<ResponseField name="accepting_runs" type="boolean" required>
  Switch di manutenzione corrente.
</ResponseField>

<ResponseField name="pause_message" type="string">
  Messaggio di manutenzione attuale.
</ResponseField>

<ResponseField name="source_locale" type="string" required>
  Source locale corrente.
</ResponseField>

<ResponseField name="warnings" type="object[]">
  Avvisi strutturati.

  <Expandable title="fields">
    <ResponseField name="code" type="string" required>
      —
    </ResponseField>

    <ResponseField name="params" type="object">
      —
    </ResponseField>
  </Expandable>
</ResponseField>

### Errori

| HTTP | `code`         | `category`  | Descrizione                    |
| ---- | -------------- | ----------- | ------------------------------ |
| 401  | `unauthorized` | `forbidden` | API key mancante o non valida. |

Le risposte di errore usano `{"error": {code, category, message, retryable}}`. Vedi <a href="/docs/it/datahub/api/reference/introduction#errors">Errori</a>.

## Librerie client

Gli SDK Python e JavaScript non wrappano ancora questo endpoint. Chiama REST direttamente.
