### GET /setup Source: https://api.voluum.com/api/openapi API endpoint for GET /setup ```markdown ### Responses #### 200 - Client setup. **core_setup_SetupResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//setup" ``` ``` -------------------------------- ### GET /ivt/time-to-install/defaults Source: https://api.voluum.com/api/openapi API endpoint for GET /ivt/time-to-install/defaults ```markdown ### Responses #### 200 - Time to install thresholds. **core_setup_ivt_TimeToInstallConfigurationResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//ivt/time-to-install/defaults" ``` ``` -------------------------------- ### Schema: core_setup_SetupResource Source: https://api.voluum.com/api/openapi Client setup. ```markdown ## Schema: core_setup_SetupResource Client setup. **Type:** object ``` -------------------------------- ### Schema: core_setup_RootRedirectSetupResource Source: https://api.voluum.com/api/openapi A Root Redirect Setup. ```markdown ## Schema: core_setup_RootRedirectSetupResource A Root Redirect Setup. **Type:** object ``` -------------------------------- ### Schema: core_setup_ivt_TimeToInstallConfigurationResource Source: https://api.voluum.com/api/openapi Time To Install Configuration ```markdown ## Schema: core_setup_ivt_TimeToInstallConfigurationResource Time To Install Configuration **Type:** object ``` -------------------------------- ### Schema: core_setup_DomainSetupResource Source: https://api.voluum.com/api/openapi A Domain Setup. ```markdown ## Schema: core_setup_DomainSetupResource A Domain Setup. **Type:** object ``` -------------------------------- ### Schema: core_setup_UrlSetupResource Source: https://api.voluum.com/api/openapi An Url Setup. ```markdown ## Schema: core_setup_UrlSetupResource An Url Setup. **Type:** object ``` -------------------------------- ### Schema: core_setup_SetupUpdateResource Source: https://api.voluum.com/api/openapi Client setup update request. ```markdown ## Schema: core_setup_SetupUpdateResource Client setup update request. **Type:** object ``` -------------------------------- ### GET /offer Source: https://api.voluum.com/api/openapi API endpoint for GET /offer ```markdown ### Parameters - **If-Modified-Since** (string (date-time), header, optional): If the requested variant has not been modified since the time specified in this field, an entity will not be returned from the server; instead, a 304 (not modified) response will be returned without any message-body. - **includeDeleted** (boolean, query, optional): Whether deleted entities should be included in the response. - **fields** (array (string), query, optional): Names of the fields that should be included in the response. ### Responses #### 200 - List of Offers. **offer_OfferCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//offer?includeDeleted=true&fields=item1,item2" ``` ``` -------------------------------- ### Schema: core_setup_DomainSetupUpdateResource Source: https://api.voluum.com/api/openapi A Domain setup. ```markdown ## Schema: core_setup_DomainSetupUpdateResource A Domain setup. **Type:** object ``` -------------------------------- ### GET /startup Source: https://api.voluum.com/api/openapi Context bundle for session start. Call once per session and cache for the lifetime — state changes rarely. ## Envelope shape ``` { "responses": { "": { "status": , "statusText": "...", "body": }, ... } } ``` Each sub-response carries its own HTTP status; the envelope itself is **always 200** even when sub-responses fail. **Inspect each `responses..status` — checking only the envelope status treats partial failures as success.** ## Sub-responses relevant to API and MCP clients | Key | Carries | |---|---| | `user` | `id`, `email`, `timezone`, `defaultClientId` | | `workspaces.workspaces[]` | `{id, name, ...}` — ids accepted by the `workspaces` parameter on `/report` | | `customConversions.customConversions[]` | cc1..cc20 with `{index, name, removed, ...}` — filter `!removed`; maps to `customConversions1`..`20` and `customRevenue1`..`20` report columns | | `customColumns.customColumnsDefinitions[]` | User-defined derived metrics: `{name, label, format, expression, ...}`. Pass `name` as a `column` value on `/report`. `format` (`DECIMAL`/`PERCENT`/`INTEGER`) drives rendering; `expression` is the formula tree. Referencing an unknown name returns an error | | `preferences.reportPreference.conversionRegistrationTime` | `VISIT` or `CONVERSION` — default for the `conversionTimeMode` parameter on `/report` | | `setup.urls` | Tracker URL templates (`clickUrl`, `multiOfferClickUrl`, `postbackUrl`, `securePostbackUrl`, `trackingPixelUrl`, `trackingScriptUrl`). Use to validate a reported-broken URL against the canonical template | | `setup.domains` | `redirectDomain` (active), `defaultRedirectDomain` (fallback), plus `dedicatedDomains[]` / `internalDomains[]` / `customDomains[]`. Each entry: `address`, `mainDomain`, `sslStatus`, plus `workspaceIds` (dedicated/custom only) — the field that answers "why does this domain work for workspace A but not B" | The envelope also contains panel-only sub-responses (UI prefs, onboarding, billing notifications, etc.). Ignore unrecognized keys; the set may change without notice. ## What `/startup` does NOT contain Fetch separately: - **Traffic sources catalog** — `GET /traffic-source`. Each entry's `customVariables[]` array carries the per-slot labels and URL parameter names needed to interpret `customVariable1`..`10` report columns. - **Affiliate networks catalog** — `GET /affiliate-network`. - **Current usage counts** — no aggregate endpoint; use list endpoints' `totalRows`. ```markdown ### Parameters - **invitationId** (string, query, optional): Invitation token. When supplied, an `invitation` sub-response is added to the envelope. ### Responses #### 200 - Session-start context envelope (sub-responses keyed by name). **agricall_GraphResponseCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//startup?invitationId=string" ``` ``` -------------------------------- ### GET /profile Source: https://api.voluum.com/api/openapi API endpoint for GET /profile ```markdown ### Responses #### 200 - User details **usermanagement_UserResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//profile" ``` ``` -------------------------------- ### GET /any-created/offer Source: https://api.voluum.com/api/openapi API endpoint for GET /any-created/offer ```markdown ### Responses #### 200 - Information about created entities. **core_EntityCreationInfoResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//any-created/offer" ``` ``` -------------------------------- ### GET /column/info Source: https://api.voluum.com/api/openapi Returns metadata for all available report columns including their key (API name), human-readable label, data type, and capabilities. ## Purpose This is the **runtime discovery mechanism** for building valid report queries. Call this endpoint at startup to discover: - All valid **groupBy** dimensions — filter the response for canGroupBy: true. - All valid **column** (metric) values — filter for canGroupBy: false. - Human-readable **display labels** for column headers. - Column **data types** for correct formatting. ## Bootstrap sequence For AI/programmatic consumers, the recommended startup sequence is: 1. Authenticate (POST /auth/access/session) 2. Call GET /column/info — discover valid groupBy values and built-in columns 3. Call GET /custom-conversions — discover account-specific conversion types 4. Call GET /custom-columns — discover user-defined derived metrics 5. Call GET /traffic-source — discover custom variable name mappings per source 6. Now you can build valid report queries with complete column sets. ## Response fields per column - **key**: the column name to use in the 'column' and 'groupBy' query parameters. - **label**: human-readable display name. - **type**: data type (string, number, decimal, monetary, percentage, date_time, boolean). - **canGroupBy**: if true, this column can be used as a groupBy dimension. - **canBeRestricted**: if true, this column can be used in filter conditions. ```markdown ### Responses #### 200 - Metadata for all available report columns. Used to discover valid groupBy dimensions (canGroupBy: true) and available metric columns (canGroupBy: false). **reports_ColumnMappingCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//column/info" ``` ``` -------------------------------- ### GET /report/async Source: https://api.voluum.com/api/openapi API endpoint for GET /report/async ```markdown ### Parameters - **filter** (string, query, optional): Text filter for specified columns - **emails** (string, query, required): Email to be sent the report to. Multiple emails. - **tz** (string, query, optional): Time zone - **columns** (array (string), query, optional): Columns to return - **from** (string, query, required): From date/time - **currency** (string, query, optional): Currency, default value is USD - **to** (string, query, required): To date/time - **groupBy** (array (string), query, required): Grouping column - **sort** (string, query, optional): Sort column - **workspaces** (array (string), query, optional): Workspace ids to filter by - **conversionTimeMode** (string (CONVERSION|VISIT), query, optional): Specifies on which event time conversions should be aggregated - **direction** (string (ASC|DESC), query, optional): Sort direction ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/async?filter=string&emails=string&tz=string&columns=item1,item2&from=string¤cy=string&to=string&groupBy=item1,item2&sort=string&workspaces=item1,item2&conversionTimeMode=CONVERSION&direction=ASC" ``` ``` -------------------------------- ### GET /dictionary/os Source: https://api.voluum.com/api/openapi API endpoint for GET /dictionary/os ```markdown ### Responses #### 200 - List of oses. **dictionary_os_OsCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//dictionary/os" ``` ``` -------------------------------- ### GET /report Source: https://api.voluum.com/api/openapi Returns aggregated performance data grouped by the specified dimension(s). This is the primary reporting endpoint for campaign analytics. ## Prerequisites Before building report queries, call these endpoints to discover account-specific configuration: - **GET /column/info** — returns all valid groupBy dimensions (canGroupBy: true) and metric columns with their display labels and types. - **GET /custom-conversions** — returns custom conversion type definitions (index 1-20 mapping to customConversions{N} and customRevenue{N} columns). - **GET /custom-columns** — returns user-defined derived metric names that can be passed as column values alongside built-in metrics. - **GET /traffic-source** — returns each source's *customVariables[]* array, where every entry carries *index*, *name* (user-facing label) and *parameter* (the URL parameter the source sends on the click). Variable meanings are defined per traffic source — the same slot index can mean different things on different sources. ## Key behaviors - **Date range is half-open [from, to)**: the 'to' date is exclusive. To query March 5 in full, set from=2026-03-05T00:00:00Z and to=2026-03-06T00:00:00Z. - **Name columns must be requested explicitly**: groupBy=campaignId only returns campaignId. Add campaignName to the column list to get human-readable names. - **Column is a repeated parameter**: use column=visits&column=clicks, not column=visits,clicks. - **Drilldown filters**: use filter1=campaignId&filter1Value= to filter results. Multiple filters: filter1/filter1Value, filter2/filter2Value, etc. ## Metric formulas - **CTR** = clicks / visits (lander effectiveness) - **CR** = conversions / clicks (offer quality) - **CV** = conversions / visits (end-to-end funnel efficiency) - **ROI** = (revenue - cost) / cost (expressed as percentage, e.g. 125.0 = 125%) - **CPA** = cost / conversions - **EPV** = revenue / visits - **EPC** = revenue / clicks - **CPV** = cost / visits ## Direct-linking campaigns Campaigns without a lander (direct-linking) never record click events. CTR, CR, clicks, and EPC are always zero — this is expected, not a tracking error. Use CV (conversions/visits) and EPV (revenue/visits) instead. Detection: inspect the campaign's flow for lander presence (GET /campaign/{id}), or run groupBy=landerId filtered to the campaign — if no landers appear, it is direct-linking. ## This endpoint vs /report/conversions This endpoint returns aggregated data grouped by dimensions. For individual conversion events (no grouping), use GET /report/conversions instead — that endpoint does not accept groupBy, conversionTimeMode, or include parameters. ## Rate limits and response size Throttling applies at three levels: **Per Bearer token (per user)** — three independent buckets: | Bucket | Base allocation | Notes | |---|---|---| | Per-second (burst) | **~4 req/s** | Hit first by most clients | | Concurrent in-flight | **~30** | Counted while a request is on the wire | | Per-minute (sustained) | Higher; rarely the binding cap | Only hit if you sustain perfectly even pacing | Base allocation only — many accounts have higher negotiated limits. Contact support for your values. **Per IP** — anti-abuse cap; authenticated clients from a single host should not normally hit it. **Per-user utilization budget (reports only)** — independent of request count. Heavier queries (longer date ranges, wider *groupBy*, more *column* values) cost more; light queries cost little. Often the binding cap on heavy analytics workloads — prefer many narrow queries over a few enormous ones if you see 429s without exceeding the per-second cap. Exceeding any of these returns **429 Too Many Requests** with an empty body and no *Retry-After* header. Back off and retry. Per-request row cap: see the *limit* query parameter. Per-account caps and throttling thresholds are configurable; contact support to raise them. ```markdown ### Parameters - **include** (string (ALL|ACTIVE|ARCHIVED|TRAFFIC), query, optional): Controls which entities appear in the report. Default: *TRAFFIC*. - *ALL* — all entities, including those with no traffic in the period - *ACTIVE* — only active (non-archived) entities, including those with no traffic - *ARCHIVED* — only archived entities, including those with no traffic - *TRAFFIC* — only rows with non-zero traffic events (excludes entities with no traffic) Entities with no traffic in the period are returned for every value **except** *TRAFFIC*. - **offset** (integer (int32), query, optional): Pagination offset (zero-based). Default: 0. - **tz** (string, query, optional): Time zone for date aggregation, e.g. 'America/New_York', 'Europe/Warsaw', or 'Etc/GMT'. Default: Etc/GMT. Affects how day, dayOfWeek, and hourOfDay boundaries are calculated. - **column** (array (string), query, optional): Columns to include in the response. Repeated query parameter — use *column=visits&column=clicks*, NOT comma-separated. **Volume:** *visits*, *clicks*, *conversions*, *impressions*, *uniqueVisits*, *uniqueClicks* **Financial:** *revenue*, *cost*, *profit* **Rate/efficiency metrics (with formulas):** | Column | Formula | Note | |---|---|---| | *ctr* | clicks / visits | Lander effectiveness. Always 0 for direct-linking campaigns | | *cr* | conversions / clicks | Offer quality. Always 0 for direct-linking campaigns | | *cv* | conversions / visits | End-to-end funnel. The only rate metric valid for both lander and direct-linking | | *roi* | (revenue-cost) / cost | Percentage, e.g. 125.0 = 125% ROI | | *cpa* | cost / conversions | Cost per acquisition | | *epv* | revenue / visits | Earnings per visit | | *epc* | revenue / clicks | Always 0 for direct-linking campaigns | | *cpv* | cost / visits | Cost per visit | | *cpc* | cost / clicks | Cost per click | Other rate metrics: *ecpa*, *ecpc*, *ecpm*, *cpm*, *ap*, *rpm*, *sctr*, *ictr*, *viewRate* **Quality:** *suspiciousVisits*, *suspiciousClicks*, *robotVisits* **Entity names:** *campaignName*, *offerName*, *landerName*, *trafficSourceName*, *affiliateNetworkName*, *countryName*, *deviceName*, *connectionTypeName*, *languageName*, *flowName* **Custom:** *customConversions1*-*20*, *customRevenue1*-*20* (discover via *GET /custom-conversions*). User-defined derived metrics (discover via *GET /custom-columns*). To discover all available columns at runtime, call *GET /column/info*. - **filter1** (string, query, optional): Drilldown filter dimension — a dimension column to filter the report by an EXACT value, e.g. *campaignId*. Pair with *filter1Value*. This is the correct, server-side way to scope a report to a single entity by id; the *filter* parameter only does free-text name search, which is fragile and can match the wrong row. - **compareFrom** (string, query, optional): Start date/time (inclusive) for the comparison period. ISO 8601 format. Used for period-over-period analysis. - **filter2** (string, query, optional): Second drilldown filter dimension (optional), e.g. *countryCode*. Pair with *filter2Value*. - **groupBy** (array (string), query, required): Dimension(s) to group results by. Repeated parameter — use *groupBy=campaignId&groupBy=countryCode*, not comma-separated. **Call GET /column/info** to discover all valid groupBy values for this account (filter response for *canGroupBy: true*). The list evolves — don't hardcode it. Common examples: *campaignId*, *offerId*, *landerId*, *trafficSourceId*, *affiliateNetworkId*, *countryCode*, *day*, *dayOfWeek*, *hourOfDay*, *month*, *device*, *os*, *browser*, *isp*, *referrerDomain*, *flowId*, *customVariable1* through *customVariable10*. **Name column mapping** — grouping by an entity returns only the ID. You must request the name column explicitly via the 'column' parameter: | groupBy | Name column to request | |---|---| | campaignId | campaignName | | offerId | offerName | | landerId | landerName | | trafficSourceId | trafficSourceName | | affiliateNetworkId | affiliateNetworkName | | countryCode | countryName | | device | deviceName | | connectionType | connectionTypeName | | language | languageName | | flowId | flowName | **Custom variables:** slot meanings are per-source (slot 1 may be *zoneid* on PropellerAds, *pubid* on Reacheffect). Discover labels via *GET /traffic-source* → each source's *customVariables[]* array. *customVariable1*..*10* breakdowns must be scoped to a single campaign (or at least a single traffic source) via *filter1=campaignId&filter1Value=*; unscoped breakdowns mix incompatible populations. The endpoint accepts unscoped queries — scoping is on the caller. **Common mistakes returning 400:** *device-type* (use *device*), *referrer* (use *referrerDomain*), *conversion* (use */report/conversions* endpoint), *category*, *pathId*, *externalCampaignId*. - **compareTo** (string, query, optional): End date/time (exclusive) for the comparison period. ISO 8601 format. Same half-open semantics as the 'to' parameter. - **sort** (string, query, optional): Column name to sort by. Can be any valid metric or dimension column. Default: visits. - **filter1Value** (string, query, optional): Exact value for *filter1*, e.g. the campaign id. Returns only rows matching this value. - **filter** (string, query, optional): Free-text substring search over NAME columns only (campaignName, offerName, ...). NOT for ids and NOT exact — a fragment can match several rows or none. To scope a report to a specific entity by id, use the drilldown filters *filter1*/*filter1Value* (e.g. filter1=campaignId, filter1Value=); never put an id here. - **limit** (integer (int32), query, optional): Maximum rows to return per request. **Default: 100.** Values above the per-account cap are silently capped; *totalRows* always reflects the true count. Use *offset* to page through. - **from** (string, query, required): Start date/time (**inclusive**, required). ISO 8601 format, e.g. *2026-03-01T00:00:00Z*. Must be aligned to an hour boundary — minutes and seconds must be zero. The date range is half-open *[from, to)* — 'from' is included in results. - **currency** (string, query, optional): Currency code for monetary values in the response, e.g. USD, EUR, GBP. Default: USD. - **to** (string, query, optional): End date/time (**EXCLUSIVE**). ISO 8601 format. The date range is half-open *[from, to)* — 'to' is NOT included. Must be aligned to an hour boundary — minutes and seconds must be zero. **Default:** start of the next hour in the request timezone (e.g. if current time is 14:30, default *to* is 15:00). This means omitting *to* gives you data up to the current hour. To query the full day of March 5, set *to=2026-03-06T00:00:00Z* (next day). Common mistake: setting *to=2026-03-05T00:00:00Z* returns zero results for March 5. - **filter2Value** (string, query, optional): Exact value for *filter2*. - **workspaces** (array (string), query, optional): Workspace IDs to filter by. Only returns data for campaigns in the specified workspaces. - **conversionTimeMode** (string (CONVERSION|VISIT), query, optional): Controls how conversions are attributed in time. Default: *VISIT*. - *VISIT* — attribute conversion to the time of the original visit (click time) - *CONVERSION* — attribute conversion to the time the postback was received Use *VISIT* when you want conversions aligned with the traffic that generated them. Not applicable to */report/conversions* endpoint. **Period-over-period comparisons:** use the *same mode for both periods* (e.g. WoW with *compareFrom*/*compareTo*). Mixing *VISIT* and *CONVERSION* produces fake late-funnel drops — conversions registered after the first period closes are visible under *CONVERSION* but invisible under *VISIT*. - **direction** (string (ASC|DESC), query, optional): Sort direction. Default: desc (descending). ### Responses #### 200 - Aggregated report data. **reports_ReportResource** #### 429 - Rate limit exceeded. Empty body; no Retry-After header. See the operation description for bucket types and back-off guidance. Rate limit exceeded. Empty body; no Retry-After header. See the operation description for bucket types and back-off guidance. ### Example Usage ```bash curl -X GET "https://api.voluum.com//report?include=ALL&offset=0&tz=string&column=item1,item2&filter1=string&compareFrom=string&filter2=string&groupBy=item1,item2&compareTo=string&sort=string&filter1Value=string&filter=string&limit=0&from=string¤cy=string&to=string&filter2Value=string&workspaces=item1,item2&conversionTimeMode=CONVERSION&direction=ASC" ``` ``` -------------------------------- ### GET /report/conversions Source: https://api.voluum.com/api/openapi Returns individual conversion events as separate rows — one row per conversion. This is fundamentally different from GET /report, which returns aggregated data grouped by dimensions. ## Key differences from GET /report - **No groupBy parameter** — each row is a single conversion event. - **No conversionTimeMode parameter** — not applicable to individual events. - **No include parameter** — not applicable. - **Default sort**: postbackTimestamp (most recent conversions first). - **Column parameter is required** — you must specify which fields to return. ## Common columns for conversion reports Each row can include: postbackTimestamp, visitTimestamp, campaignId, campaignName, offerId, offerName, trafficSourceId, trafficSourceName, countryCode, countryName, device, revenue, payout, customVariable1 through customVariable10, customConversions1-20, customRevenue1-20. ## When to use this endpoint Use this endpoint when you need to inspect individual conversion events, verify postback firing, diagnose tracking issues, or analyze conversion-level detail. For aggregated performance metrics, use GET /report instead. ## Drilldown filters Use filter1=campaignId&filter1Value= to see conversions for a specific campaign. ```markdown ### Parameters - **offset** (integer (int32), query, optional): Pagination offset (zero-based). Default: 0. - **tz** (string, query, optional): Time zone for date aggregation, e.g. 'America/New_York', 'Europe/Warsaw', or 'Etc/GMT'. Default: Etc/GMT. Affects how day, dayOfWeek, and hourOfDay boundaries are calculated. - **column** (array (string), query, required): Columns to include in the response (required). This is a repeated query parameter — use *column=visits&column=clicks*, NOT comma-separated. See GET /report 'column' parameter documentation for the full list of available columns, or call GET /column/info for runtime discovery. - **filter1** (string, query, optional): Drilldown filter dimension — a dimension column to filter the report by an EXACT value, e.g. *campaignId*. Pair with *filter1Value*. This is the correct, server-side way to scope a report to a single entity by id; the *filter* parameter only does free-text name search, which is fragile and can match the wrong row. - **filter2** (string, query, optional): Second drilldown filter dimension (optional), e.g. *countryCode*. Pair with *filter2Value*. - **sort** (string, query, optional): Column name to sort by. Can be any valid metric or dimension column. Default: visits. - **filter1Value** (string, query, optional): Exact value for *filter1*, e.g. the campaign id. Returns only rows matching this value. - **filter** (string, query, optional): Free-text substring search over NAME columns only (campaignName, offerName, ...). NOT for ids and NOT exact — a fragment can match several rows or none. To scope a report to a specific entity by id, use the drilldown filters *filter1*/*filter1Value* (e.g. filter1=campaignId, filter1Value=); never put an id here. - **limit** (integer (int32), query, optional): Maximum rows to return per request. **Default: 100.** Values above the per-account cap are silently capped; *totalRows* always reflects the true count. Use *offset* to page through. - **from** (string, query, required): Start date/time (**inclusive**, required). ISO 8601 format, e.g. *2026-03-01T00:00:00Z*. Must be aligned to an hour boundary — minutes and seconds must be zero. The date range is half-open *[from, to)* — 'from' is included in results. - **currency** (string, query, optional): Currency code for monetary values in the response, e.g. USD, EUR, GBP. Default: USD. - **to** (string, query, optional): End date/time (**EXCLUSIVE**). ISO 8601 format. The date range is half-open *[from, to)* — 'to' is NOT included. Must be aligned to an hour boundary — minutes and seconds must be zero. **Default:** start of the next hour in the request timezone (e.g. if current time is 14:30, default *to* is 15:00). This means omitting *to* gives you data up to the current hour. To query the full day of March 5, set *to=2026-03-06T00:00:00Z* (next day). Common mistake: setting *to=2026-03-05T00:00:00Z* returns zero results for March 5. - **filter2Value** (string, query, optional): Exact value for *filter2*. - **workspaces** (array (string), query, optional): Workspace IDs to filter by. Only returns data for campaigns in the specified workspaces. - **direction** (string (ASC|DESC), query, optional): Sort direction. Default: desc (descending). ### Responses #### 200 - Aggregated report data. **reports_ReportResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/conversions?offset=0&tz=string&column=item1,item2&filter1=string&filter2=string&sort=string&filter1Value=string&filter=string&limit=0&from=string¤cy=string&to=string&filter2Value=string&workspaces=item1,item2&direction=ASC" ``` ``` -------------------------------- ### GET /any-created/affiliate-network Source: https://api.voluum.com/api/openapi API endpoint for GET /any-created/affiliate-network ```markdown ### Responses #### 200 - Information about created entities. **core_EntityCreationInfoResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//any-created/affiliate-network" ``` ``` -------------------------------- ### GET /glass/integrations Source: https://api.voluum.com/api/openapi API endpoint for GET /glass/integrations ```markdown ### Responses #### 200 - Base data source integration resource **glass_IntegrationResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//glass/integrations" ``` ``` -------------------------------- ### GET /any-created/campaign Source: https://api.voluum.com/api/openapi API endpoint for GET /any-created/campaign ```markdown ### Responses #### 200 - Information about created entities. **core_EntityCreationInfoResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//any-created/campaign" ``` ``` -------------------------------- ### GET /bulk/offer Source: https://api.voluum.com/api/openapi API endpoint for GET /bulk/offer ```markdown ### Responses #### 200 - Entities as csv file Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//bulk/offer" ``` ``` -------------------------------- ### GET /traffic-source-template Source: https://api.voluum.com/api/openapi API endpoint for GET /traffic-source-template ```markdown ### Responses #### 200 - List of Traffic Source templates. **trafficsource_TrafficSourceTemplateCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//traffic-source-template" ``` ``` -------------------------------- ### GET /tag Source: https://api.voluum.com/api/openapi API endpoint for GET /tag ```markdown ### Parameters - **tagPrefix** (string, query, optional): Prefix of tags - **offset** (string, query, optional): Pagination: results offset - **entityType** (string, query, required): Type of teh entity - **limit** (string, query, optional): Pagination: max number of tags ### Responses #### 200 - Tags **tag_TagCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//tag?tagPrefix=string&offset=string&entityType=string&limit=string" ``` ``` -------------------------------- ### GET /shared-report Source: https://api.voluum.com/api/openapi API endpoint for GET /shared-report ```markdown ### Responses #### 200 - List of shared reports **sharedreports_SharedReportsCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//shared-report" ``` ``` -------------------------------- ### GET /affiliate-network-template Source: https://api.voluum.com/api/openapi API endpoint for GET /affiliate-network-template ```markdown ### Responses #### 200 - List of Affiliate Network templates. **affiliatenetwork_AffiliateNetworkTemplateCollectionResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//affiliate-network-template" ``` ``` -------------------------------- ### GET /report/conversions/async/scheduled Source: https://api.voluum.com/api/openapi API endpoint for GET /report/conversions/async/scheduled ```markdown ### Parameters - **reportName** (string, query, required): Custom report name - **columns** (array (string), query, optional): Columns to return - **tz** (string, query, optional): Time zone - **groupBy** (array (string), query, required): Grouping column - **sort** (string, query, optional): Sort column - **endAtMidnight** (string, query, required): Whether the scheduled report time range should end at midnight or at client specified time - **filter** (string, query, optional): Text filter for specified columns - **executeAt** (string, query, required): Specifies when the scheduled report should be calculated - **emails** (string, query, required): Email to be sent the report to. Multiple emails. - **currency** (string, query, optional): Currency, default value is USD - **rangeHours** (string, query, required): Scheduled report time range in hours - **workspaces** (array (string), query, optional): Workspace ids to filter by - **direction** (string (ASC|DESC), query, optional): Sort direction ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/conversions/async/scheduled?reportName=string&columns=item1,item2&tz=string&groupBy=item1,item2&sort=string&endAtMidnight=string&filter=string&executeAt=string&emails=string¤cy=string&rangeHours=string&workspaces=item1,item2&direction=ASC" ``` ``` -------------------------------- ### GET /offer/{offerId} Source: https://api.voluum.com/api/openapi API endpoint for GET /offer/{offerId} ```markdown ### Parameters - **offerId** (string, path, required): Offer Id. - **fields** (array (string), query, optional): Names of the fields that should be included in the response. ### Responses #### 200 - An Offer. **offer_OfferResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//offer/{offerId}?fields=item1,item2" ``` ``` -------------------------------- ### GET /report/conversions/async Source: https://api.voluum.com/api/openapi API endpoint for GET /report/conversions/async ```markdown ### Parameters - **filter** (string, query, optional): Text filter for specified columns - **emails** (string, query, required): Email to be sent the report to. Multiple emails. - **tz** (string, query, optional): Time zone - **columns** (array (string), query, optional): Columns to return - **from** (string, query, required): From date/time - **currency** (string, query, optional): Currency, default value is USD - **groupBy** (array (string), query, required): Grouping column - **to** (string, query, required): To date/time - **sort** (string, query, optional): Sort column - **workspaces** (array (string), query, optional): Workspace ids to filter by - **direction** (string (ASC|DESC), query, optional): Sort direction ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/conversions/async?filter=string&emails=string&tz=string&columns=item1,item2&from=string¤cy=string&groupBy=item1,item2&to=string&sort=string&workspaces=item1,item2&direction=ASC" ``` ``` -------------------------------- ### GET /report/async/usage Source: https://api.voluum.com/api/openapi API endpoint for GET /report/async/usage ```markdown ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/async/usage" ``` ``` -------------------------------- ### GET /report/async/scheduled/list Source: https://api.voluum.com/api/openapi API endpoint for GET /report/async/scheduled/list ```markdown ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/async/scheduled/list" ``` ``` -------------------------------- ### Schema: core_setup_DomainResource Source: https://api.voluum.com/api/openapi A domain. ```markdown ## Schema: core_setup_DomainResource A domain. **Type:** object ``` -------------------------------- ### Schema: core_setup_WorkspaceDomainsResource Source: https://api.voluum.com/api/openapi Workspace domains. ```markdown ## Schema: core_setup_WorkspaceDomainsResource Workspace domains. **Type:** object ``` -------------------------------- ### GET /report/async/scheduled Source: https://api.voluum.com/api/openapi API endpoint for GET /report/async/scheduled ```markdown ### Parameters - **reportName** (string, query, required): Custom report name - **columns** (array (string), query, optional): Columns to return - **tz** (string, query, optional): Time zone - **groupBy** (array (string), query, required): Grouping column - **sort** (string, query, optional): Sort column - **endAtMidnight** (string, query, required): Whether the scheduled report time range should end at midnight or at client specified time - **filter** (string, query, optional): Text filter for specified columns - **executeAt** (string, query, required): Specifies when the scheduled report should be calculated - **emails** (string, query, required): Email to be sent the report to. Multiple emails. - **currency** (string, query, optional): Currency, default value is USD - **rangeHours** (string, query, required): Scheduled report time range in hours - **workspaces** (array (string), query, optional): Workspace ids to filter by - **conversionTimeMode** (string (CONVERSION|VISIT), query, optional): Specifies on which event time conversions should be aggregated - **direction** (string (ASC|DESC), query, optional): Sort direction ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//report/async/scheduled?reportName=string&columns=item1,item2&tz=string&groupBy=item1,item2&sort=string&endAtMidnight=string&filter=string&executeAt=string&emails=string¤cy=string&rangeHours=string&workspaces=item1,item2&conversionTimeMode=CONVERSION&direction=ASC" ``` ``` -------------------------------- ### GET /billing/plan Source: https://api.voluum.com/api/openapi API endpoint for GET /billing/plan ```markdown ### Responses #### 200 - Plan details. **plan_PlanResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//billing/plan" ``` ``` -------------------------------- ### GET /any-created/flow Source: https://api.voluum.com/api/openapi API endpoint for GET /any-created/flow ```markdown ### Responses #### 200 - Information about created entities. **core_EntityCreationInfoResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//any-created/flow" ``` ``` -------------------------------- ### GET /profile/token Source: https://api.voluum.com/api/openapi API endpoint for GET /profile/token ```markdown ### Parameters - **token** (string, query, required): User's passwordSet token ### Responses #### 200 - User details **usermanagement_UserResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//profile/token?token=string" ``` ``` -------------------------------- ### GET /auto-rule/template/ Source: https://api.voluum.com/api/openapi API endpoint for GET /auto-rule/template/ ```markdown ### Responses #### 200 - Auto rule template collection **com_codewise_voluum_monitor_model_AutoRuleTemplateCollection** ### Example Usage ```bash curl -X GET "https://api.voluum.com//auto-rule/template/" ``` ``` -------------------------------- ### GET /profile/preference Source: https://api.voluum.com/api/openapi API endpoint for GET /profile/preference ```markdown ### Responses #### 200 - User preferences. **com_codewise_voluum_cruder_rest_model_preferences_PreferenceResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//profile/preference" ``` ``` -------------------------------- ### Schema: core_setup_CustomDomainResource Source: https://api.voluum.com/api/openapi Custom domain. ```markdown ## Schema: core_setup_CustomDomainResource Custom domain. **Type:** object ``` -------------------------------- ### PUT /campaign/{campaignId} Source: https://api.voluum.com/api/openapi Full-replacement update, not a partial patch. The request body accepts the campaign object returned by the get-campaign endpoint as-is. ## Required workflow To change one or more fields: first fetch the campaign, take the object exactly as returned, modify only the fields you intend to change, and send the whole object back. Do not build the payload from scratch. ## Do not drop fields Send back every field you received from GET, including fields not described in this schema. The campaign object carries more fields than the documented schema exposes, and because this is a full replacement, any field omitted from the body is removed or reset on the campaign. Echoing the GET response verbatim (plus your edits) is what preserves them. ## Do not add fields Do not introduce fields that were not present in the GET response just to satisfy a `required` marker in the schema. The object returned by GET is already complete and valid for update; adding fields risks sending invented or wrong values. ```markdown ### Parameters - **campaignId** (string, path, required): Campaign Id. ### Request Body **Content-Type:** application/json; charset=utf-8 ### Responses #### 200 - A Campaign. **campaign_CampaignResource** ### Example Usage ```bash curl -X PUT "https://api.voluum.com//campaign/{campaignId}" \ -H "Content-Type: application/json" \ -d '"value"' ``` ``` -------------------------------- ### Schema: core_setup_QuotaResource Source: https://api.voluum.com/api/openapi Client's element configuration limits. ```markdown ## Schema: core_setup_QuotaResource Client's element configuration limits. **Type:** object ``` -------------------------------- ### Schema: core_setup_DomainUpdateResource Source: https://api.voluum.com/api/openapi A Domain. ```markdown ## Schema: core_setup_DomainUpdateResource A Domain. **Type:** object ``` -------------------------------- ### GET /payment/balance Source: https://api.voluum.com/api/openapi API endpoint for GET /payment/balance ```markdown ### Parameters - **subAccount** (string (OPERATIONAL|REFERRAL|DSP), query, optional): Sun account name ### Responses #### 200 - Account balance details. **payment_AccountBalanceResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//payment/balance?subAccount=OPERATIONAL" ``` ``` -------------------------------- ### Schema: core_setup_RealtimeRoutingApiSetupResource Source: https://api.voluum.com/api/openapi A Realtime routing API. ```markdown ## Schema: core_setup_RealtimeRoutingApiSetupResource A Realtime routing API. **Type:** object ``` -------------------------------- ### GET /notification/preferences-v2 Source: https://api.voluum.com/api/openapi API endpoint for GET /notification/preferences-v2 ```markdown ### Responses #### 200 - List of preferences with details **com_codewise_voluum_push_api_model_PreferenceList** ### Example Usage ```bash curl -X GET "https://api.voluum.com//notification/preferences-v2" ``` ``` -------------------------------- ### GET /notification/inbox/count/unseen Source: https://api.voluum.com/api/openapi API endpoint for GET /notification/inbox/count/unseen ```markdown ### Responses #### 200 - Item count as integer Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//notification/inbox/count/unseen" ``` ``` -------------------------------- ### GET /any-created/lander Source: https://api.voluum.com/api/openapi API endpoint for GET /any-created/lander ```markdown ### Responses #### 200 - Information about created entities. **core_EntityCreationInfoResource** ### Example Usage ```bash curl -X GET "https://api.voluum.com//any-created/lander" ``` ``` -------------------------------- ### GET /notification/inbox/count/unread Source: https://api.voluum.com/api/openapi API endpoint for GET /notification/inbox/count/unread ```markdown ### Responses #### 200 - Item count as integer Empty response body ### Example Usage ```bash curl -X GET "https://api.voluum.com//notification/inbox/count/unread" ``` ``` -------------------------------- ### GET /notification/inbox/count/grouped Source: https://api.voluum.com/api/openapi API endpoint for GET /notification/inbox/count/grouped ```markdown ### Responses #### 200 - Inbox count grouped by category **com_codewise_voluum_push_api_model_InboxCountGroupedResponse** ### Example Usage ```bash curl -X GET "https://api.voluum.com//notification/inbox/count/grouped" ``` ```