{
  "info": {
    "name": "Gradient Labs API",
    "description": "AI customer support agent (\"Otto\") for regulated and financial services businesses. Base URL https://api.gradient-labs.ai, Bearer API key auth. Endpoints reconstructed from the official open-source Go SDK; verify schemas against the gated reference at https://api-docs.gradient-labs.ai/.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.gradient-labs.ai"
    }
  ],
  "item": [
    {
      "name": "Conversations",
      "item": [
        {
          "name": "Start a conversation",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations",
              "host": ["{{baseUrl}}"],
              "path": ["conversations"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"conversation-1234\",\n  \"customer_id\": \"customer-5678\",\n  \"channel\": \"chat\",\n  \"assignee_type\": \"ai-agent\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Creates a new conversation and optionally assigns it to the Gradient Labs AI agent."
          },
          "response": []
        },
        {
          "name": "Read a conversation",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/read",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "read"],
              "variable": [
                { "key": "conversationID", "value": "", "description": "Your unique identifier for the conversation." }
              ]
            },
            "description": "Returns the current state of a conversation."
          },
          "response": []
        },
        {
          "name": "Finish a conversation",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/finish",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "finish"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Marks a conversation as finished."
          },
          "response": []
        },
        {
          "name": "Cancel a conversation",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/cancel",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "cancel"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Cancels a conversation, stopping the AI agent from working it."
          },
          "response": []
        },
        {
          "name": "Resume a conversation",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/resume",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "resume"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Resumes a previously finished or cancelled conversation."
          },
          "response": []
        },
        {
          "name": "Rate a conversation",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/rate",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "rate"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"csat\",\n  \"value\": 5,\n  \"min_value\": 1,\n  \"max_value\": 5\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Records a customer satisfaction rating for a conversation."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Messages",
      "item": [
        {
          "name": "Add a message to a conversation",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/messages",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "messages"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"message-1\",\n  \"body\": \"Hi, I need help with a payment dispute.\",\n  \"participant_id\": \"customer-5678\",\n  \"participant_type\": \"customer\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Adds an inbound customer or human-agent message for the AI agent to process. The participant type cannot be the AI agent."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Hand-off",
      "item": [
        {
          "name": "Assign a conversation",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/:conversationID/assignee",
              "host": ["{{baseUrl}}"],
              "path": ["conversations", ":conversationID", "assignee"],
              "variable": [{ "key": "conversationID", "value": "" }]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assignee_type\": \"ai-agent\",\n  \"reason\": \"Routing to the AI agent\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Assigns or reassigns a conversation between the AI agent and human participants."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Actions & Tools",
      "item": [
        {
          "name": "Create a tool",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/tools",
              "host": ["{{baseUrl}}"],
              "path": ["tools"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"lookup-account\",\n  \"name\": \"Lookup Account\",\n  \"description\": \"Fetch an account by customer id.\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Defines a business tool the AI agent can call. Requires a Management API key."
          },
          "response": []
        },
        {
          "name": "Execute a tool",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/tools/:id/execute",
              "host": ["{{baseUrl}}"],
              "path": ["tools", ":id", "execute"],
              "variable": [{ "key": "id", "value": "", "description": "The tool identifier." }]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"lookup-account\",\n  \"arguments\": [\n    { \"name\": \"customer_id\", \"value\": \"customer-5678\" }\n  ]\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Executes a defined tool and returns its JSON-encoded result. Requires a Management API key."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Knowledge",
      "item": [
        {
          "name": "Upsert a knowledge article",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": {
              "raw": "{{baseUrl}}/articles",
              "host": ["{{baseUrl}}"],
              "path": ["articles"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"refunds-policy\",\n  \"title\": \"Refunds Policy\",\n  \"description\": \"How refunds are handled.\",\n  \"body\": \"...\",\n  \"visibility\": \"public\",\n  \"status\": \"published\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Creates or updates a knowledge-base article that grounds the AI agent."
          },
          "response": []
        }
      ]
    }
  ]
}
