Generated by API Evangelist
Written by API Evangelist tooling for Semrush's API. It is a proposal applied on top of the contract, not a document Semrush publishes.
overlay: 1.0.0
info:
title: Semrush Partner Service API — API Evangelist enhancements
version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: >-
Derived from https://developer.semrush.com/api/v4/ and
https://github.com/semrush/app-center-openapi. Applies to
openapi/semrush-partner-service-api-openapi.yml. The original spec is never mutated.
extends: ../openapi/semrush-partner-service-api-openapi.yml
actions:
- target: $.info
description: Attach provenance, contact and terms the upstream spec omits.
update:
contact:
name: Semrush API Support
email: mail@semrush.com
url: https://developer.semrush.com/api/
termsOfService: https://www.semrush.com/company/legal/terms-of-service/
x-upstream-source: https://github.com/semrush/app-center-openapi/blob/main/openapi_spec.yaml
x-provider: Semrush
x-provider-id: semrush
- target: $
description: Add external documentation and the runtime semantics documented only in prose.
update:
externalDocs:
description: Semrush App Center viewer-status documentation
url: https://www.semrush.com/apps/docs/server-to-server-api/viewer-status
x-rate-limits:
requests_per_second: 10
concurrent_requests: 10
scope: account
response_headers: none
x-error-envelope:
shape: 'meta{success,status_code,request_id} + (data|error)'
rfc9457: false
artifact: errors/semrush-problem-types.yml
- target: $.paths['/apis/v4/app-center/v2/partner/viewer-status'].post
description: >-
Add a stable operationId and record that despite the POST verb this is a read — it
retrieves a user's purchase and subscription status and changes no state.
update:
operationId: getAppCenterViewerStatus
x-operation-id-source: api-evangelist-overlay
x-consequence: read
x-safe-to-retry: true
x-verb-note: >-
POST is used to carry user_id in a request body rather than to mutate. Agent tooling
that infers write intent from the HTTP method will misclassify this operation.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
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.