openapi: 3.1.0 info: title: Loops OpenAPI Spec API key Components API description: This is the OpenAPI Spec for the [Loops API](https://loops.so/docs/api). version: 1.8.0 servers: - url: https://app.loops.so/api/v1 tags: - name: Components description: View email components paths: /components/{componentId}: parameters: - name: componentId in: path required: true description: The ID of the component. schema: type: string get: tags: - Components summary: Get a component description: Retrieve a single component by ID. responses: '200': description: Successful. content: application/json: schema: $ref: '#/components/schemas/ComponentResponse' '400': description: Invalid `componentId`. content: application/json: schema: $ref: '#/components/schemas/ComponentFailureResponse' '401': description: Invalid API key or content API not enabled for this team. '404': description: Component not found. content: application/json: schema: $ref: '#/components/schemas/ComponentFailureResponse' '405': description: Wrong HTTP request method. security: - apiKey: [] /components: get: tags: - Components summary: List components description: Retrieve a paginated list of email components. parameters: - name: perPage in: query required: false description: How many results to return in each request. Must be between 10 and 50. Default is 20. schema: type: string - name: cursor in: query required: false description: A cursor to return a specific page of results. Cursors can be found from the `pagination.nextCursor` value in each response. schema: type: string responses: '200': description: Successful. content: application/json: schema: $ref: '#/components/schemas/ListComponentsResponse' '400': description: Invalid `perPage` value. content: application/json: schema: $ref: '#/components/schemas/ComponentFailureResponse' '401': description: Invalid API key or content API not enabled for this team. '405': description: Wrong HTTP request method. security: - apiKey: [] components: schemas: Component: type: object properties: componentId: type: string name: type: string lmx: type: string description: The component body serialized as LMX. required: - componentId - name - lmx ComponentResponse: type: object properties: success: type: boolean examples: - true componentId: type: string name: type: string lmx: type: string description: The component body serialized as LMX. required: - success - componentId - name - lmx ListComponentsResponse: type: object properties: success: type: boolean examples: - true pagination: type: object properties: totalResults: type: number returnedResults: type: number perPage: type: number totalPages: type: number nextCursor: type: - string - 'null' nextPage: type: - string - 'null' data: type: array items: $ref: '#/components/schemas/Component' required: - success - pagination - data ComponentFailureResponse: type: object properties: success: type: boolean examples: - false message: type: string required: - success - message securitySchemes: apiKey: type: http scheme: bearer