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

# Kom igång

> Konfigurera en nyckel och använd cURL för offert, verktygskörning och resultat.

## Översikt

Exemplet använder `web_search` för att förbereda nyckel, hämta kostnadsfri offert, köra och hämta resultat. Ett Bash-kompatibelt skal och cURL räcker, utan språkspecifikt SDK.

## Förutsättningar

Förbered dessa fem saker:

* Ett NoimosAI-konto med åtkomst till [Developer Platform](https://platform.noimosai.com)
* Ett Developer Platform-projekt med API-åtkomst aktiverad
* En utvecklarnyckel med prefix `nmp_` och nödvändiga behörigheter
* Ett Bash-kompatibelt skal
* cURL, jq och uuidgen

För betald körning, kontrollera även projektets förbetalda USD-saldo och månadsgränser. Se behörigheter i [Autentisera anrop](https://docs.noimosai.com/sv/developers/api/authentication.md).

Om inget tillgängligt projekt visas, be organisationens `OWNER` eller `ADMIN` skapa ett projekt eller lägga till dig. Skapa nycklar i ett projekt där du är medlem.

## Kör API:et

Följ sju steg för första körningen.

### 1. Skapa en nyckel i Developer Platform

Projektets `ADMIN` eller `DEVELOPER` kan skapa en nyckel i [Developer Platform](https://platform.noimosai.com):

1. Logga in och välj projekt.
2. Öppna **API-nycklar** och välj **Skapa ny nyckel**.
3. Ange beskrivande namn, giltighetstid och behörigheter och skapa nyckeln.
4. Spara den hemliga nyckeln säkert; den visas bara en gång.

Guiden kräver `project:read`, `tools:read`, `tools:execute` och `executions:read`. Välj bara nödvändiga behörigheter för andra användningsfall.

### 2. Ange nyckel och bas-URL

Använd miljövariabler för nyckel och bas-URL så att hemligheter inte skrivs direkt i kommandohistorik eller källkod.

```bash theme={null}
export NOIMOS_PLATFORM_API_URL="https://api.noimosai.com/noimosToolBridge"
export NOIMOS_PLATFORM_API_KEY="nmp_..."
```

> [!WARNING]
>
> Nyckeln visas bara vid skapandet. Spara den inte i Git, delade dokument eller JavaScript på klientsidan.

### 3. Kontrollera nyckelns projekt

Kontrollera först att nyckeln hör till avsett Developer Platform-projekt.

```bash theme={null}
curl --fail-with-body \
  "$NOIMOS_PLATFORM_API_URL/tools/project" \
  -H "Authorization: Bearer $NOIMOS_PLATFORM_API_KEY"
```

Svaret innehåller organisations-ID, projekt-ID och projektnamn i `data`. Om projektet är fel, kontrollera nyckeln före betald körning.

```json theme={null}
{
  "data": {
    "developerOrganizationId": "...",
    "developerProjectId": "...",
    "name": "Example Project"
  },
  "requestId": "..."
}
```

### 4. Kontrollera tillgängliga verktyg

Hämta aktuella namn, beskrivningar, scheman, exempel, tillgänglighet och priser.

```bash theme={null}
NOIMOS_TOOLS_RESPONSE=$(curl --fail-with-body \
  "$NOIMOS_PLATFORM_API_URL/tools" \
  -H "Authorization: Bearer $NOIMOS_PLATFORM_API_KEY")

echo "$NOIMOS_TOOLS_RESPONSE" | jq
```

Kontrollera svarets `executionEnabled` och verktygets `available`. Använd svaret som aktuell källa utan att anta fasta antal, modeller, scheman eller priser.

Filtrera det sparade svaret för att bara se `web_search`.

```bash theme={null}
echo "$NOIMOS_TOOLS_RESPONSE" | jq \
  '.data.tools[] | select(.name == "web_search") | {
    name,
    description,
    available,
    inputSchema,
    example,
    models,
    price
  }'
```

### 5. Hämta offert före körning

Skicka verktygsnamn och argument för att få prisversion och maximal reservation. Detta startar inget betalt arbete.

```bash theme={null}
NOIMOS_QUOTE_RESPONSE=$(curl --fail-with-body \
  "$NOIMOS_PLATFORM_API_URL/tools/quote" \
  -H "Authorization: Bearer $NOIMOS_PLATFORM_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
    "tool": "web_search",
    "arguments": {
      "query": "content marketing trends",
      "count": 5
    }
  }')

echo "$NOIMOS_QUOTE_RESPONSE" | jq
```

Offerten returnerar `priceVersion` och `maximumChargeMicros` för körning. Återanvänd värdena oförändrade utan egna beräkningar. `maximumChargeMicros` är ett heltal i miljondelar av USD: 1 USD är 1,000,000 micros.

```json theme={null}
{
  "data": {
    "tool": "web_search",
    "priceVersion": "...",
    "currency": "usd",
    "minimumChargeMicros": 0,
    "maximumChargeMicros": 0,
    "expiresAt": "..."
  }
}
```

Beloppen ovan visar bara svarsformatet. Nästa steg läser verkliga värden från det sparade svaret.

### 6. Kör det offererade anropet

Behåll verktyg och argument och lägg till prisversion och maximal reservation. Inkludera en idempotensnyckel som identifierar det logiska anropet.

```bash theme={null}
export NOIMOS_PRICE_VERSION=$(echo "$NOIMOS_QUOTE_RESPONSE" | jq -r '.data.priceVersion')
export NOIMOS_MAXIMUM_CHARGE_MICROS=$(echo "$NOIMOS_QUOTE_RESPONSE" | jq -r '.data.maximumChargeMicros')
export NOIMOS_IDEMPOTENCY_KEY=$(uuidgen)

NOIMOS_EXECUTION_RESPONSE=$(curl --fail-with-body \
  "$NOIMOS_PLATFORM_API_URL/tools/web_search" \
  -H "Authorization: Bearer $NOIMOS_PLATFORM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $NOIMOS_IDEMPOTENCY_KEY" \
  --data "$(jq -n \
    --arg priceVersion "$NOIMOS_PRICE_VERSION" \
    --argjson maximumChargeMicros "$NOIMOS_MAXIMUM_CHARGE_MICROS" \
    '{
      tool: "web_search",
      arguments: {
        query: "content marketing trends",
        count: 5
      },
      priceVersion: $priceVersion,
      maximumChargeMicros: $maximumChargeMicros
    }')")

echo "$NOIMOS_EXECUTION_RESPONSE" | jq
export NOIMOS_EXECUTION_ID=$(echo "$NOIMOS_EXECUTION_RESPONSE" | jq -r '.data.id')
```

Exemplet återanvänder offerten från steg 5 och skapar en nyckel med `uuidgen`. Vid mottagning returneras HTTP 202 och ett körnings-ID.

```json theme={null}
{
  "data": {
    "id": "EXECUTION_ID",
    "tool": "web_search",
    "status": "queued",
    "reservedMicros": 0,
    "chargedMicros": 0
  }
}
```

Svaret innehåller även prisversion, utdata, fel och tidsstämplar. `chargedMicros: 0` under bearbetning betyder inte att körningen slutligt är gratis.

### 7. Fråga efter samma körnings-ID

Använd ID:t från steg 6 och fråga med minst fem sekunders mellanrum tills körningen är klar.

```bash theme={null}
while true; do
  NOIMOS_STATUS_RESPONSE=$(curl --fail-with-body \
    "$NOIMOS_PLATFORM_API_URL/tools/executions/$NOIMOS_EXECUTION_ID" \
    -H "Authorization: Bearer $NOIMOS_PLATFORM_API_KEY")

  echo "$NOIMOS_STATUS_RESPONSE" | jq
  NOIMOS_STATUS=$(echo "$NOIMOS_STATUS_RESPONSE" | jq -r '.data.status')

  case "$NOIMOS_STATUS" in
    succeeded|failed|cancelled|needs_review) break ;;
  esac

  sleep 5
done
```

`queued`, `running` och `waiting` betyder pågående bearbetning. Vid `succeeded`, läs `output` och `chargedMicros`. Se [Hantera körning och debitering](https://docs.noimosai.com/sv/developers/api/execution-and-billing.md) för andra statusar.

> [!WARNING]
>
> Om svaret är okänt, skicka inte igen med en ny idempotensnyckel. Samma kropp och nyckel hämtar den redan mottagna körningen.

## Relaterade sidor

Läs sedan relevanta sidor:

* [Autentisera anrop](https://docs.noimosai.com/sv/developers/api/authentication.md): behörigheter och nyckellagring
* [Hantera körning och debitering](https://docs.noimosai.com/sv/developers/api/execution-and-billing.md): långa jobb, återförsök och slutdebitering
* [API-referens](https://docs.noimosai.com/sv/developers/api/reference.md): ändpunkter, statusar och gränser
* Developer Platforms [Dokumentation](https://platform.noimosai.com/docs): aktuella exempel


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.