# OpenChannel Market API API

> OpenChannel Market API API on Apizie: 72 endpoints (Returns a paginated list of APPROVED or SUSPENDED apps, Adds a new app for this developer, Returns a single APPROVED or SUSPENDED app, Searches through the text of fields to find APPROVED or SUSPENDED apps, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/open-data:openchannel-market/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `open-data:openchannel-market`
- Category: Open Data
- Status: byok
- Source: https://openchannel.io
- Page: https://apizie.tech/api/open-data/openchannel-market
- OpenAPI: https://apizie.tech/api/open-data/openchannel-market/openapi.json



## Endpoints

### Returns a paginated list of APPROVED or SUSPENDED apps
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'MyApp'} matches all the apps that have the name 'MyApp' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |
| userId | string | no | The unique id of the user requesting this resource |
| isOwner | boolean | no | Whether this result should only contain apps that are owned by this user |

### Adds a new app for this developer
`POST https://apizie.tech/v1/open-data:openchannel-market/post-apps` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The unique id of the developer that is adding this app |
| name | string | yes | The name of the app |
| type | string | no | The type for this app |
| model | string | no | A JSON object representing the pricing model type for this app |
| customData | string | no | A custom JSON object that you can create and attach to this record |
| attributes | string | no | A custom set of app attributes defined by the administrator and attached to this app |
| restrict | string | no | JSON object to restrict users from owning or viewing this app. Example:… |
| allow | string | no | JSON object to restrict users from owning or viewing this app. Example:… |
| access | string | no | JSON array of data access requirements |

### Returns a single APPROVED or SUSPENDED app
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps-by-safe-name-safe-name` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| safeName | string | yes | The safeName of the App to be located |
| userId | string | no | The unique id of the user that is requesting this resource |
| trackViews | boolean | no | Whether this call should be tracked as a 'view' for this app. Default is false. |

### Searches through the text of fields to find APPROVED or SUSPENDED apps
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps-text-search` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'MyApp'} matches all the documents that have the name 'MyApp' |
| text | string | yes | The text to search for. |
| fields | string | yes | A JSON array containing all the fields to be searched through. Example: ['name', 'customData.description'] |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |
| userId | string | no | The unique id of the user requesting this resource |
| isOwned | boolean | no | Whether this result should only contain apps that are owned by this user |

### Returns a paginated list of AppVersions
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps-versions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'MyApp'} matches all the apps that have the name 'MyApp' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |
| developerId | string | no | The unique id of the developer requesting this resource |

### Returns a single APPROVED or SUSPENDED app
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps-app-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be located |
| userId | string | no | The unique id of the user that is requesting this resource |
| trackViews | boolean | no | Whether this call should be tracked as a 'view' for this app. Default is false. |

### Removes app and all versions
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-apps-app-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be removed |
| developerId | string | yes | The unique id of the developer that is removing this app |

### Change the live app to another, previously approved version
`POST https://apizie.tech/v1/open-data:openchannel-market/post-apps-app-id-live` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be changed |
| developerId | string | yes | The unique id of the developer that is changing this AppVersion |
| version | string | yes | The new version of the live App |

### Publishes the current working version of the app to the marketplace
`POST https://apizie.tech/v1/open-data:openchannel-market/post-apps-app-id-publish` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the app to be published |
| developerId | string | yes | The unique id of the developer that is modifying this app |
| version | integer | yes | The version of the app to be published |
| autoApprove | boolean | no | If true, this AppVersion is automatically approved and becomes immediately available to end users |

### Returns a single AppVersion
`GET https://apizie.tech/v1/open-data:openchannel-market/get-apps-app-id-versions-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be located |
| version | integer | yes | The version number of the app |
| developerId | string | no | The unique id of the developer that is requesting this resource |

### Updates the app or creates a new version
`POST https://apizie.tech/v1/open-data:openchannel-market/post-apps-app-id-versions-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be updated |
| version | string | yes | The version of the App to be updated |
| developerId | string | yes | The unique id of the developer that is updating this app |
| name | string | no | The name of the app |
| type | string | no | The type for this app |
| model | string | no | A JSON object representing the pricing model type for this app |
| customData | string | no | A custom JSON object that you can create and attach to this record |
| attributes | string | no | A custom set of app attributes defined by the administrator and attached to this app |
| restrict | string | no | JSON object to restrict users from purchasing or viewing this app. Example:… |
| allow | string | no | JSON object to allow users to purchase or view this app. Example: {'purchase':{'country':['Canada','Mexico']}} allows only users from… |
| access | string | no | JSON array of data access requirements |
| approvalRequired | string | no | False if updates should skip the approval process and be available immediately. Default is True |

