Changelog
What’s new in the Intuizi API, the MCP server, the CLI, and the console.
Notable changes, newest first, since the first generally available release. This page shows the latest month in full, and every earlier month has a page of its own.
Each change is tagged with what it affects:
- API the REST API. The MCP server and the CLI call the API, so they get these changes too.
- MCP the MCP server, its tools, or connecting an MCP client.
- CLI the Intuizi CLI.
- Console the Intuizi console.
October 2026
2026-10-24
A POI submission’s check is the address against the point, and nothing else API MCP Console
Intuizi no longer looks up named locations by their name near their point. The check of a location that gives its coordinates and its whole address is unchanged: its point is checked against where its address lies, and a point away from it is flagged for the review. The
businessblock is gone from thegeocodingblock of the submission read, the submissions read before today included, and the business count from My Data > POI Submissions. A file now gets one limit of its own, the first 10,000 lookups. See Checks of locations.Demographics reads the latest monthly vintage API MCP Console
A
Demographicsaudience or estimate now reads one monthly vintage of the demographics data, the latest complete one when it runs, where it used to read every monthly vintage at once. It names that month invintage, and an audience also names the month itsdemographicsdata stream reads indemographics_stream_vintage. The audience page and its PDF show the month on the Demographics card. Audiences and estimates made before 2026-10-24 carry no month and keep their numbers. See Get Audience.
2026-10-23
A POI file that Excel saves as CSV (Comma delimited) imports with its accented letters API Console
Excel for Windows writes that format in Windows-1252, not UTF-8. A submission whose file had an accented letter, such as the é of Montréal, could not be staged: it stayed at
4Importing, and since an earlier fix today it ended at3Disabled. Such a file now imports, and its text is stored as UTF-8. Files in UTF-8 read as before. Save a file in any other encoding as CSV UTF-8. See Create Submission by File.Intuizi’s team can stop completing a POI submission’s remaining locations API Console
The team can now stop the work on the locations past the limit before it ends. The locations in progress are completed first and keep their results. The submission then returns to
1Waiting, and the state of thependingblock iswaitingagain for the locations not completed yet, in the submission read and in My Data. They wait for the team to complete them or approve without them. See Files past the limit.Credits in the CLI CLI
CLI v0.1.9 adds
intuizi credits, which shows the balance of the current period, andintuizi credits statement, which lists its entries. It also addsintuizi audiences quoteandintuizi audiences lookalike quote, which take the same flags or--filebody as their create commands and print the price in credits without creating anything. They answer only for an organization billed in credits. See Credits and Quote.
2026-10-22
A large POI submission is never refused: the rest waits for Intuizi’s team API MCP Console
A file or list gets its first 10,000 lookups and 5,000 name lookups by itself, and it is no longer refused when it needs more. The locations past them wait for Intuizi’s team, which decides whether to complete them before the review. The submission read counts them in a new
pendingblock and in theover_limitcount of each block, andnot_imported_urllinks a CSV of the locations not imported, with the reason. My Data > POI Submissions shows a summary of every location, with the same CSV. See Files past the limit.POI submissions check each location before the review API MCP Console
While a submission imports, Intuizi checks each location that gives its coordinates and its whole address against where that address lies, and looks up each named location in the United States, Canada, and Europe by its name near its point. The checks only flag: a location is never moved, changed, or left out. The submission read counts the results in new
geocoding.checkandgeocoding.businessblocks, and My Data > POI Submissions shows them. See Checks of locations.A POI location can give an address instead of coordinates API MCP Console
A submission location may leave out
longitudeandlatitudewhen it givesaddress1, pluszip_code(orcityandstate), plus the country, on every create: by file, by upload, by list, and the MCPcreate_poi_submissiontool. Intuizi geocodes it before the review. A location it cannot place has no point and is not imported, and the submission read reports what was placed, flagged, and not placed in a newgeocodingblock. Withupdateorremove, such locations cannot be matched ongps-coordinates. In the console, My Data > POI Submissions takes the same files. See Locations without coordinates.A POI location with coordinates may leave out its country and address API MCP Console
A submission location that gives
longitudeandlatitudemay leave out its country and any ofaddress1,city,state, andzip_code, on every create. Intuizi fills the empty fields from the point before the review, never the name or a value you send, and a location left without a country is not imported. The submission read counts what was filled in a newgeocoding.reverseblock. See Locations without an address.Credits on the API and MCP API MCP
For an organization billed in credits, Get Credits returns the balance of the current period and Get Credits Statement lists its entries. Quote Audience and Quote Lookalike take the body of their create and return the price in credits, creating nothing. Audiences now carry
credits_charged, and Get Usage acreditsblock. Both arenullfor any other organization, and the new endpoints return403to it. The MCP toolsquote_audienceandquote_lookalike_audienceare listed only for an organization billed in credits.Usage totals count data scans only API
data_scanned.bytesin Get Usage also counted the POI backfills Intuizi runs, which read stored files and are not data scans. The console and the monthly data-scan limit have left them out since October 19, so the API could report a higher total, andlimit.over_limitastrue, while builds were still allowed. The total is now the sum ofoperations, andlimitmatches the console.
2026-10-21
An estimate read can wait for the answer API MCP
Get Audience Estimate takes
wait, from 1 to 15 seconds: the read answers as soon as the estimate iscompleted,blocked, orfailed, and at the latestwaitseconds after the request arrived, with the status it has then. At most 5 calls of an organization, and 25 across all organizations, wait at once. Another one answers at once. Only one call waits per estimate: a newer one, such as a retry, takes the wait over. Estimate Audience Size still answers at once. The MCPestimate_audience_sizetool now waits up to about 12 seconds and returns the numbers when they are ready, andget_audience_estimatewaits up to 15 seconds. Apendinganswer means callingget_audience_estimateagain. Some estimates, such as two combined datasets, still take about as long as a build. Anestimate_audience_sizereplay (the sameidempotency_key) answers with the estimate as it is now. See The Async Model.
2026-10-20
POI attributes on audiences and size estimates API MCP
Two new reads list the POI attributes scheduled at locations and their values: Get Attributes and Get Attribute Values. A
POIdataset on Create Audience and Estimate Audience Size now takespoi_selection_mode: attributeswith the picked values inpoi_attributes, and is built from the locations they are scheduled at. Without the mode aPOIdataset builds exactly as before. The MCPlookup_referencetool reads the two new catalogs, andcreate_audienceandestimate_audience_sizetake the new fields. See POI attributes.The dates can cover at most five years (1,827 days), and
poi_attributestakes up to 50 attributes with up to 500 value ids each. A location’s event windows follow itstime_zone(see List POIs), daylight saving time included. Get Audience, List Audiences, and the audience webhooks returnpoi_selection_modeandpoi_attributeson aPOIdataset built inattributesmode, the pick it was built from. APOIdataset built from categories, brands, and locations carries neither.Size estimates of a POI attributes dataset carry an
infonote APIGet Audience Estimate and the Estimate Audience Size response now carry
info. It isnull, or, when aPOIdataset of the recipe is inattributesmode, a sentence saying the estimate does not account for the event time windows of the selected attributes and the built audience will be materially smaller. The estimate keeps its number.
2026-10-18
A delivery without your own keys goes only to a bucket registered for your organization API Console
Create Activation and Create Schedule now answer
422when a delivery carries no access keys or service account key of your own and its bucket, or its folder, is not registered for your organization. Intuizi writes such a delivery with its own cloud identity, so your Account Manager registers each bucket it may go to. A delivery with your own access keys or service account key works as before. See Deliveries without access keys. The console’s Activate and Schedule wizards refuse the same deliveries, and a scheduled cycle to a bucket that is not registered creates no activation. Schedules that deliver to a registered bucket keep running.A folder Intuizi reads data from is not a cohort source API Console
Create Cohort and Preview Cohort File no longer accept a
file_uriin a folder of a third-party bucket that Intuizi reads data from, or a path read as a folder that would take in such a folder. The create answers it with a422onfile_uri, and the preview answers as it does for a file it cannot read (see Errors). Files in your own buckets work as before. In the console, Create Cohort From File, its preview, and its Validate Access buttons follow the same rule.
2026-10-17
A one-value query parameter sent as a list now gets
422APIThe list and reference reads now answer a
searchsent as a list, such as?search[]=coffee, with422andThe search must be a string.in the validation error shape, as the Schedules list already did. The same goes fortypeon the POI list, and fordataType,group, andkeyon the reference reads that take them. These used to end in a server error.An MCP request id must be a string, a number, or null MCP
POST /api/v2/mcpnow answers a request whoseidis a boolean, a list, or an object with JSON-RPC error-32600Invalid Request and a nullid, before the method runs. Such an id used to be echoed back. Anidthat is a number too large to write back, such as1e400, used to end in an HTTP 500 after the method had run, and gets the same error now. A tool argument that holds such a number now gets a tool error that names the argument, and nothing is sent.An OAuth parameter sent as a list now gets
invalid_requestAPI MCPPOST /oauth/tokenandGET /oauth/authorizenow answer a parameter that must be one string, such asclient_id,code,redirect_uri, orstate, with400anderror: invalid_requestwhen it is sent as a list. Aclient_idsent as a list used to end in a server error. See OAuth endpoints.
2026-10-16
Create Project refuses a duplicate or symbols-only name API MCP CLI
Create Project now answers
422with an error onnamewhen another of your company’s projects already has that name, compared without regard to case, or when the name has no letter or digit. A deleted project’s name can be used again. Thecreate_projectMCP tool andintuizi projects creategive the same error, and the console’s Projects page applies the same rules. Delete Project now releases everything filed under the project and deletes it in one step, so a failure leaves the project and everything filed under it as they were.Every POI location gets its time zone from its coordinates API Console
A POI location’s
time_zoneis now its IANA time zone, such asAmerica/New_York, looked up from its latitude and longitude when the location is created, imported, approved from a submission or moved. Locations that had no time zone got theirs the same way, and a time zone already stored is kept. A location at sea or without a point has none. See List POIs.An MCP tool argument that must be one value now gets an error that names it MCP
When an argument that becomes part of the request path or a header, such as
id,idempotency_key,kind, orcatalog, is a list or an object, the tool now answers with a tool error that names the argument, such asArgument 'id' must be a single string or number, not a list or an object.It used to answer with JSON-RPC error-32603Internal error. A path argument sent asnullgets the same kind of error. A list or an object as the tool or promptnamenow gets-32602, as an unknown name does, instead of an HTTP 500, and aprotocolVersionthat is not a string gets the default version. See the Tools Reference.
2026-10-15
Saved connection secrets stay hidden in the Activate and Schedule wizards Console
When you pick a saved endpoint connection, its secrets are no longer filled into the form. Leave a secret blank to use the saved value, or type a new one for that activation only. While a saved secret is used, a field that says where it is sent, such as an SFTP Host, keeps its saved value. A new schedule reads its secrets from a saved connection each time it runs, so the credentials you type for it are saved as a new connection under My Organization, with the Connection Name you give it. Every datastream of a schedule uses that one set of credentials. A service-account key you upload is cleared when you pick another endpoint. The endpoint connection dialogs in My Organization accept a service-account key only as a JSON key file, and now say why a save was refused. Deleting a connection warns only about the active schedules that read their credentials from it.
Activations and schedules deliver only to a bucket and folder your organization can use API Console
Create Activation and Create Schedule now answer
422with “The delivery bucket or folder is not available to your organization.” when a bucket input names an Intuizi bucket, or a path in an Intuizi delivery bucket outside the delivery folder Intuizi set up for your organization. A new delivery also needs a standard bucket name, with no path, access point alias, or ARN, and a folder prefix with no quote, backslash, control character, or..segment. See Delivery buckets and folders. The console’s Activate and Schedule wizards refuse the same destinations, and a scheduled cycle that would deliver to an Intuizi bucket, or outside your delivery folder in an Intuizi delivery bucket, creates no activation. Schedules that deliver to your own bucket keep running. The Activate and Schedule wizards also accept a service account only as a JSON key file.
2026-10-14
A POI file that starts with a byte order mark imports API Console
A CSV that a spreadsheet saves as “CSV UTF-8” starts with a UTF-8 byte order mark. The console’s POI imports, Create Submission by File, and Create Submission by Upload now read such a file as they read any other. Its first header used to be refused as an invalid header, although it read correctly on screen.
The activation pages describe the delivery inputs correctly API
Create Activation, Create Schedule, Endpoint Connections & Partners, and the activation guides said that a delivery authenticates with the credentials stored on the endpoint connection, or with the
credentialsyou send. They now say what a delivery reads: when the partner takes a destination or access details, they come from the partner inputs sent with the activation (audience_inputs, and per streaminputsandservice_account), which a schedule stores, and a partner that takes none delivers to its own destination. Deliveries are unchanged.Endpoint partners and pricing models follow your company’s setup API MCP CLI Console
Create Activation and Create Schedule now deliver only through a partner that is set up for your company (see Get Endpoint Partners). An endpoint connection to any other partner answers
404, as an Index Exchange connection already did. Both accept a pricing model for one of the audience’s dataset types: a model of the partner set up for your company when there is one for those types, else one of the partner’s public models. Get Pricing Models lists every model your company can use with the partner, and its newdataset_typesfield gives the dataset types each one can be used for. Get Pricing Models and Get Datastreams return an empty list for a partner that is not set up for your company. The MCP tools and the CLI quickstart say to pick a pricing model by itsdataset_types. In the console, the Activate and Schedule wizards and saved endpoint connections follow the same rules. Existing schedules keep running.
2026-10-13
Create Activation checks
project_idAPI ConsoleCreate Activation now answers
422with an error onproject_idwhen it is not one of your company’s projects, as Create Audience and Create Cohort do. That includes the id of a deleted project. Use an id from List Projects, or leaveproject_idout to file the activation under the audience’s project. The console now refuses such a project too when you build an audience, activate one, or move an audience or an activation to another project.Deleting an organization revokes the tokens of its accounts API MCP Console
When an organization is deleted, every token of every account in it is now revoked: login, API, and MCP tokens and every OAuth connection. The accounts are deactivated, and their console sessions end at the next request. See Revocation.
An organization can have 20 open uploads at once API
Create an Upload now refuses a reservation when your organization already has 20 open uploads: reserved, not yet used up by a create, and not expired. It answers
429with aRetry-Afterheader, the seconds until the first of them expires, and reserves nothing. A create that uses up one of the open references makes room right away. See Limits & Quotas.Audience creates and estimates check signal providers, analysis availability and the Deidentified look-back API MCP Console
Create Audience and Estimate Audience Size now accept only what the Audience Manager offers your account. Each
signal_providersvalue must be offered for the dataset type by Get Signal Providers, or already be on one of your organization’s audiences of that type and still be a signal provider, and the list must be a list of distinct strings. An analysis the Audience Manager turns off for the request’s datasets, and aDeidentifiedstart_dateearlier than the Audience Manager offers (from the first day of the previous month, unless a longer look-back is enabled for your account), are rejected with422(see Errors). A key sent in the query string that is not part of the documented body no longer reaches the build. Create Schedule now refuses an audience whose first cycle your account cannot build. Thecreate_audienceMCP tool describes the new rules (estimate_audience_sizetakes the same body), and the console checks the same rules when it builds an audience or creates a schedule.The paginated reference reads stop at page 10,000 API
On every paginated reference read, a
pageabove 10,000 is now read as 10,000, and thepaginationblock reports it. Narrow a longer list withsearchor a filter (see Limits).The Apps reference reads cap
per_pageat 500 APIGet Categories, Get Tags, Get Bundle IDs, and Get Taxonomies now return at most 500 items a page, like the other reference reads. A larger
per_pageis read as 500, and aper_pagethat is zero, negative, or not a number as the default of 250. Thepaginationblock reports the page size used (see Limits).Webhook URLs need a plain hostname API Console
A webhook URL is now rejected when its hostname starts or ends with a dot, or uses characters other than letters, digits, hyphens, and dots. Write an international domain name in its
xn--form. The console refuses such a URL when you save the endpoint, and an endpoint saved earlier with one gets no deliveries until you change its URL. See Webhooks.No OAuth connection while logged in as another user MCP Console
While you are logged in as another user in the console, the OAuth consent screen and its approval now answer
403withaccess_denied, and no connection is made for that user. Return to your own account to connect an application. See OAuth one-click connect.List Webhook Endpoints requires additional permissions API
List Webhook Endpoints now requires the same additional permissions as the console’s Webhooks tab, which need to be approved by your Account Manager. When they are not enabled for your account, it answers
403(see Errors).
2026-10-12
Create Cohort and Preview Cohort File need the cohorts capability API Console
Create Cohort, from a file, an upload, or an audience, and Preview Cohort File now answer
403when cohorts are not enabled for your account (see Errors). Cohorts require additional permissions which need to be approved by your Account Manager. Listing, reading, and deleting cohorts are unchanged. In the console, the Cohorts page, its actions, and the Create Cohort option of a new audience now check the same permissions on the server. The console already offered them only to accounts with the capability.Activations take the price of their pricing model API MCP Console
Every activation now records the price of its pricing model, and every scheduled activation the price of its schedule’s pricing model when it runs. Create Activation and Create Schedule still accept
priceandactivation.price, but ignore them. Thecreate_activationMCP tool no longer listsprice,partner_id,partner_name, orpricing_model. In the console, the Activate and Schedule wizards always record the price of the selected pricing model. Activations created before this change keep the price they recorded.Failed logins are limited per email API
Login and the endpoints that create or revoke API and MCP tokens now count failed attempts for each email together. After 5 failures in a minute from one IP address, or 20 in an hour from any address, they answer
429with aRetry-Afterheader for that email until the window ends, whatever the password. Successful logins are never counted, and one clears the per-minute count for its IP address. See Failed logins.Only an active, confirmed account can log in, and deactivating an account revokes its tokens API MCP Console
Login and the API and MCP token endpoints answer an account that is deactivated or not yet confirmed with the
401of a wrong password. Such an account also cannot create API or MCP tokens in the console or approve an OAuth connection. Deactivating an account, or withdrawing its confirmation, now revokes every token on it: login, API and MCP tokens, and every OAuth connection. Reactivating the account does not restore them. See Revocation.Create Brand needs a category your company can use API
Create Brand now requires
category_idto be a whole number and the id of one of your company’s categories, a category from Intuizi’s public POI catalog, or a category shared with your company. Get Categories lists them. Any other value is rejected with a422oncategory_id.A POI submission is checked in full when Intuizi reads its file API
Intuizi now checks every row of a submission’s file when it reads the locations, with the same checks as Create Submission by File. A submission whose file fails them moves from
4Importing to3Disabled, and none of its locations are kept. Create Submission by Upload still checks the start of the file when it is called, and now reads lines as Create Submission by File does. A file whose rows end in a lone carriage return is now rejected when the create is called, and a quoted value that holds a carriage return is accepted.A cohort file in an Intuizi delivery bucket must be in your own folder API Console
Create Cohort and Preview Cohort File accept a
file_uriin an Intuizi delivery bucket only inside the delivery folder Intuizi set up for your organization. Other Intuizi buckets are not a source, and afile_urineeds a standard bucket name and a path with no empty segment (//), no.or..segment, and no backslash or control character. The create answers anything else with a422onfile_uri, and the preview answers as it does for a file it cannot read (see Errors). Paths in your own buckets that follow these rules work as before. In the console, Create Cohort From File, its preview and its Validate Access buttons follow the same rules.The Errors page shows where validation errors are API
The
422examples on Errors and Envelope now show the messages underdata.errors, where every endpoint but the POI category, brand and submission endpoints returns them. Those return the messages in a top-levelerrorsobject, as both pages now say. The responses themselves are unchanged.Create Schedule needs an audience built only from your company’s cohorts API
Create Schedule now requires every cohort the audience was built from to be your company’s own. An audience built from any other cohort is rejected with a
422onaudience_id. Audiences made with Create Audience always qualify, because it accepts only your company’s cohorts.
2026-10-11
Client registration accepts only plain redirect URIs MCP
Dynamic client registration now rejects a redirect URI that contains a backslash, a comma,
@,%,#, a space or a control character, whose host is not a plain host name (for example a trailing dot or an empty port), or whose port is outside 1 to 65535. The answer is400withinvalid_redirect_uri. The redirect URIs that MCP clients register today are unaffected, and clients that are already registered keep working.
2026-10-09
Index Exchange: the IX CPM, the visibility and what each pricing model delivers API MCP Console
An Index Exchange activation now carries the segment’s marketplace CPM (
IX CPM USD, required, 0.01 to 99.99) and its visibility (IX Access,publicorprivate, defaultpublic). Create Activation and Create Schedule refuse a missing or invalid CPM, an invalid access value or segment id, and a CTV audience with a422that names the rule. An Index Exchange connection needs no credentials (requires_credentials: falsein Get Endpoint Connections) and can be used only by the organizations Index Exchange is enabled for. Get Pricing Models returns each model’sidentifiersand, for Index Exchange, adelivery_label. Get Activation and theactivation.completedwebhook returndelivery.index_exchange: the segment, the delivered file and the publication state (nullfor every other partner). A scheduled Index Exchange activation refreshes one segment once a cycle has registered it.
2026-10-04
Activations can limit by lookalike score, spend and transactions API MCP
Create Activation takes the limits the Audience Manager offers: a score range for a Lookalike Model audience (
score_limitwithmin_scoreandmax_score), and for an audience of one Transactions dataset, spend and transaction ranges per person (affinity_spend_limitandaffinity_txn_limitwith their bounds). As with the frequency filter, each limit needs its flag, and a limit the audience cannot take is rejected with422. The activation’sfiltersecho them. Create Schedule takes the spend and transaction limits in itsactivationblock, and thecreate_activationMCP tool lists the new fields.Create Activation sends the audience’s full definition, as the console does API
Create Activation now builds what it hands to delivery from the audience exactly as the Audience Manager does. Activating a lookalike audience used to return a
500, and a Competitors audience’s activation failed during delivery; both now work. A single cohort’s metadata columns are delivered with it, and every other dataset type carries its full definition instead of only its dates.Attribute groups (All or Any of) for Profile Attributes API MCP Console
A Profile Attributes dataset can now group its attributes. Each group is All (every attribute in it must match) or Any of (at least one must), and a device must satisfy every group, so “all of these, and at least one of those” fits in one dataset. In the Audience Manager use Add group; on Create Audience and Estimate Audience Size send
profile_attribute_groupsinstead ofprofile_attributes. Up to 5 groups.profile_attributeskeeps working as before, with one change: agroupormatchkey on one of its rows was ignored until now and is rejected with a422that names the key.