{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Introducing the Intelligence API","description":"Start building with the Dixa API","siteUrl":"https://docs.dixa.io/","keywords":"dixa developer hub, api portal starter, api reference docs","lang":"en-US"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"introducing-the-intelligence-api","__idx":0},"children":["Introducing the Intelligence API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Knowing how your customer service is performing is key to making the right decisions. The Intelligence API gives you the same data that powers analytics in Dixa, so you can bring it into your own dashboards, reports and tools."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Our Intelligence API is designed for:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieving ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["metrics"]},", such as the number of closed conversations, response times, CSAT or AI agent feedback, for a period of time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieving ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["records"]},", the individual events behind each metric, such as every closed conversation, every agent presence interval or every tool an AI agent called."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Narrowing both down with the same filters you know from Dixa, such as queue, team, agent, channel or tag."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"beta-disclaimer","__idx":1},"children":["Beta Disclaimer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Intelligence API is part of the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/getintelligencemetrics"},"children":["beta version of the Dixa API"]},". It may change before it is promoted to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v1"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-differs-from-the-rest-of-the-dixa-api","__idx":2},"children":["How it differs from the rest of the Dixa API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most of the Dixa API has one endpoint per resource, such as conversations, agents or queues. The Intelligence API works differently: it is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["catalogue-driven"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A small, fixed set of endpoints serves every metric and record. The catalogue tells you which metrics and records exist, and how each of them can be queried: which filters it accepts, which values it returns and which records it is built from. When we add a new metric, it shows up in the catalogue, and you can query it through the same endpoints without any changes on your side."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-use-cases","__idx":3},"children":["Common use cases"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Feeding key metrics, such as response time or CSAT per team, into your BI tool or data warehouse."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Building your own dashboards with the same numbers your team sees in Dixa."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Drilling down from a metric into the records behind it, e.g. to find the conversations that were abandoned before an agent picked them up."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"metrics-and-records","__idx":4},"children":["Metrics and records"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every metric and record belongs to a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["category"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversations"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["agents"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aiagents"]},". The category decides which endpoint you query:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Category"},"children":["Category"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Metrics"},"children":["Metrics"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Records"},"children":["Records"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversations"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceconversationsmetricsmetricid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/conversations/metrics/{metricId}"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceconversationsrecordsrecordid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/conversations/records/{recordId}"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["agents"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceagentsmetricsmetricid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/agents/metrics/{metricId}"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceagentsrecordsrecordid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/agents/records/{recordId}"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aiagents"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceaiagentsmetricsmetricid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/aiagents/metrics/{metricId}"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/postintelligenceaiagentsrecordsrecordid"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /beta/intelligence/aiagents/records/{recordId}"]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI agent metrics and records cover AI agents joining conversations, the tools they call and the feedback end users give on their answers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A metric returns a handful of values, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["count"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["average"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["percentage"]},". A record returns a page of rows, one per event."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getting-started","__idx":5},"children":["Getting started"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-find-the-metric-or-record-in-the-catalogue","__idx":6},"children":["Step 1: Find the metric or record in the catalogue"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/getintelligencemetrics"},"children":["List metrics"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/getintelligencerecords"},"children":["List records"]}," endpoints return the catalogue. Add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["category=conversations"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["category=agents"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["category=aiagents"]}," to narrow it down."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -H \"Authorization: <API token>\" \"https://dev.dixa.io/beta/intelligence/metrics?category=conversations\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each entry in the catalogue tells you everything you need to build a query:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},": the metric or record id that goes in the URL, e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["closedConversations"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["primaryFilters"]},": how the query can be anchored, by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["period"]}," and, for many conversation entries, by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversationIds"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filters"]},": the attributes you can filter on, the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["operators"]}," each attribute accepts, and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["defaultOperator"]}," used when you leave the operator out."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aggregates"]}," (metrics only): the values the response contains."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields"]}," (records only): the columns a row can contain, and their types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relatedRecordIds"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relatedMetricIds"]},": the records a metric is built from, and the metrics a record feeds into."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-look-up-the-filter-values","__idx":7},"children":["Step 2: Look up the filter values"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Filters take ids, not names. The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/openapi/dixa-api/beta/intelligence/getintelligencefiltersattributevalues"},"children":["List filter values"]}," endpoint returns the ids and display names for one attribute, e.g. all your queues:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -H \"Authorization: <API token>\" \"https://dev.dixa.io/beta/intelligence/filters/queue/values\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Agents, queues, teams and tags are identified by UUIDs, the same ids the rest of the Dixa API uses. AI agents are listed under the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aiAgent"]}," attribute; this endpoint is the place to look up their ids. Fixed values, such as channels, are identified by names such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Email"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PstnPhone"]},". Deactivated agents, queues and tags, and deleted AI agents, are still listed, marked with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deactivated: true"]},", since past activity still refers to them."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The catalogue and filter values are paginated. To fetch the next page, call the link in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta.next"]}," of the response as it is."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-send-the-query","__idx":8},"children":["Step 3: Send the query"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The metric or record id goes in the URL, and the query goes in the request body:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://dev.dixa.io/beta/intelligence/conversations/metrics/closedConversations\" \\\n  -H \"Authorization: <API token>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"primaryFilter\": {\n      \"period\": { \"interval\": { \"from\": \"2026-06-01T00:00:00Z\", \"to\": \"2026-06-30T23:59:59.999Z\" } }\n    },\n    \"filters\": [\n      { \"attribute\": \"queue\", \"values\": [\"2f9b6d51-38c4-4a72-9e15-7c8b3f6a2d90\"], \"operator\": \"IsOne\" }\n    ],\n    \"timezone\": \"Europe/Copenhagen\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response contains every value the metric offers:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{ \"data\": { \"count\": 1284 } }\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"building-the-request-body","__idx":9},"children":["Building the request body"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["primaryFilter"]}]}," anchors the query and is one of:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["period"]}," with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["interval"]},", e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"period\": { \"interval\": { \"from\": \"2026-06-01T00:00:00Z\", \"to\": \"2026-06-30T23:59:59.999Z\" } } }"]},". Both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]}," are inclusive, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}," must be before ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]},". Both must end in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Z"]}," or a UTC offset, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2026-06-01T00:00:00+02:00"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["period"]}," with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preset"]},", e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"period\": { \"preset\": \"Last7Days\" } }"]},", resolved in the timezone of the request. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Last7Days"]}," and other ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Last{N}{Unit}s"]}," presets include the current unit, so ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Last7Days"]}," includes today. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PreviousWeek"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PreviousMonth"]}," and the other ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Previous{Unit}"]}," presets cover the last full unit, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ThisMonth"]}," and the other ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["This{Unit}"]}," presets cover the current unit so far."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A list of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversationIds"]},", e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"conversationIds\": [8123456, 8123481] }"]},", if the catalogue entry allows it. The query then ignores any period."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filters"]}]}," narrows the query down. Each filter has an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attribute"]},", a list of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["values"]}," and, optionally, an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["operator"]},". All filters must match. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsEmpty"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsNotEmpty"]}," take an empty list of values. A filter on an attribute the catalogue entry doesn't list, or with an operator the attribute doesn't accept, is rejected rather than ignored."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timezone"]}]}," is required. Presets and day boundaries are evaluated in this timezone."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Record queries also accept:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}]},", with an optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageLimit"]}," of up to 1000 rows and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageKey"]}," of the page you want."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["includeLabels"]}]},", which defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},". Set it to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to receive ids without display names."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reading-the-response","__idx":10},"children":["Reading the response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Metrics"]}," return every value listed under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aggregates"]}," in the catalogue entry. If nothing matched the query, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["count"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]}," and the other values, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["average"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["percentage"]},", are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},". Durations are in milliseconds."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Records"]}," return one page of rows under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},", and the keys of the next and previous pages under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta"]},". To fetch the next page, send the same query again with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta.next"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageKey"]},". The page key is opaque, so pass it on unchanged."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Within a row:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A column without a value is left out, so rows can have different keys."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A reference, such as an agent or a queue, is an object with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," and, unless you set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["includeLabels"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["label"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A reference that no longer exists, such as a deleted queue, is left out of the row."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"further-information","__idx":11},"children":["Further information"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ids, attributes and JSON keys are written in camelCase, e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["closedConversations"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initialDirection"]},". Operators, presets and fixed values are written in PascalCase, e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsOne"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Last7Days"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PstnPhone"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Read the catalogue rather than hard-coding ids and filters, so new metrics and filters reach your integration automatically. Check the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deprecated"]}," flag of an entry before relying on it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An unknown metric or record id returns HTTP status 404 Not Found, and an invalid query returns 400 Bad Request with a message explaining what is wrong."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Authentication and rate limits work the same way as for the rest of the Dixa API. Read more in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/docs/api-standards-rules/"},"children":["API Standards & Rules"]},", and see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.dixa.io/docs/tutorial-create-an-api-token"},"children":["How to create an API token"]}," to get started."]}]}]},"headings":[{"value":"Introducing the Intelligence API","id":"introducing-the-intelligence-api","depth":1},{"value":"Beta Disclaimer","id":"beta-disclaimer","depth":2},{"value":"How it differs from the rest of the Dixa API","id":"how-it-differs-from-the-rest-of-the-dixa-api","depth":2},{"value":"Common use cases","id":"common-use-cases","depth":2},{"value":"Metrics and records","id":"metrics-and-records","depth":2},{"value":"Getting started","id":"getting-started","depth":2},{"value":"Step 1: Find the metric or record in the catalogue","id":"step-1-find-the-metric-or-record-in-the-catalogue","depth":3},{"value":"Step 2: Look up the filter values","id":"step-2-look-up-the-filter-values","depth":3},{"value":"Step 3: Send the query","id":"step-3-send-the-query","depth":3},{"value":"Building the request body","id":"building-the-request-body","depth":2},{"value":"Reading the response","id":"reading-the-response","depth":2},{"value":"Further information","id":"further-information","depth":2}],"frontmatter":{"seo":{"title":"Introducing the Intelligence API"}},"lastModified":"2026-10-19T09:07:02.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/intelligence-api-guide","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}