### Updates the app fields or creates a new version
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-apps-app-id-versions-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be updated |
| version | string | yes | The version of the App to be updated |
| developerId | string | yes | The unique id of the developer that is updating this app |
| name | string | no | The name of the app |
| type | string | no | The type for this app |
| model | string | no | A JSON object representing the pricing model type for this app |
| customData | string | no | A custom JSON object that you can create and attach to this record |
| attributes | string | no | A custom set of app attributes defined by the administrator and attached to this app |
| restrict | string | no | JSON object to restrict users from purchasing or viewing this app. Example:… |
| allow | string | no | JSON object to allow users to purchase or view this app. Example: {'purchase':{'country':['Canada','Mexico']}} allows only users from… |
| access | string | no | JSON array of data access requirements |
| approvalRequired | string | no | False if updates should skip the approval process and be available immediately. Default is True |

### Removes AppVersion
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-apps-app-id-versions-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be removed |
| version | string | yes | The version of the App to be removed |
| developerId | string | yes | The unique id of the developer that is removing this app |

### Allows a developer or administrator to change the status of apps
`POST https://apizie.tech/v1/open-data:openchannel-market/post-apps-app-id-versions-version-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App to be updated |
| version | integer | yes | The version of the App to be updated |
| developerId | string | no | The unique id of the developer that is modifying this app |
| status | string | no | The new status for this app. Can be either 'inReview', 'approved', 'suspended' or 'rejected' |
| modifiedBy | string | no | The role initiating this status change. Can be either 'developer' or 'administrator' (default) |
| reason | string | no | The reason for this status change |

### Adds a payment for an app on behalf of a user
`POST https://apizie.tech/v1/open-data:openchannel-market/post-custom-gateway-payment-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id of the ownership record involved in this transaction |
| amount | integer | yes | The total amount paid in cents |
| date | integer | no | The date (in milliseconds) of when this payment was made |
| feeAmount | integer | no | The fee (in cents) paid to a payment processors or third parties to process this payment. Default is 0. |
| marketplaceAmount | integer | no | The amount (in cents) paid to the marketplace owner as a commission for the purchase of this app. Defaults based on the commission amount… |
| developerAmount | integer | no | The amount (in cents) paid to the owner of the app. Defaults based on the commission amount configured for this marketplace. |
| customData | string | no | A custom JSON object to attach to this transaction |

### Fully or partially refund payment for an app on behalf of a user
`POST https://apizie.tech/v1/open-data:openchannel-market/post-custom-gateway-refund-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id of the ownership record involved in this transaction |
| amount | integer | yes | The total amount refunded in cents |
| date | integer | no | The date (in milliseconds) of when this refund was made |
| feeAmount | integer | no | The fee (in cents) recovered from a payment processor or third party to process this payment. The default value is 0 |
| marketplaceAmount | integer | no | The amount (in cents) recovered from the marketplace owner as a commission refund for the purchase of this app |
| developerAmount | integer | no | The amount (in cents) recovered from the owner of the app |
| customData | string | no | A custom JSON object to attach to this transaction |

### Returns a paginated list of developerAccounts
`GET https://apizie.tech/v1/open-data:openchannel-market/get-developer-accounts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'NASA'} matches all the developerAccounts that have the name 'NASA' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Returns a single developer account
`GET https://apizie.tech/v1/open-data:openchannel-market/get-developer-accounts-developer-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerAccountId | string | yes | The id of the developer account to be located |

### Updates the developer account or adds the developer account if it doesn't exist
`POST https://apizie.tech/v1/open-data:openchannel-market/post-developer-accounts-developer-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerAccountId | string | yes | The id of the developer account to be updated |
| developerId | string | yes | The id of the developer that this account belongs to |
| email | string | no | The contact email address |
| name | string | no | The name for the account |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Updates the developer account fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-developer-accounts-developer-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerAccountId | string | yes | The id of the developer account to be updated |
| developerId | string | yes | The id of the developer that this account belongs to |
| email | string | no | The contact email address |
| name | string | no | The name for the account |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Removes the developer account
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-developer-accounts-developer-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerAccountId | string | yes | The id of the developer account to be updated |

### Returns a paginated list of developers
`GET https://apizie.tech/v1/open-data:openchannel-market/get-developers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'John'} matches all the developers that have the name 'John' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Returns a single developer
`GET https://apizie.tech/v1/open-data:openchannel-market/get-developers-developer-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer to be located |

