SmartNews Developer App API
The developer-app API from SmartNews — 1 operation(s) for developer-app.
The developer-app API from SmartNews — 1 operation(s) for developer-app.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/smartnews-developer-app-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 3.0.1
title: SmartNews Marketing Developer App API
description: '# Previous Versions
- SmartNews Marketing API (2.0.0): https://ads.smartnews.com/developers/deprecated/v2/index.html
- **API v2 has been fully disabled.** All requests to `api/ma/v2/*` endpoints now return a `410 Gone` error.'
contact:
name: SmartNews Ads Support
servers:
- url: https://ads.smartnews.com
description: Production
security:
- ApiKeyAuth: []
tags:
- name: developer-app
paths:
/api/bm/v1/developer_apps/me/ad_accounts:
get:
tags:
- developer-app
description: Get a list of ad accounts associated with a specific developer app.
summary: Get a list of ad accounts associated with a specific developer app
operationId: getAdAccountsByDeveloperAppId
responses:
'200':
description: An array of ad_account objects associated with the specified developer app.
content:
application/json:
schema:
$ref: '#/components/schemas/DeveloperAppAccessibleAdAccountArrayResponse'
'401':
description: Unauthorized. The access token is either expired or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
x-examples:
expiredToken:
summary: Access token has expired.
value:
error:
type: UNAUTHORIZED
message: Token has expired.
retriable: false
invalidToken:
summary: Access token is invalid.
value:
error:
type: UNAUTHORIZED
message: Token is invalid.
retriable: false
'403':
description: Forbidden. Access to the requested resource is denied.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorResponse'
examples:
terms_of_service_not_accepted:
summary: User has not accepted the terms of service.
value:
error:
type: TERMS_OF_SERVICE_NOT_ACCEPTED
message: The owner of the assets must accept the Ads terms of service.
terms_of_service_path: /terms/agreement
retriable: false
access_denied:
summary: Access is denied due to insufficient permissions.
value:
error:
type: ACCESS_DENIED
message: Access denied.
retriable: false
'404':
description: When the resource specified in the path is not found.
content:
application/json:
schema:
$ref: '#/components/schemas/CommonSchemas_ResourceNotFoundErrorResponse'
'500':
description: Unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/UnexpectedErrorResponse'
'503':
description: The service is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailableErrorResponse'
components:
schemas:
UnauthorizedError:
type: object
allOf:
- $ref: '#/components/schemas/UnauthorizedErrorExtension'
- $ref: '#/components/schemas/ErrorBase'
UnexpectedErrorExtension:
type: object
required:
- type
properties:
type:
type: string
enum:
- UNEXPECTED_ERROR
UnexpectedErrorResponse:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/UnexpectedError'
UnexpectedError:
type: object
allOf:
- $ref: '#/components/schemas/UnexpectedErrorExtension'
- $ref: '#/components/schemas/ErrorBase'
ServiceUnavailableErrorResponse:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/ServiceUnavailableError'
ServiceUnavailableErrorExtension:
type: object
required:
- type
properties:
type:
type: string
enum:
- UNDER_MAINTENANCE
ServiceUnavailableError:
type: object
allOf:
- $ref: '#/components/schemas/ServiceUnavailableErrorExtension'
- $ref: '#/components/schemas/ErrorBase'
ForbiddenErrorResponse:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/ForbiddenError'
UnauthorizedErrorResponse:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/UnauthorizedError'
DeveloperAppAccessibleAdAccountResponse:
type: object
required:
- ad_account_id
- ad_account_name
- owner_business_id
- owner_business_name
properties:
ad_account_id:
type: integer
format: int64
description: The ID of the ad account.
ad_account_name:
type: string
description: The name of the ad account.
owner_business_id:
type: integer
format: int64
description: The ID of the owner business.
owner_business_name:
type: string
description: The name of the owner business.
roles:
type: array
items:
$ref: '#/components/schemas/AdAccountNamespaceRole'
description: A list of roles that the ad account has.
DeveloperAppAccessibleAdAccountArrayResponse:
type: object
required:
- data
properties:
data:
type: array
items:
$ref: '#/components/schemas/DeveloperAppAccessibleAdAccountResponse'
description: 'This response contains list of ad accounts that associated with the specified business.
'
AdAccountNamespaceRole:
type: string
enum:
- ADS_ADVERTISER_OPERATOR
- ADS_ADVERTISER_ANALYST
description: 'An ad account namespace role is a role assigned to each ad account.
- If a user has the ADS_ADVERTISER_OPERATOR role for a particular ad account, they can perform operations within that ad account as an advertiser operator, but this authority does not extend to other ad accounts even if they are in the same business.
- If a user has the ADS_ADVERTISER_ANALYST role for a particular ad account, they have read-only access to that particular ad account, but this authority does not extend to other ad accounts even if they are in the same business.
'
ErrorBase:
type: object
required:
- message
- retriable
properties:
message:
type: string
retriable:
type: boolean
CommonSchemas_ResourceNotFoundErrorResponse:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/CommonSchemas_ResourceNotFoundError'
UnauthorizedErrorExtension:
type: object
required:
- type
properties:
type:
type: string
enum:
- UNAUTHORIZED
CommonSchemas_ResourceNotFoundErrorExtension:
type: object
required:
- type
- resource_type
properties:
type:
type: string
enum:
- NOT_FOUND
- DELETED
resource_type:
type: string
enum:
- USER
- BUSINESS
- AD_ACCOUNT
- DEVELOPER_APP
- ENDPOINT
- USER_AD_ACCOUNT_ACCESS
- TERMS_OF_SERVICE
- BRAND
- CREDIT_CARD_PAYMENT_METHOD
- AD_ACCOUNT_PAYMENT_THRESHOLD
- MONTHLY_RECEIPT
- AD_ACCOUNT_OUTSTANDING_BALANCE
- AD_CREDIT_ACCOUNT
- CATALOG
- PRODUCT_SET
- STORE_SET
ForbiddenError:
type: object
allOf:
- $ref: '#/components/schemas/ForbiddenErrorExtension'
- $ref: '#/components/schemas/ErrorBase'
ForbiddenErrorExtension:
type: object
required:
- type
properties:
type:
type: string
enum:
- TERMS_OF_SERVICE_NOT_ACCEPTED
- ACCESS_DENIED
terms_of_service_path:
type: string
example: /terms/agreement
description: The path that the user must open in a browser to accept the terms of service. The hostname matches the API hostname.
CommonSchemas_ResourceNotFoundError:
type: object
allOf:
- $ref: '#/components/schemas/CommonSchemas_ResourceNotFoundErrorExtension'
- $ref: '#/components/schemas/ErrorBase'
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
bearerFormat: JWT