### GET /components Source: https://app.loops.so/openapi.json Retrieve a paginated list of email components. ```markdown ### Parameters - **perPage** (string, query, optional): How many results to return in each request. Must be between 10 and 50. Default is 20. - **cursor** (string, query, optional): A cursor to return a specific page of results. Cursors can be found from the `pagination.nextCursor` value in each response. ### Responses #### 200 - Successful. **ListComponentsResponse** - **success** (boolean) (required) - **pagination** (object) (required) - **totalResults** (number) - **returnedResults** (number) - **perPage** (number) - **totalPages** (number) - **nextCursor** (string,null) - **nextPage** (string,null) - **data** (array (Component)) (required) Array items: - **componentId** (string) (required) - **name** (string) (required) - **lmx** (string) (required): The component body serialized as LMX. #### 400 - Invalid `perPage` value. **ComponentFailureResponse** - **success** (boolean) (required) - **message** (string) (required) #### 401 - Invalid API key or content API not enabled for this team. Invalid API key or content API not enabled for this team. #### 405 - Wrong HTTP request method. Wrong HTTP request method. ### Example Usage ```bash curl -X GET "https://app.loops.so/api/v1/components?perPage=string&cursor=string" ``` ``` -------------------------------- ### GET /api-key Source: https://app.loops.so/openapi.json API endpoint for GET /api-key ```markdown ### Responses #### 200 - Success - **success** (boolean) (required) - **teamName** (string) (required): The name of the team the API key belongs to. #### 401 - Invalid API key - **success** (boolean) - **message** (string) - **error** (string) ### Example Usage ```bash curl -X GET "https://app.loops.so/api/v1/api-key" ``` ``` -------------------------------- ### GET /themes/{themeId} Source: https://app.loops.so/openapi.json Retrieve a single theme by ID. ```markdown ### Responses #### 200 - Successful. **ThemeResponse** - **success** (boolean) (required) - **themeId** (string) (required) - **name** (string) (required) - **styles** (object) (required): Flat map of style attributes, matching the attribute names accepted by the LMX `