lb_projects_create
Create a new Amazon organic ranking project by specifying ASIN, keyword, and region. Reactivates archived projects with matching parameters.
Instructions
Create a new Listing Bureau Amazon project. If a project with the same ASIN+keyword+region was previously archived, it will be reactivated instead (returns 201). ASIN must be a valid Amazon ASIN. Keyword must be 3-200 characters.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Amazon region code (GB accepted as alias for UK) | |
| asin | Yes | Amazon ASIN (e.g. 'B01MTJK06C') | |
| keyword | Yes | Target keyword (3-200 characters) | |
| expected_retail_price | No | Expected retail price of the product in USD. Required for SFB cost estimation and holds. |
Implementation Reference
- src/tools/projects.tools.ts:62-79 (handler)The async handler function for lb_projects_create. Builds request body with marketplace, region, asin, keyword, and optional expected_retail_price, then sends POST to /api/v1/projects and formats the response.
async (params) => { try { const body: Record<string, unknown> = { marketplace: "amazon", region: normalizeRegion(params.region), asin: params.asin, keyword: params.keyword, }; if (params.expected_retail_price !== undefined) { body.expected_retail_price = params.expected_retail_price; } const res = await client.request<Project>("POST", "/api/v1/projects", body, undefined, "lb_projects_create"); return formatResult(res.data); } catch (e) { return formatErrorResult(e); } }, ); - src/tools/projects.tools.ts:44-60 (schema)Input schema for lb_projects_create: region (enum from ACCEPTED_REGIONS), asin (string), keyword (string 3-200 chars), expected_retail_price (optional number).
region: z .enum(ACCEPTED_REGIONS) .describe("Amazon region code (GB accepted as alias for UK)"), asin: z .string() .describe("Amazon ASIN (e.g. 'B01MTJK06C')"), keyword: z .string() .min(3) .max(200) .describe("Target keyword (3-200 characters)"), expected_retail_price: z .number() .min(0) .optional() .describe("Expected retail price of the product in USD. Required for SFB cost estimation and holds."), }, - src/index.ts:8-8 (registration)Import of registerProjectsTools from projects.tools.ts.
import { registerProjectsTools } from "./tools/projects.tools.js"; - src/index.ts:58-58 (registration)Registration call: registerProjectsTools(server, client) in index.ts which sets up all project tools including lb_projects_create.
registerProjectsTools(server, client); - src/client/types.ts:111-133 (schema)The Project type interface used as the response type for lb_projects_create (POST returns a Project).
export interface Project { ui_id: string; cid: string; marketplace: string; region: string; asin: string | null; itemid: string | null; keyword: string; active: boolean; archived: boolean; dt_utc: string; product_id: string; services: { atc: number; sfb: number; pgv: number; }; scheduling: ScheduleEntry[]; data: { serps: Record<string, unknown>; }; unavailable: boolean; }