### Updates the developer record or adds the developer if it doesn't exist
`POST https://apizie.tech/v1/open-data:openchannel-market/post-developers-developer-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer to be located |
| type | string | no | The type for this developer |
| email | string | no | The developer's email |
| username | string | no | The developer's username |
| name | string | no | The developer's name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Updates the developer fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-developers-developer-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer to be located |
| type | string | no | The type for this developer |
| email | string | no | The developer's email |
| username | string | no | The developer's username |
| name | string | no | The developer's name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Removes a single developer
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-developers-developer-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer to be removed |

### Returns an event
`GET https://apizie.tech/v1/open-data:openchannel-market/get-events-event-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| eventId | string | yes | The id of the event |

### Returns a paginated list of files
`GET https://apizie.tech/v1/open-data:openchannel-market/get-files` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'file.txt'} matches all the files that have the name 'file.txt' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Uploads a file.
`POST https://apizie.tech/v1/open-data:openchannel-market/post-files` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| isPrivate | boolean | no | If true, this file will be protected as a private file and require the generation of a signed URL in order to download using the Download… |
| hash | string | no | A comma separated list of hashes to return in order to verify file integrity. |
| body | object | yes | Form fields as a JSON object |

### Get the details for a file.
`GET https://apizie.tech/v1/open-data:openchannel-market/get-files-by-id-or-url` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileIdOrUrl | string | yes | The fileId or fileUrl of the file to be returned |

### A signed URL for downloading a private file can be returned by providing the fileId.
`GET https://apizie.tech/v1/open-data:openchannel-market/get-files-download` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileId | string | yes | The URL of the file to be uploaded |
| validSeconds | integer | no | The number of seconds that this signed URL should be valid for. The default is 60. |

### Uploads a file from a URL
`POST https://apizie.tech/v1/open-data:openchannel-market/post-files-url` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | The URL of the file to be uploaded |
| isPrivate | boolean | no | If true, this file will be protected as a private file and require the generation of a signed URL in order to download using the Download… |

### Returns the current marketplace
`GET https://apizie.tech/v1/open-data:openchannel-market/get-markets-this` (byok)

### Returns a paginated list of app licenses
`GET https://apizie.tech/v1/open-data:openchannel-market/get-ownership` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'userId':'12'} matches all the ownership records that have the userId '12'. |
| sort | string | no | A sort document. Example: {'date':1} sorts the results by date in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Aquires an app license for a user (installs app)
`POST https://apizie.tech/v1/open-data:openchannel-market/post-ownership-install` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App being owned |
| userId | string | yes | The id of the User requesting to own the App |
| modelId | string | no | The id of the model associated with this ownership request |
| model | string | no | A custom model that will override the app's default model for this install |
| customData | string | no | A custom JSON object to attach to this ownership record |

### Uninstalls a license for a particular user and app (uninstalls app)
`POST https://apizie.tech/v1/open-data:openchannel-market/post-ownership-uninstall-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id of the ownership to be unintalled |
| userId | string | yes | The id of the User requesting to uninstall the App |
| cancelOwnership | boolean | no | True if this app will require payment to be re-installed. Default is false |
| customData | string | no | A custom JSON object to attach to this ownership record |

### Returns an ownership record
`GET https://apizie.tech/v1/open-data:openchannel-market/get-ownership-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id belonging to the ownership record |

### Updates an ownership record
`POST https://apizie.tech/v1/open-data:openchannel-market/post-ownership-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id of the ownership to be updated |
| customData | string | no | Custom JSON object that will be attached to this ownership record |
| expires | integer | no | The date (in millis) of when this app ownership expires |

### Updates ownership fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-ownership-ownership-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ownershipId | string | yes | The id of the ownership to be updated |
| customData | string | no | Custom JSON object that will be attached to this ownership record |
| expires | integer | no | The date (in millis) of when this app ownership expires |

### Returns permission that allows the app to access this user's data
`GET https://apizie.tech/v1/open-data:openchannel-market/get-permission-apps-app-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the app |
| userId | string | yes | The id of the user |

