# Semify Enterprise REST APIs This is the documentation for the Semify Endpoints based on the OpenAPI 3.0 specification. You can find out more about Swagger at [http://swagger.io](http://swagger.io). Version: 2.0.0 License: Apache 2.0 ## Servers Sandbox ``` https://uat.services.semify.com ``` Production Server ``` https://services.semify.com ``` ## Security ### JWTAuth A JWT token is required to access this API. A JWT can be obtained by providing a correct username and password in the Authorization API, then entering the token in the available field. Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [Semify Enterprise REST APIs](https://developers.semify.com/_spec/openapi.yaml) ## accounts Operations related to accounts. ### Create a new account - [POST /api/v1/accounts](https://developers.semify.com/openapi/accounts/accounts_create.md): Creates a new account. This endpoint requires JWT authentication. ### Update an existing account - [PUT /api/v1/accounts](https://developers.semify.com/openapi/accounts/accounts_update_v1.md): A secured route for updating accounts. ### Retrieve all accounts - [GET /api/v1/accounts](https://developers.semify.com/openapi/accounts/accounts_get_all_records.md): The accounts GET endpoint retrieves all account information linked to a reseller ### Retreive account details by an id - [GET /api/v1/accounts/{account_id}](https://developers.semify.com/openapi/accounts/accounts_get.md): A secured route for getting/retrieving account information ### Create a new account v2 - [POST /api/v2/accounts](https://developers.semify.com/openapi/accounts/accounts_create_v2.md): A secured route for creating accounts ### Update an existing account v2 - [PUT /api/v2/accounts](https://developers.semify.com/openapi/accounts/accounts_update_v2.md): A secured route for updating accounts ### Retreive all accounts v2 - [GET /api/v2/accounts](https://developers.semify.com/openapi/accounts/accounts_v2_get_all_records.md): The accounts GET endpoint retrieves all account information linked to a reseller. ### Retreive account details by an id v2 - [GET /api/v2/accounts/{account_id}](https://developers.semify.com/openapi/accounts/accounts_get_v2.md): A secured route for getting/retrieving account information ### Creating account/campaign level iam credentials - [POST /api/v1/accounts/iam/credentials](https://developers.semify.com/openapi/accounts/accounts_iam_credentials_create.md): A secured route for creating account/campaign level iam credentials ### Deactivate or reactivate an account - [PUT /api/v1/accounts/status](https://developers.semify.com/openapi/accounts/accounts_status_update.md): This endpoint reactivates or deactivates the account, and builds a reinstatement task for all campaigns that are associated with the account_id provided in the request object. ## keywords Operations related to keywords. ### Create new keywords - [POST /api/v1/keywords](https://developers.semify.com/openapi/keywords/keywords_create.md): The keyword post will create new keywords and attach those to your account/campaign. This supports multiple keywords in an array of object format. There is validation to ensure that all required fields are met ### Update keywords - [PUT /api/v1/keywords](https://developers.semify.com/openapi/keywords/keywords_update.md): The keyword update will allow for a type and status change ### Get all keywords - [GET /api/v1/keywords](https://developers.semify.com/openapi/keywords/keywords_get_all_records.md): The keyword GET endpoint retrieves all keywords linked to a reseller, encompassing all campaigns that contain these keywords. ### Generate keyword budget estimate - [POST /api/v1/keywords/budget/estimate](https://developers.semify.com/openapi/keywords/create_keyword_budget_estimate.md): Creates a comprehensive budget estimate for organic keywords based on SEMRush data analysis. The API will: 1. Retrieve organic keyword data 2. Calculate budget estimates with trend analysis 3. Provide recommendations and value scores 4. Cache results for 24 hours to optimize costs - Results are cached for 24 hours based on request parameters - Cached responses include flag - Fresh API calls include flag ### Get keywords - [GET /api/v1/keywords/{rank_id}](https://developers.semify.com/openapi/keywords/keywords_get_single_record.md): This GET request allows you to retrieve a specific object by providing the as a path parameter. This unique identifier ensures that only one object is returned. If you want to retrieve all keywords associated with your reseller account, simply omit the parameter ## reports Reporting endpoints. ### Get keyword reports - [GET /api/v1/reports/keywords/accounts/{account_id}/campaigns/{campaign_id}](https://developers.semify.com/openapi/reports/reports_keywords_get.md): A secured route for getting keyword reports ### Get google analytics traffic reports - [GET /api/v1/reports/google/analytics/traffic/accounts/{account_id}/campaigns/{campaign_id}/date_from/{date_from}/date_to/{date_to}](https://developers.semify.com/openapi/reports/reports_google_analytics_traffic_get.md): A secured route for getting google analytics traffic reports ### Get workflow reports - [GET /api/v1/reports/workflows/accounts/{account_id}/campaigns/{campaign_id}/date_from/{date_from}/date_to/{date_to}](https://developers.semify.com/openapi/reports/reports_workflows_get.md): A secured route for getting workflow reports ### Get backlink reports - [GET /api/v1/reports/backlinks/accounts/{account_id}/campaigns/{campaign_id}](https://developers.semify.com/openapi/reports/reports_backlinks_get.md): A secured route for getting backlinks datapoints reports ### Get lost backlink reports - [GET /api/v1/reports/backlinks/lost/accounts/{account_id}/campaigns/{campaign_id}/date_from/{date_from}/date_to/{date_to}](https://developers.semify.com/openapi/reports/reports_backlinks_lost_get.md): This secured endpoint allows users to retrieve reports on lost backlinks. The and parameters are optional. If these parameters are not provided in the request, the report will automatically cover a default period of the last 60 days from the current date ### Get referring backlinks - [GET /api/v1/reports/backlinks/referring/accounts/{account_id}/campaigns/{campaign_id}/date_from/{date_from}/date_to/{date_to}](https://developers.semify.com/openapi/reports/reports_backlinks_referring_get.md): A secured route for getting referring backlinks by date and count ### Get backlinks provisioned by semify - [GET /api/v1/reports/backlinks/provisioned/accounts/{account_id}/campaigns/{campaign_id}/date_from/{date_from}/date_to/{date_to}](https://developers.semify.com/openapi/reports/reports_backlinks_provisioned_get.md): A secured route for data points pertaining to backlinks provisioned by Semify ## products Product management endpoints. ### Create and attach a service / product plan - [POST /api/v1/products/plans/campaigns](https://developers.semify.com/openapi/products/products_plans_campaigns.md): This endpoint attaches a product plan to an account. ### Get service plans for campaign and account - [GET /api/v1/products/plans/campaigns/{campaign_id}/accounts/{account_id}](https://developers.semify.com/openapi/products/paths/~1api~1v1~1products~1plans~1campaigns~1%7Bcampaign_id%7D~1accounts~1%7Baccount_id%7D/get.md): Returns available service plans for a given campaign and account. ## authentication Authentication/authorization endpoints. ### Authenticate a user - [POST /api/v1/authentication/login](https://developers.semify.com/openapi/authentication/authentication_user.md): Authenticate a user ## campaigns Campaigns and related operations. ### Get all campaigns - [GET /api/v1/campaigns](https://developers.semify.com/openapi/campaigns/campaigns_get_all_records.md): The campaign GET endpoint retrieves all campaigns linked to a reseller, the payload will also return the account id for each campaign ### Get campaign notes - [GET /api/v2/campaigns/notes](https://developers.semify.com/openapi/campaigns/campaign_notes_index.md): Retrieve campaign notes for a specific campaign ### Update campaign notes - [PUT /api/v2/campaigns/notes](https://developers.semify.com/openapi/campaigns/campaign_notes_update.md): Update campaign notes for a specific campaign ## google gbp accounts Google GBP account endpoints. ### Create for GBP account provisioning or claims - [POST /api/v1/google/gbp/accounts](https://developers.semify.com/openapi/google-gbp-accounts/google_gbp_accounts_create.md): This endpoint allows for GBP account provisioning or claims