### Adds permission to allow the app to access this user's data
`POST https://apizie.tech/v1/open-data:openchannel-market/post-permission-apps-app-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the app |
| userId | string | yes | The id of the user |
| date | integer | no | The time (in milliseconds) of when the user agreed to the access request |
| ip | string | no | The ip address of the user agreeing to the access request |

### Removes permission that allows the app to access this user's data
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-permission-apps-app-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the app |
| userId | string | yes | The id of the user |

### Find reviews for a particular App and marketplace. Results are automatically paginated when limit is set
`GET https://apizie.tech/v1/open-data:openchannel-market/get-reviews` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'rating': 500} matches all the reviews that have a rating of 500. |
| sort | string | no | A sort document. Example: {'rating':1} sorts the results by rating in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Post a review from a User and returns the new post
`POST https://apizie.tech/v1/open-data:openchannel-market/post-reviews` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | string | yes | The id of the App that will own this review |
| userId | string | yes | The id of the User that is posting this review |
| userAccountId | string | no | The id of the User account that is posting this review |
| headline | string | yes | The review's headline. Limited to 50 characters. |
| rating | integer | yes | The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars) |
| description | string | yes | The review's description. Limited to 2000 characters. |
| type | string | no | The type for this review |
| mustOwnApp | boolean | no | True if a review can be created only by a user that has owned the app. The default is True. |
| autoApprove | boolean | no | True if the review should be automatically approved. The default is False. |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Find a Review within a particular App and marketplace
`GET https://apizie.tech/v1/open-data:openchannel-market/get-reviews-review-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| reviewId | string | yes | The id of the review to be located |

### Update a review from a User and returns the new post
`POST https://apizie.tech/v1/open-data:openchannel-market/post-reviews-review-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| reviewId | string | yes | The id of the Review to be updated |
| userId | string | yes | The id of the User that is updating this review |
| userAccountId | string | yes | The id of the User account that is posting this review |
| headline | string | yes | The review's headline. Limited to 50 characters. |
| rating | integer | yes | The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars) |
| description | string | yes | The review's description. Limited to 2000 characters. |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Update a review fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-reviews-review-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| reviewId | string | yes | The id of the Review to be updated |
| userId | string | yes | The id of the User that is updating this review |
| userAccountId | string | no | The id of the User account that is posting this review |
| headline | string | no | The review's headline. Limited to 50 characters. |
| rating | integer | no | The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars) |
| description | string | no | The review's description. Limited to 2000 characters. |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Remove a review
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-reviews-review-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| reviewId | string | yes | The id of the Review to be updated |
| userId | string | yes | The id of the User that is removing this review |
| userAccountId | string | no | The id of the User account that is emoving this review |

### Increments a statistics field
`POST https://apizie.tech/v1/open-data:openchannel-market/post-stats-increment-field` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| field | string | yes | The field to be incremented |
| appId | string | yes | The id of the app associated with this statistic value |
| userId | string | no | The id of the user that is performing the action |
| value | integer | no | The increment amount. Default is 1 if no value is provided. |
| date | integer | no | The date (in millis) for when this increment occurred. The default is the current date if no value is provided. |

### Return a timeseries for a particular field
`GET https://apizie.tech/v1/open-data:openchannel-market/get-stats-series-period-fields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| period | string | yes | The period for the series (day or month) |
| fields | string | yes | The field to be graphed. This also be a comma separated list of fields and the result will be a single timeseries containing the sum of… |
| start | integer | no | The start date for this series (in millis) |
| end | integer | no | The end date for this series (in millis) |
| query | string | no | A query document. Example: {'developerId': '112'} matches all the apps that have the developer with id 112 |

### Returns the total number of events for a particular field.
`GET https://apizie.tech/v1/open-data:openchannel-market/get-stats-total` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fields | string | yes | A comma seperated list of all the fields to be returned in the total (available by default: dislikes, likes, reviews, totalSales,… |
| query | string | no | A query document. Example: {'developerId': '112'} matches all the apps that have the developer with id 112 |
| start | integer | no | The start date for this total (in millis) |
| end | integer | no | The end date for this total (in millis) |

### Returns a developers connected Stripe accounts
`GET https://apizie.tech/v1/open-data:openchannel-market/get-stripe-gateway-developer-developer-id-accounts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer connecting their Stripe account |

### Generate a temporary URL to allow a developer to connect their Stripe account
`POST https://apizie.tech/v1/open-data:openchannel-market/post-stripe-gateway-developer-developer-id-accounts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer connecting their Stripe account |
| redirectUrl | string | yes | The URL to redirect this developer after they have connected their Stripe account |

### Disconnects a developer's Stripe account
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-stripe-gateway-developer-developer-id-accounts-stripe` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| developerId | string | yes | The id of the developer disconnecting their Stripe account |
| stripeId | string | yes | The id of the stripe account to disconnect |

### Returns credit cards for this user
`GET https://apizie.tech/v1/open-data:openchannel-market/get-stripe-gateway-user-user-id-cards` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user requesting their credit cards |

### Adds credit card for this user
`POST https://apizie.tech/v1/open-data:openchannel-market/post-stripe-gateway-user-user-id-cards` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user adding their credit card |
| token | string | yes | The Stripe token returned by the Stripe.js Stripe.card.createToken call |
| isDefault | boolean | no | Set to true if this should be set to be the default credit card |

### Updates a credit card for this user
`POST https://apizie.tech/v1/open-data:openchannel-market/post-stripe-gateway-user-user-id-cards-card-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user adding their credit card |
| cardId | string | yes | The id of the card to be updated |
| isDefault | boolean | no | Set to true if this should be set to be the default credit card |
| address_city | string | no | The card holder's city |
| address_country | string | no | The card holder's country |
| address_line1 | string | no | The card holder's street address |
| address_line2 | string | no | The card holder's street address |
| address_state | string | no | The card holder's city state/province |
| address_zip | string | no | The card holder's zip/postal code |

### Removes a credit card for a user
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-stripe-gateway-user-user-id-cards-card-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user removing their credit card |
| cardId | string | yes | The id of the credit card to remove |

### Returns a paginated list of transactions
`GET https://apizie.tech/v1/open-data:openchannel-market/get-transactions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'userId':'1'} matches all the transactions that have the userId '1'. |
| sort | string | no | A sort document. Example: {'date':1} sorts the results by total in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Returns a transaction
`GET https://apizie.tech/v1/open-data:openchannel-market/get-transactions-transaction-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| transactionId | string | yes | The id of the transaction to return |

### Updates a transaction
`POST https://apizie.tech/v1/open-data:openchannel-market/post-transactions-transaction-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| transactionId | string | yes | The id of the transaction to be updated |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Deleted a transaction
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-transactions-transaction-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| transactionId | string | yes | The id of the transaction to be deleted |

### Returns a paginated list of userAccounts
`GET https://apizie.tech/v1/open-data:openchannel-market/get-user-accounts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'NASA'} matches all the userAccounts that have the name 'NASA' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Returns a single user account
`GET https://apizie.tech/v1/open-data:openchannel-market/get-user-accounts-user-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userAccountId | string | yes | The id of the user account to be located |

### Updates the user account or adds the user account if it doesn't exist
`POST https://apizie.tech/v1/open-data:openchannel-market/post-user-accounts-user-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userAccountId | string | yes | The id of the user account to be updated |
| userId | string | yes | The Id of the user that this account belongs to |
| email | string | no | The contact email address |
| name | string | no | The user account name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Updates the user account fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-user-accounts-user-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userAccountId | string | yes | The id of the user account to be updated |
| userId | string | yes | The Id of the user that this account belongs to |
| email | string | no | The contact email address |
| name | string | no | The user account name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Removes the user account
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-user-accounts-user-account-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userAccountId | string | yes | The id of the user account to be removed |

### Returns a paginated list of users
`GET https://apizie.tech/v1/open-data:openchannel-market/get-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | A query document. Example: {'name':'John'} matches all the users that have the name 'John' |
| sort | string | no | A sort document. Example: {'name':1} sorts the results by name in ascending order |
| pageNumber | integer | no | The result set page number to be returned |
| limit | integer | no | The maximum number of results to return per page |

### Return a single user
`GET https://apizie.tech/v1/open-data:openchannel-market/get-users-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user to be located |

### Updates a single user or adds the user if they don't exist
`POST https://apizie.tech/v1/open-data:openchannel-market/post-users-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user to be updated |
| type | string | no | The type for this user |
| email | string | no | The user's email |
| username | string | no | The user's username |
| name | string | no | The user's name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Updates user fields
`POST https://apizie.tech/v1/open-data:openchannel-market/patch-users-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user to be updated |
| type | string | no | The type for this user |
| email | string | no | The user's email |
| username | string | no | The user's username |
| name | string | no | The user's name |
| customData | string | no | A custom JSON object that you can create and attach to this record |

### Removes a single user
`POST https://apizie.tech/v1/open-data:openchannel-market/delete-users-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | The id of the user to be removed |

## Example
```
curl "https://apizie.tech/v1/open-data:openchannel-market/get-apps" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the OpenChannel Market API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/open-data:openchannel-market/get-apps with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the OpenChannel Market API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. OpenChannel Market API itself also needs your own key from openchannel.io.

### Can AI agents use the OpenChannel Market API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key open-data:openchannel-market.

### What is the status of the OpenChannel Market API API?
Needs your own provider key (bring your own key)
